美文网首页
从0开始搭建nginx负载均衡配置

从0开始搭建nginx负载均衡配置

作者: 王宣成 | 来源:发表于2020-05-18 23:54 被阅读0次

    1、安装nginx

    yum -y install nginx
    

    2、开启自启

    sudo systemctl start nginx.service
    sudo systemctl enable nginx.service
    

    3、解析域名到当前负载均衡服务器 (我的域名是 kanketang.cn)

    4、编辑nginx配置文件

    vim /etc/nginx/nginx.conf
    

    5、在另外两台服务器搭建站点绑定域名,下面是负载均衡服务器配置

    upstream  kanketang.cn {
         server   172.17.60.142;  # A服务器内网ip
         server   172.17.60.143;  # B服务器内网ip
    }
    upstream  www.kanketang.cn {
         server   172.17.60.142;
         server   172.17.60.143;
    }
    

    6、反向代理

     location / {
                proxy_pass http://$host;
                proxy_connect_timeout 2s;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
            }
    

    7、ssl证书

     server {
            listen       80 default_server;
            listen       [::]:80 default_server;
            listen       443 ssl;
            server_name  _;
            root         /usr/share/nginx/html;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
            ssl_certificate /etc/ssl/kanketang.crt;
            ssl_certificate_key /etc/ssl/kanketang.key;
            ssl_prefer_server_ciphers on;
       
            #自动跳转到HTTPS
            if ($server_port = 80) {
                rewrite ^(.*)$ https://$host$1 permanent;
            }
    

    8、完整nginx配置文件

    # For more information on configuration, see:
    #   * Official English Documentation: http://nginx.org/en/docs/
    #   * Official Russian Documentation: http://nginx.org/ru/docs/
    
    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections 2048;
    }
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
        # Load modular configuration files from the /etc/nginx/conf.d directory.
        # See http://nginx.org/en/docs/ngx_core_module.html#include
        # for more information.
        include /etc/nginx/conf.d/*.conf;
       
       
        upstream  kanketang.cn {
            server   172.17.60.142;
            server   172.17.60.143;
        }
    
        upstream  www.kanketang.cn {
            server   172.17.60.142;
            server   172.17.60.143;
        }
        
        server {
            listen       80 default_server;
            listen       [::]:80 default_server;
            listen       443 ssl;
            server_name  _;
            root         /usr/share/nginx/html;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
    
            ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
        ssl_certificate /etc/ssl/kanketang.crt;
        ssl_certificate_key /etc/ssl/kanketang.key;
        ssl_prefer_server_ciphers on;
       
            #自动跳转到HTTPS
        if ($server_port = 80) {
            rewrite ^(.*)$ https://$host$1 permanent;
        }
    
            location / {
                proxy_pass http://$host;
                proxy_connect_timeout 2s;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    
            error_page 404 /404.html;
                location = /40x.html {
            }
    
            error_page 500 502 503 504 /50x.html;
                location = /50x.html {
            }
        }
    
    # Settings for a TLS enabled server.
    #
    #    server {
    #        listen       443 ssl http2 default_server;
    #        listen       [::]:443 ssl http2 default_server;
    #        server_name  _;
    #        root         /usr/share/nginx/html;
    #
    #        ssl_certificate "/etc/pki/nginx/server.crt";
    #        ssl_certificate_key "/etc/pki/nginx/private/server.key";
    #        ssl_session_cache shared:SSL:1m;
    #        ssl_session_timeout  10m;
    #        ssl_ciphers HIGH:!aNULL:!MD5;
    #        ssl_prefer_server_ciphers on;
    #
    #        # Load configuration files for the default server block.
    #        include /etc/nginx/default.d/*.conf;
    #
    #        location / {
    #        }
    #
    #        error_page 404 /404.html;
    #            location = /40x.html {
    #        }
    #
    #        error_page 500 502 503 504 /50x.html;
    #            location = /50x.html {
    #        }
    #    }
    
    }
    
    

    9、访问域名多刷新测试


    image.png
    image.png

    相关文章

      网友评论

          本文标题:从0开始搭建nginx负载均衡配置

          本文链接:https://www.haomeiwen.com/subject/wabmohtx.html