指引网

当前位置: 主页 > 服务器 > Nginx >

在不同端口下模拟 Nginx 反向代理和负载均衡

来源:网络 作者:佚名 点击: 时间:2017-06-13 21:35
[摘要]  本文章来为各位介绍一篇关于在不同端口下模拟 Nginx 反向代理和负载均衡的例子,希望这篇文章能够给大家带来帮助.

Nginx 是一个轻量级的 WEB 服务器,反向代理服务器和电子邮件服务器,本文介绍在虚拟机中使用不同的端口来模拟不同的服务器,并使用 Nginx 反向代理功能实现服务器负载均衡的效果。


新建两个站点

首先新建两个 WEB 目录当做不同的服务器下的站点,一个是 website-A,一个是 website-B. 这两个站点目录应该是在不同的服务器上,而且代码是一模一样的,这里为了方便在一台虚拟机上模拟不同服务器,并且把两个站点目录下的首页做了一点修改,以区分访问到的是不同目录(服务器)下的站点。两个站点都只有一个简单的 index.html 的首页,里面内容是”This is website A”这样的。

vagrant@homestead:~/html/load-balance$ ls
website-A  website-B

配置 Nginx 反向代理和负载均衡

在 /etc/nginx/sites-enabled 目录下新建一个文件,如: test-load-balance,内容如下:

upstream tanteng_me {
    server localhost:1031;
    server localhost:1032;
}
 
server {
    listen          80;
    server_name     tanteng2.me www.tanteng2.me;
 
    location / {
        #设置主机头和客户端真实地址,以便服务器获取客户端真实IP
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass      http://tanteng_me;
    }
}
这个反向代理服务器监听 80 端口,并定义了一个服务器负载均衡的模块,这里两个不同的端口代表不同的服务器(由于是在一台虚拟机中,并没有安装多个虚拟机,因此采用不同的端口的方式来模拟)。

Nginx WEB 服务器配置

在 /etc/ngxin/conf.d/ 下新建 load-balance.conf,内容如下:

server {
    listen       1031;
    server_name  tanteng2.me;
    root   /usr/share/nginx/html/load-balance/website-A;
    index  index.html index.htm;
 
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
 
    location / {
 try_files $uri $uri/ /index.php?$query_string;
    }
}
 
server {
    listen       1032;
    server_name  tanteng2.me;
    root   /usr/share/nginx/html/load-balance/website-B;
    index  index.html index.htm;
 
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
 
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
}

这里配置了两个服务器,通过监听不同的端口设置站点根目录分别是 website-A 和 website-B,经过以上配置之后,绑定虚拟机 host,并通过浏览器访问。

 

可以看到刷新页面,内容也在发生变化,说明通过负载均衡配置,实现了轮询服务器效果。

本文介绍了在不同端口下模拟 Nginx 反向代理和负载均衡,不仅可以了解基本的 Nginx 反向代理和负载均衡配置,而且用这种不同端口模拟不同服务器的方式可以做另外一件事情,后续再讲。

------分隔线----------------------------