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

目录
相关文章
|
1月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
88 7
|
8天前
|
存储 应用服务中间件 nginx
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
38 5
|
1月前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
1月前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
23天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
43 3
|
1月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
61 4
|
1月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
59 3
|
1月前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
109 3
|
1月前
|
缓存 负载均衡 安全
Nginx的反向代理具体是如何实现的?
Nginx的反向代理具体是如何实现的?
|
1月前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
225 1