Nginx反向代理实战配置

一、系统架构简介
在生产环境中,我们有时需要使用Nginx做反向代理功能,其架构如下所示:
在这里插入图片描述
在上图中,所有的外界访问被Nginx代理服务器所接收,Nginx的后端是真实服务器Apache,Apache来实际处理客户端请求,而Nginx所起到的作用仅仅是作为反向代理,将客户端请求发送到Apache服务器。Apache服务器后端还会有MySQL通过cluster或其他方式组成的集群数据库架构。
接下来,我来进行上图中,Nginx反向代理配合Apache的实战架构。在本次实战中,设备及IP地址如下:
Nginx:192.168.136.12
Apache1:192.168.136.14
Apache2:192.168.136.15
在Apache1和Apache2中,配置实现基于域名的虚拟主机。
二、Apache虚拟主机配置
在Apache服务器中,新建/var/www/virtual/web1和/var/www/virtual/web2的目录作为Apache虚拟主机的根目录,并且在Apache主配置文件/etc/httpd/conf/httpd.conf文件中插入 如下的虚拟主机配置内容:

<VirtualHost *:80>
        DocumentRoot "/var/www/html/web1"
        ServerName www.web1.com
</VirtualHost>

<VirtualHost *:80>
        DocumentRoot "/var/www/html/web2"
        ServerName www.web2.com
</VirtualHost>

三、Nginx反向代理相关配置
由于Apache使用了虚拟主机功能,因此,为了实现Nginx的合理转发,我们也必须配置Nginx在反向代理中使用虚拟主机功能。
首先,打开Nginx主配置文件/usr/local/nginx/conf/nginx.conf,找到http模块下的server模块,将其全部删除,并替换为如下内容:

include /usr/local/nginx/conf/web1.conf;
include /usr/local/nginx/conf/web2.conf;

紧接着,在/usr/local/nginx/conf/目录下,创建web1.conf和web2.conf两个配置文件,在web1.conf文件中写入如下内容:

upstream web1{
        server 192.168.136.14:80;
        server 192.168.136.15:80;
}
server {
        listen       80;
        server_name  www.web1.com;
        location / {
            root   html;
            index  index.html index.htm;

        proxy_pass http://web1;
        proxy_set_header Host $host;
       }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

web2.conf文件与之类似。
在上述配置中,upstream表示负载分担的意思,表明后端两个真实服务器的IP地址和端口。server模块为对Nginx主配置模块中server模块的复制内容,但是加入了proxy_pass和proxy_set_header两个参数,其中,proxy_pass表示在该server模块中的location,应该对应哪个upstream模块进行处理,因此该参数后面必须和upstream的内容完全对应,porxy_set_header表示调用的主机名。
所有的内容配置完毕后,重启Nginx服务器。

四、效果检验
接下来,我们来检验一下配置效果。首先,修改本地hosts文件,在文件末尾添加如下内容:

192.168.136.12 www.web1.com
192.168.136.12 www.web2.com

接下来,尝试访问这两个站点,发现网页正常显示,然后查看后端Apache真实服务器日志,发现存在访问记录,如下所示:
在这里插入图片描述
由此可见,Nginx前端起到了反向代理的作用,将客户端的请求传递给了后端的真实Apache服务器,我们的配置成功!
转载自:@永远是少年

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

半城!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值