nginx主备WEB服务器高可用配置

美其名曰,域名访问过程中一台服务器挂了,自动切换到另一台服务器。
环境说明
准备三台服务器,并且全部在同一个内网!
注:如网站还有数据库,数据库服务器可以部署独立服务器最好是部署个集群保证数据库稳定可靠。
在这里插入图片描述

外网nginx服务器一台使用80、443端口 [代理服务器]
ip: 102.78.32.128 [静态IP] 该服务器不需要放网站的文件,仅做代理使用
解析域名nginx.ys.com 至该服务器,后续期望通过http访问和https证书形式实现访问

内网nginx服务器2台使用80端口
服务器1IP 172.16.133.200 主服务器 需要放置网站文件至/home/web路径下
服务器2IP:172.16.133.201 备用服务器 需要放置网站文件至/home/web路径下


准备环境
三台服务器全部不是nginx1.17.2具体见我的文章如下:
nginx1.17.2部署点击查看博文


进入主服务器:
配置nginx.conf如下【可根据自己需求配置自己的nginx】:

#rm -rf /usr/local/nginx/conf/nginx.conf            #删除默认nginx
#vi /usr/local/nginx/conf/nginx.conf    #创建并编辑
按键盘 i  键进入编辑模式  ,复制并黏贴如下配置:
user  www www;
worker_processes  4;

#error_log  /home/logs/error.log;  
events {
    worker_connections  4096;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    charset utf-8;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                     '"$http_user_agent" "$http_x_forwarded_for"';
    server_names_hash_bucket_size 64;
    sendfile        on;
    tcp_nopush      on;
    tcp_nodelay     on;
    keepalive_timeout  65;
    client_max_body_size 5000M;     #上传文件大小限制5g
    fastcgi_connect_timeout 3000;
    fastcgi_send_timeout 3000;
    fastcgi_read_timeout 3000;
    fastcgi_buffer_size 256k;
    fastcgi_buffers 8 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    fastcgi_intercept_errors on;
    proxy_buffer_size  128k;
    proxy_buffers   32 32k;
    proxy_busy_buffers_size 128k;    
    proxy_temp_file_write_size 128k;
    gzip on;  
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_comp_level 2;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php ;
    gzip_disable "MSIE [1-6]\.";
    include /usr/local/nginx/conf/conf.d/*.conf;
    include /home/nginx/conf/*.conf;
}
----------------------------结束   按键ESC   输入:wq  回车 保存
#chmod +x  /usr/local/nginx/conf/nginx.conf     #给予执行权限

开始配置nginx静态IP服务器配置[即代理服务器]

主服务器配置如下:
#vi /home/nginx/conf/web.conf    #创建nginx配置文件
按键盘 i  键进入编辑模式  ,复制并黏贴如下配置:
upstream gw1_server {
    server 172.16.133.200:80;   #主用服务器
    server 172.16.133.201:80 backup;     #主服务器宕机,自动切换备用服务器
}
server {
    listen 80;
    server_name nginx.ys.com;
    rewrite ^(.*)$ https://${server_name}$1 permanent;     #访问http网站自动跳至https
} 
server {
    listen       443 ;
    server_name  nginx.ys.com;
    ssl_certificate /home/nginx.ys.com.pem;    #ssl证书路径
    ssl_certificate_key /home/nginx.ys.com.key;  #ssl证书路径
    gzip  on;
    gzip_comp_level 6;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/x-icon;
    charset utf-8;
    location / {
        proxy_set_header    Host             $host;
        proxy_set_header    X-Real-IP        $remote_addr;
        proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header    HTTP_X_FORWARDED_FOR $remote_addr;
        proxy_pass http://gw1_server;
    }
}
----------------------------结束   按键ESC   输入:wq  回车 保存
#chmod +x  /home/nginx/conf/web.conf     #给予执行权限

主备服务器配置相同具体如下172.16.133.200/172.16.133.201:
事先需要把网站源码放置服务器的/home/web/路径下

主服务器配置如下:
#vi /home/nginx/conf/web.conf    #创建nginx配置文件【演示的测试网站配置,具体网站配置根据自己网站开发框架要求进行】
按键盘 i  键进入编辑模式  ,复制并黏贴如下配置:
server {
listen 80;  #端口80
server_name all; 
root /home/web; #网站路径
index index.html index.htm;   #首页配置
location ~ .*\.(gif|jpg|jpeg|png|bmp)$ {
expires 100d;
}
location ~ .*\.(js|css)?$ {
expires 30d;
}
error_page 500 502 503 504 /50x.html;
}
----------------------------结束   按键ESC   输入:wq  回车 保存
#chmod +x  /home/nginx/conf/web.conf     #给予执行权限
#/usr/local/nginx/sbin/nginx -s reload          #重启

ok
可以在主服务器 和 备服务器 均写个测试页面,页面内容可以写对应服务器IP;
第一次通过nginx.ys.com 访问 看是否为主服务器,然后停止主服务器的nginx再次访问看是否自动切换为了备用服务器,如果OK 设置成功

注:高可用网站主要用数据库集群服务,这样子数据库出现问题会自动切换主从,然后两个应用服务的数据均为同一个数据库,保证数据一致性。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值