LNMP详解(七)——Nginx反向代理配置实战

简介: LNMP详解(七)——Nginx反向代理配置实战

今天继续给大家介绍Linux运维的相关知识,本文主要内容是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文件中插入 如下的虚拟主机配置内容:


DocumentRoot "/var/www/html/web1"
ServerName www.web1.com

1
2
3
4


DocumentRoot "/var/www/html/web2"
ServerName www.web2.com

1
2
3
4
配置完成后,重启服务器。
注意,为了避免一些不必要的错误,我们需要将两个Apache服务器配置的完全相同。

三、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;
1
2
紧接着,在/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;
    }

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
1
2
接下来,尝试访问这两个站点,发现网页正常显示,然后查看后端Apache真实服务器日志,发现存在访问记录,如下所示:

由此可见,Nginx前端起到了反向代理的作用,将客户端的请求传递给了后端的真实Apache服务器,我们的配置成功!
创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40228200/article/details/122770689

目录
相关文章
|
5月前
|
应用服务中间件 Linux nginx
Nginx系列教程(06) - 配置反向代理
Nginx系列教程(06) - 配置反向代理
242 0
|
26天前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
20 1
|
安全 架构师 应用服务中间件
Nginx极简入门(五)配置Nginx反向代理
反向代理(Reverse Proxy)则是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器
Nginx极简入门(五)配置Nginx反向代理
|
8月前
|
缓存 负载均衡 安全
Nginx服务的搭建与配置(二)----Nginx的反向代理
Nginx服务的搭建与配置(二)----Nginx的反向代理
69 0
|
8月前
|
应用服务中间件 网络安全 PHP
Nginx服务的搭建与配置(—)
Nginx服务的搭建与配置(—)
96 0
|
缓存 负载均衡 安全
Nginx实战(五) 反向代理
Nginx实战(五) 反向代理
322 0
Nginx实战(五) 反向代理
|
缓存 负载均衡 前端开发
nginx入门(1)——反向代理
nginx入门(1)——反向代理
188 0
nginx入门(1)——反向代理
|
网络协议 应用服务中间件 nginx
Nginx专栏—05.Nginx反向代理服务
1.Nginx代理服务基本概述
281 0
Nginx专栏—05.Nginx反向代理服务
|
负载均衡 应用服务中间件 Linux
Linux安装配置反向代理Nginx
应用场景 对于一个大型网站来说,负载均衡是永恒的话题,顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好的体验。
1096 0
|
应用服务中间件 PHP nginx

相关实验场景

更多