Nginx多域名负载均衡配置

Nginx负载均衡设置

环境:

负载均衡:192.168.188.128:80

Web1:192.168.188.128:81

Web2:192.168.188.129:80

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

192.168.188.128 www.doubles.cn

192.168.188.128 abc.dd.cn

1、单个域名的负载均衡

1.1、在web1(192.168.188.128)上搭好web环境:

[[email protected] conf]# vim /usr/local/nginx/conf/nginx.conf
...
include vhost/*.conf;
...
}

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

新建vhost目录。

[[email protected] conf]# mkdir /usr/local/nginx/conf/vhost/

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

[[email protected] conf]# vim /usr/local/nginx/conf/vhost/www.doubles.cn.conf
server {
        listen       81;
        server_name  www.doubles.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文件:

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

重新加载nginx配置文件

[[email protected] 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
[[email protected] conf]# /usr/local/nginx/sbin/nginx -s reload

测试web1:

1.2、在web2(192.168.188.129)上搭好web环境:

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

新建虚拟主机:

[[email protected] conf]# vim /usr/local/nginx/conf/nginx.conf

...

include vhost/*.conf;

...

}

[[email protected] conf]# mkdir /usr/local/nginx/conf/vhost/

[[email protected] conf]# vim /usr/local/nginx/conf/vhost/www.doubles.cn.conf

server {

listen       80;

server_name  www.doubles.cn localhost 192.168.188.129;

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文件:

[[email protected] conf]# vim /usr/local/nginx/html/index.html

重新加载nginx配置文件

[[email protected] 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

[[email protected] conf]# /usr/local/nginx/sbin/nginx -s reload

测试如下:

注意:正式环境当中,web1和web2机器上面的网页内容应该是一致的,才能做负载均衡。这里为了区分两台机,所以在网页内容中区分了下。

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

[[email protected] conf]# vim /usr/local/nginx/conf/nginx.conf
...上面的省略...
upstream  doublesweb {
        #ip_hash;
        server   192.168.188.128:81;
        server   192.168.188.129: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配置文件

[[email protected] 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
[[email protected] conf]# /usr/local/nginx/sbin/nginx -s reload

测试:

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

再刷新:

2、多个域名的负载均衡

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

2.1、web1上面增加网页目录/usr/local/nginx/html/dd/:

[[email protected] html]# mkdir /usr/local/nginx/html/dd/

[[email protected] html]# vim /usr/local/nginx/html/dd/index.html

添加一个abc.dd.cn.conf的虚拟主机:

[[email protected] html]# vim /usr/local/nginx/conf/vhost/abc.dd.cn.conf

server {

listen       81;

server_name  abc.dd.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配置文件

[[email protected] 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

[[email protected]st conf]# /usr/local/nginx/sbin/nginx -s reload

2.2、在web2上进行跟web1同样的操作:

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

[[email protected] html]# mkdir /usr/local/nginx/html/dd/

[[email protected] html]# vim /usr/local/nginx/html/dd/index.html

添加一个abc.dd.cn.conf的虚拟主机:

[[email protected] html]# vim /usr/local/nginx/conf/vhost/abc.dd.cn.conf

server {

listen       80;

server_name  abc.dd.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配置文件

[[email protected] 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

[[email protected] conf]# /usr/local/nginx/sbin/nginx -s reload

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

[[email protected] html]# vim /usr/local/nginx/conf/nginx.conf

...

#gzip  on;

upstream  www.doubles.cn {

#ip_hash;

server   192.168.188.128:81;

server   192.168.188.129:80;

}

upstream  abc.dd.cn {

#ip_hash;

server   192.168.188.128:81;

server   192.168.188.129: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;

}

.....

重新加载nginx配置文件

[[email protected] 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

[[email protected] conf]# /usr/local/nginx/sbin/nginx -s reload

测试:

再刷新:

测试之前的域名:

仍然可以进行负载均衡,所以生效。

原文地址:https://www.cnblogs.com/doublexi/p/9680215.html

时间: 2024-10-20 19:12:29

Nginx多域名负载均衡配置的相关文章

Nginx+Tomcat+Memcached负载均衡配置完整流程(多方总结,亲测可用)

Nginx+Tomcat+Memcached负载均衡配置完整流程: 前言: Nginx实现Tomcat的负载均衡和利用memcached实现session共享. 首先配置tomcat,JDK 将jdk,tomcat 放入站点/opt目录中 安装JDK cd /opt chmod 755 jdk-6u45-linux-x64-rpm.bin ./jdk-6u45-linux-x64-rpm.bin java -version      //检验版本 安装Tomcat tar -zxf apache

[转]Nginx+mysql+php-fpm负载均衡配置实例

转 : http://www.jbxue.com/article/7923.html 介绍一个nginx.mysql.php-fpm环境下配置负载均衡的例子,有需要的朋友,可以参考下. 系统环境如下:前端Nginx:192.168.93.137后端web1:192.168.0.11后端web2:192.168.0.12 1.前端nginx配置: 复制代码代码示例: http {      ……        client_max_body_size 300m;        client_bod

5、域名直接解析\泛域名解析配置\域名负载均衡配置\辅助域名服务器

以之前的 3.DNS服务器功能(正向.反向解析) 为基础下做 1.域名直接解析配置 大多数用户都不愿意输入 www.gr.org  这样的域名,一般都希望直接 gr.org  域名就可以访问该公司的WWW网站.这种情况就需要在域名服务器上配置域名直接解析配置 没配置之前: ①.在区域数据库文件 /var/named/gr.org.db 末尾加入以下语句 @   IN   A  192.168.170.3 [[email protected] root]# vi   /var/named/gr.o

在Nginx中做负载均衡配置的实例讲解

负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法. 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况.那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可. 由于没有服务器,所以本次测试直接host指定域名,然后在VMware里安装了三台CentOS. 测试域名  :a.com A服务器IP :192.168.5.149 (主) B服务器IP :

Centos7.4 Nginx反向代理+负载均衡配置

Ningx是一款高性能的HTTP和反向代理服务器,配置起来也比较简单. 测试环境: 172.16.65.190 Nginx-反向代理 172.16.65.191 Ningx-Web 172.16.65.192 Nginx-Web 在三台Server安装Nginx: # yum install -y nginx 在172.16.65.190配置Nginx反向代理+负载均衡: # vim /etc/nginx/nginx.conf user nginx; worker_processes auto;

nginx高可用负载均衡配置

Nginx+keepalived 实现高可用负载均衡集群 一.Nginx简介 Nginx ("engine x") 是一个高性能HTTP和反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2011年6月1日,nginx

【Nginx】四层负载均衡配置

一.概述 二.配置 2.1 环境准备 2.2 安装及配置 1).下载Nginx 2).下载nginx_tcp_proxy_module 插件 3).编译Nginx 4).修改Nginx.conf配置文件 5).测试 一.概述 Nginx1.9之后,开始支持四层负载均衡,需要引入额外的模块 二.配置 2.1 环境准备 #测试环境 CentOS7 #Nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信. #stream模块默认不安装的,需要手动添加参数:–

nginx反向代理负载均衡配置

LB: nginx.conf worker_processes  1; events {     worker_connections  1024; } http {     include       mime.types;     default_type  application/octet-stream;     sendfile        on;     keepalive_timeout  65;     upstream www_server_pools {     serve

linux下:nginx+tomcat实现负载均衡

Nginx+tomcat+jdk+负载均衡配置 Nginx与tomcat都具有发布网页的功能,但是nginx只能发布HTML的静态网页,tomcat可以发布jsp的网页,并且nginx可以发布tomcat. 下载:jdk.xxxxxx.rpm   apache-tomcat-xxxxxxxxx.tar.gz   openssl.xxxxxx.tar.gz   zlib.xxxx.tar.gz   pcre.xxxx.tar.gz    Nginx.xxxxx.tar.gz 1.jdk安装配置 上