1.nginx下载
Nginx官方下载地址:http://nginx.org/en/download.html
本次下载的是nginx-1.14.0.tar.gz版本。
上传到服务器后解压到当前目录:
tar -zxvf nginx-1.14.0.tar.gz
2.下载依赖库
使用yum命令安装nginx的依赖库
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
注意:如果是内网环境,自行下载rpm包,执行离线安装。可以参考博客:https://www.cnblogs.com/sybblogs/p/6085314.html
执行命令检查依赖库是否正确,make之后就会在后面设置的地址编译并安装nginx
#进入nginx-1.14.0目录 cd nginx-1.14.0 #检查依赖库是否正确 ./configure --prefix=/usr/local/nginx #编译并安装 make && make install
3.启动nginx
启动nginx
#进入nginx安装目录 cd /usr/local/nginx/sbin #启动nginx ./nginx
启动后我们可以看到ngnix有两个进程,master进程和worker进程
启动成功后,我们可以通过浏览器访问
其他常用命令:
停止命令
./nginx -s stop
重启命令
./nginx -s reload
4.配置文件
演示是在90服务器上进行配置的,91,92两台服务器配置完全一样。
接下来进行配置nginx.conf
#进入安装目录 cd /usr/local/nginx/conf
采用的配置是负载均衡ip_hash方式。配置如下:
#用户组,也可以使用root用户 #user nobody; # 与服务器核心数量一致,一般现在电脑内核4核8线程,8核16线程,如果CPU的使用率大,可以设置成内核*2,进程则会有多个worker worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; # 进程号保存地址 #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #日志格式 main 访问地址,时间,浏览器等信息 #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #全局日志保存地址,也可以在server里面单独配置 #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; #webservice负载均衡配置 upstream bsoft_webservice{ ip_hash; server 196.168.0.97:9528; server 196.168.0.98:9528; server 196.168.0.99:9528; server 196.168.0.100:9528; server 196.168.0.101:9528; } server { #平台对外的端口 listen 9528; #对应的域名 #server_name localhost; # 拦截规则,拦截跳转地址 location / { proxy_pass http://bsoft_webservice; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 60; proxy_send_timeout 60; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } #http负载均衡配置 upstream bsoft_http{ ip_hash; server 196.168.0.97:9526; server 196.168.0.98:9526; server 196.168.0.99:9526; server 196.168.0.100:9526; server 196.168.0.101:9526; } server { #平台对外的端口 listen 9526; #对应的域名 #server_name localhost; location / { proxy_pass http://bsoft_http; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 60; proxy_send_timeout 60; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } #测评负载均衡配置 upstream bsoft_ceping{ ip_hash; server 196.168.0.97:9527; server 196.168.0.98:9527; server 196.168.0.99:9527; server 196.168.0.100:9527; server 196.168.0.101:9527; } server { #平台对外的端口 listen 9527; #对应的域名 #server_name localhost; location / { proxy_pass http://bsoft_ceping; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 60; proxy_send_timeout 60; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } #XMLwebService负载均衡配置 upstream bsoft_XMLwebService{ ip_hash; server 196.168.0.97:9529; server 196.168.0.98:9529; server 196.168.0.99:9529; server 196.168.0.100:9529; server 196.168.0.101:9529; } server { #平台对外的端口 listen 9529; #对应的域名 #server_name localhost; location / { proxy_pass http://bsoft_XMLwebService; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 60; proxy_send_timeout 60; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ .php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
配置完后进行重启命令
#进入sbin目录 cd /usr/local/nginx/sbin #执行nginx重启命令 ./nginx -s reload
启动成功后,来看看nginx实现负载均衡的效果
nginx的相关详细配置介绍可以参考学霸王先森博客:
https://www.cnblogs.com/Unlimited-Blade-Works/p/12599694.html