当前位置:首页 > 技术 > 正文内容

Nginx单个以及多域名负载均衡配置

醉清风2019-05-30技术6073

Nginx负载均衡设置

环境:

负载均衡:192.168.188.128:80

Web1:192.168.188.129:80

Web2:192.168.188.130:80

正式环境中,需要解析域名www.notenet.cn、ceshi.notenet.cn到负载均衡机器192.168.188.128,我们现在测试,就直接在本地windows下的hosts里面绑定域名:

192.168.188.128 www.notenet.cn

192.168.188.128 ceshi.notenet.cn

1、单个域名的负载均衡

1.1、在负载均衡(192.168.188.128)上搭好web环境:


[root@localhost conf]# vim /usr/local/nginx/conf/nginx.conf
...
include vhost/*.conf;
...
}

在http{}最下面添加include vhost/*.conf;每个域名对应一个conf文件。

新建vhost目录。

[root@localhost conf]# mkdir /usr/local/nginx/conf/vhost/

新建www.notenet.cn.conf文件:

[root@localhost conf]# vim /usr/local/nginx/conf/vhost/www.notenet.cn.conf
server {
        listen       81;
        server_name  www.notenet.cn localhost 192.168.188.128;
        location / {
            root    /usr/local/nginx/html/;
            index  index.html index.php index.htm TempLoginPanel.html;
        }
        location ~ \.php$ {
            root           /usr/local/nginx/html/;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
}

在/usr/local/nginx/html/里面写好html文件:

[root@localhost conf]# vim /usr/local/nginx/html/index.html
#测试内容自定义
……

重新加载nginx配置文件

[root@localhost conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost conf]# /usr/local/nginx/sbin/nginx -s reload

1.2、在web1,web2(192.168.188.129/130)上搭好web环境:

按照1.1的方法同样搭建web2的环境,

新建虚拟主机:

[root@localhost conf]# vim /usr/local/nginx/conf/nginx.conf
...
include vhost/*.conf;
...
}

[root@localhost conf]# mkdir /usr/local/nginx/conf/vhost/
[root@localhost conf]# vim /usr/local/nginx/conf/vhost/www.notenet.cn.conf
server {
        listen       80;
        server_name  www.notenet.cn localhost;
        location / {
            root    /usr/local/nginx/html/;
            index  index.html index.php index.htm TempLoginPanel.html;
        }
 
        location ~ \.php$ {
            root           /usr/local/nginx/html/;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
}

在/usr/local/nginx/html/里面写好html文件:

[root@localhost conf]# vim /usr/local/nginx/html/index.html
#测试内容自定义
……

重新加载nginx配置文件

[root@localhost conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost conf]# /usr/local/nginx/sbin/nginx -s reload

注意:正式环境当中,web1和web2机器上面的网页内容应该是一致的,才能做负载均衡。

1.3、在负载均衡机器(192.168.188.128)上:

[root@localhost conf]# vim /usr/local/nginx/conf/nginx.conf
...上面的省略...
upstream  doublesweb {
        #ip_hash;
        server   192.168.188.129:80;
        server   192.168.188.130:80;
    }

 

server {
        listen       80;
        server_name  localhost;
        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass http://doublesweb;
            proxy_connect_timeout 2s;
        }
....略...

(注意):这里upstream与proxy_pass的名字必须一致,这里都是doublesweb。

重新加载nginx配置文件

[root@localhost conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost conf]# /usr/local/nginx/sbin/nginx -s reload

测试:

在windows上打开浏览器:输入网址www.notenet.cn,发现已经可以轮询web1和web2了。

2、多个域名的负载均衡

在1中我们只对www.doubles.cn做了负载均衡,实际环境中我们可能需要对多个域名进行负载均衡。这里我们添加一个ceshi.notenet.cn。

2.1、web1上面新建虚拟主机ceshi.notenet.cn

增加网页目录/usr/local/nginx/html/dd/:

[root@localhost html]# mkdir /usr/local/nginx/html/dd/
[root@localhost html]# vim /usr/local/nginx/html/dd/index.html

添加一个ceshi.notenet.cn的虚拟主机:

[root@localhost html]# vim /usr/local/nginx/conf/vhost/ceshi.notenet.cn.conf
server {
        listen       81;
        server_name  ceshi.notenet.cn;
        location / {
            root    /usr/local/nginx/html/dd/;
            index  index.html index.php index.htm TempLoginPanel.html;
        }

 

        location ~ \.php$ {
            root           /usr/local/nginx/html/dd/;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
}

重新加载nginx配置文件

[root@localhost conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost conf]# /usr/local/nginx/sbin/nginx -s reload

2.2、在web2上新建虚拟主机ceshi.notenet.cn

跟web1同样的操作:

增加网页目录/usr/local/nginx/html/dd/:

[root@localhost html]# mkdir /usr/local/nginx/html/dd/
[root@localhost html]# vim /usr/local/nginx/html/dd/index.html

添加一个ceshi.notenet.cn.conf的虚拟主机:

[root@localhost html]# vim /usr/local/nginx/conf/vhost/ceshi.notenet.cn.conf
server {
        listen       80;
        server_name  ceshi.notenet.cn;
        location / {
            root    /usr/local/nginx/html/dd/;
            index  index.html index.php index.htm TempLoginPanel.html;
        }

 

        location ~ \.php$ {
            root           /usr/local/nginx/html/dd/;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
}

重新加载nginx配置文件

[root@localhost conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost conf]# /usr/local/nginx/sbin/nginx -s reload

2.3、配置负载均衡

在负载均衡机器(192.168.188.128)上:


[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf
...
    upstream  www.notenet.cn {
        #ip_hash;
        server   192.168.188.129:80;
        server   192.168.188.130:80;
    }
 
   upstream  ceshi.notenet.cn {  
       #ip_hash;
       server   192.168.188.129:80;
       server   192.168.188.130:80; 
   }
 
    server {
        listen       80;
        server_name  localhost;
        location / {
            #root   html;
            #index  index.html index.htm;
            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;
        }
.....

(注意):这里upstream后面的名字必须跟你访问的域名保持完全一致,否则将无法代理。因为proxy_pass是根据$host来匹配的。

重新加载nginx配置文件

[root@localhost conf]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@localhost conf]# /usr/local/nginx/sbin/nginx -s reload

测试ok!

扫描二维码至手机访问

扫描二维码推送至手机访问。

版权声明:本文由红柚酱发布,如需转载请注明出处。

转载请注明出处:https://www.notenet.cn/post/55.html

相关文章

jquery正则表达式验证(手机号、身份证号、中文名称)

jquery正则表达式验证(手机号、身份证号、中文名称)

jquery正则表达式验证,实现手机号、身份证号、中文名称等验证,具体内容如下HTML(表单):<form action="">  <div...

10 个实战与面试【常用 Shell 脚本】编写

10 个实战与面试【常用 Shell 脚本】编写

注意事项1)开头加解释器:#!/bin/bash2)语法缩进,使用四个空格;多加注释说明。3)命名建议规则:变量名大写、局部变量小写,函数名小写,名字体现出实际作用。4)默认变量是全局的,在函数中变量...

Linux下挂载硬盘的方法

Linux下挂载硬盘的方法

1. 添加磁盘,查看磁盘状况[root@db1 /]# fdisk -lDisk /dev/sda: 10.7 GB, 10737418240 bytes255 heads, 63 sect...

wangEditor3菜单修改之拆分居左居中居右菜单

wangEditor3菜单修改之拆分居左居中居右菜单

wangEditor —— 轻量级 web 富文本编辑器,配置方便,使用简单。支持 IE10+ 浏览器。官网:www.wangEditor.com文档:www.kancloud.cn/wangfupe...

mysql中怎么重置清空id,id从1开始自动递增方法

mysql中怎么重置清空id,id从1开始自动递增方法

有时候我们在使用mysql的时候,设置了id自动递增,然后删除了一些数据,再次增数据的时候,id就出现累计的情况,怎么重置清空id呢,下面来分享一下方法重置清空id,id从1开始自动递增方法使用mys...