Nginx+keepalived的高可用集群(二、nginx部署)
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


浙公网安备 33010602011771号