Nginx的反向代理和负载均衡

一、Nginx的反向代理

1、反向代理:不同的域名同一个ip地址访问的是不同的服务器

2、域名和ip地址的映射关系是需要DNS服务器,我们没有dns服务器,所有修改本机的host文件来做域名和ip地址的映射关系

host文件的路径   C:\Windows\System32\drivers\etc    修改host文件,内容如下:

                             192.168.228.141 www.hayward.com
                             192.168.228.141 www.dong.com

这里的192.168.228.141是nginx服务器的地址   后面的域名可以自己随便取

3、修改Nginx的配置文件

      步骤:找到自己Nginx的安装路劲,进入到conf中编辑nginx.conf

                例如本人的路劲   cd  /usr/local/nginx/conf

                 编辑nginx.conf  vi nginx.conf

                 在这个配置文件中一个server就是表示一个虚拟主机,我们这里要配置两个nginx虚拟主机,所以主要写两个server配置即可    添加如下内容

    upstream tomcat_server{
          server 192.168.228.131:8080;
    }

    upstream tomcat_server2{
          server 192.168.228.131:8081;
    }

扫描二维码关注公众号,回复: 1109461 查看本文章

这里upstream后面的名字是自己取的,表示不同的你要访问的装有tomcat的服务器。server后面的是服务器的IP地址和端口号

(说明:我这里用的一台机器,所以我配置了两个不同端口的tomcat来代表两台不同的服务器)

server {
        listen       80;
        server_name  www.hayward.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            proxy_pass   http://tomcat_server;
            index  index.html index.htm;
        }
    }

server {
        listen       80;
        server_name  www.dong.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            proxy_pass   http://tomcat_server2;
            index  index.html index.htm;
        }
    }

说明:在这个nginx的配置文件中,每个server配置就是一个虚拟的主机,server_name 就是在host文件中配置的域名,在location里不能有默认的root了,要写proxy_pass   后面跟的就是在上面配置的upstream后面的名字

4、配置完成后重新启动nginx

     cd /usr/local/nginx/sbin

     ./nginx -s reload

二、Nginx的负载均衡

1、负载均衡:英文名称为Load Balance,其意思就是将同一个域名的请求分摊到多个服务器上,这几个服务器上的程序代码都是一样的,执行的效果都是一样的。

2、修改Nginx的配置文件

      步骤:找到自己Nginx的安装路劲,进入到conf中编辑nginx.conf

                例如本人的路劲   cd  /usr/local/nginx/conf

                 编辑nginx.conf  vi nginx.conf

                 在这个配置文件中一个server就是表示一个虚拟主机,我们这里要配置两个nginx虚拟主机,所以主要写两个server配置即可    添加如下内容

    upstream tomcat_server{
          server 192.168.228.131:8080;

          server 192.168.228.131:8081:

    }

这里upstream后面的名字是自己取的,表示不同的你要访问的装有tomcat的服务器。server后面的是服务器的IP地址和端口号

(说明:我这里用的一台机器,所以我配置了两个不同端口的tomcat来代表两台不同的服务器)

server {
        listen       80;
        server_name  www.hayward.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            proxy_pass   http://tomcat_server;
            index  index.html index.htm;
        }
    }

说明:在这个nginx的配置文件中,每个server配置就是一个虚拟的主机,server_name 就是在host文件中配置的域名,在location里不能有默认的root了,要写proxy_pass   后面跟的就是在上面配置的upstream后面的名字

在这中配置的情况下,每次域名的请求是在这两个不同的服务器之间轮询的,即这次的请求在8080上,下次的请求就在8081上了,再下一次的请求又在8080上了。

再upstream中的server后面还有几个常用的属性:

                   down 表示单前的server暂时不参与负载

                   weight 默认为1.weight越大,负载的权重就越大。在默认情况和所有的weight配置成一样的情况下就是每次请求在这些服务器之间轮询。负载的权重越大被分配的请求就越多。一般硬件配置比较高的服务器将它的负载权重配置的大一些 

                   max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream模块定义的错误

                   fail_timeout:max_fails 次失败后,暂停的时间。

                   backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。配置了这个属性的服务器一般就是备用机器,以防突发情况。

这些属性的写法    upstream tomcat_server{
                                  server 192.168.228.131:8080 weight=10;

                                  server 192.168.228.131:8081:

                            }


猜你喜欢

转载自blog.csdn.net/donghua19900508/article/details/79228455