nginx安装部署+负载均衡+动静分离配置
Posted Albert飞
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx安装部署+负载均衡+动静分离配置相关的知识,希望对你有一定的参考价值。
Linux Centos7(Mac) 安装Docker教程
Docker(部署常见应用):Docker部署Nginx
nginx官网
-------------------------------------------------------------------
一、nginx安装以及nginx常用命令
二、nginx配置(负载、动静分离)
-------------------------------------------------------------------
一、nginx安装以及nginx常用命令
1、安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2、首先要安装 PCRE
PCRE 作用是让 Nginx 支持 Rewrite 功能。
1、下载 PCRE 安装包,下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
cd /usr/local/src/ wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
2、解压安装包:
tar zxvf pcre-8.35.tar.gz
3、进入安装包目录
cd pcre-8.35
4、编译安装
./configure make && make install
5、查看pcre版本
pcre-config --version
安装 Nginx
1、下载 Nginx,下载地址:http://nginx.org/download/nginx-1.6.2.tar.gz
cd /usr/local/src/ wget http://nginx.org/download/nginx-1.6.2.tar.gz
2、解压安装包
tar zxvf nginx-1.6.2.tar.gz
3、进入安装包目录
cd nginx-1.6.2
4、编译安装
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 make make install
5、查看nginx版本
/usr/local/webserver/nginx/sbin/nginx -v
到此,nginx安装完成。
Nginx 配置
创建 Nginx 运行使用的用户 www:
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容
cat /usr/local/webserver/nginx/conf/nginx.conf
以下为配置文件
user www www; worker_processes 2; #设置值和CPU核心数一致 error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; #日志位置和日志级别 pid /usr/local/webserver/nginx/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { include mime.types; default_type application/octet-stream; log_format main \'$remote_addr - $remote_user [$time_local] "$request" \' \'$status $body_bytes_sent "$http_referer" \' \'"$http_user_agent" $http_x_forwarded_for\'; #charset gb2312; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 8m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; #limit_zone crawler $binary_remote_addr 10m; #下面是server虚拟主机的配置 server { listen 80;#监听端口 server_name localhost;#域名 index index.html index.htm index.php; root /usr/local/webserver/nginx/html;#站点目录 location ~ .*\\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } location ~ .*\\.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; # access_log off; } location ~ .*\\.(js|css)?$ { expires 15d; # access_log off; } access_log off; } }
检查配置文件nginx.conf的正确性命令:
/usr/local/webserver/nginx/sbin/nginx -t
启动 Nginx
Nginx 启动命令如下
/usr/local/webserver/nginx/sbin/nginx
访问站点
从浏览器访问我们配置的站点ip:
Nginx 其他命令
以下包含了 Nginx 常用的几个命令:
/usr/local/webserver/nginx/sbin/nginx -s start # 启动 /usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件 /usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx /usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx
二、nginx配置(负载、动静分离)
1、轮询负载(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver { server 192.168.0.14; server 192.168.0.15; }
2、weight权重负载
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; }
3、ip_hash负载
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }
4、fair(第三方)负载
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
5、url_hash(第三方)负载
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }
注:一致性hash使用
./confifigure —add-module=/root/ngx_http_consistent_hash-master make make install
静态资源配置:
如配置如下location
表示url为 /static/*.xxx 的图片或者js等静态资源则会到/html/static目录下去寻找资源,root 指定文件路径
location /static/~(.*)(\\.jpg|\\.png|\\.gif|\\.jepg|\\.css|\\.js|\\.css){ alias html;
# root html;
}
动态资源配置:
其他访问url则转发到proxy_pass 指向的 http://192.168.25.35:8080; 或者指向http://upstreanName,upstreanName为上面负载配置块的名称backserver
location / { proxy_pass http://192.168.25.35:8080; # proxy_pass http://backserver
}
完整的配置如下:
server { listen 80; server_name 192.168.25.35; # 当接收到http请求时,首先host和这里的server_name进行匹配,如果匹配上,则走这个虚拟主机的location路由 location /static/~(.*)(\\.jpg|\\.png|\\.gif|\\.jepg|\\.css|\\.js|\\.css){ # 静态资源则路由到这里 alias html; } location / { # 其他的url则转发到 http://192.168.25.35:8080 proxy_pass http://192.168.25.35:8080; } }
location配置
location [=|~|~*|^~] /uri/ { … }
location ~ /lagou { }
location ~* /lagou { }
location ^~ /lagou { }
location = /lagou { }
location /lagou { }
来源:
https://www.runoob.com/linux/nginx-install-setup.html
https://www.iteye.com/blog/tomyz0223-1046992
以上是关于nginx安装部署+负载均衡+动静分离配置的主要内容,如果未能解决你的问题,请参考以下文章
负载均衡 | Nginx+Tomcat 动静分离实现负载均衡