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

目录
相关文章
|
26天前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
1月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
255 0
|
1月前
|
应用服务中间件 Linux nginx
Jetson 环境安装(四):jetson nano配置ffmpeg和nginx(亲测)之编译错误汇总
这篇文章是关于在Jetson Nano上配置FFmpeg和Nginx时遇到的编译错误及其解决方案的汇总。
87 4
|
5天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
18天前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
nginx配置反向代理404问题
|
1月前
|
负载均衡 应用服务中间件 Linux
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
这篇博客文章详细介绍了Nginx的下载、安装、配置以及使用,包括正向代理、反向代理、负载均衡、动静分离等高级功能,并通过具体实例讲解了如何进行配置。
148 4
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全
|
1月前
|
编解码 Ubuntu 应用服务中间件
Jetson 环境安装(三):jetson nano配置ffmpeg和nginx(亲测)
本文介绍了在NVIDIA Jetson Nano上配置FFmpeg和Nginx的步骤,包括安装、配置和自启动设置。
134 1
Jetson 环境安装(三):jetson nano配置ffmpeg和nginx(亲测)
|
22天前
|
缓存 负载均衡 应用服务中间件
Nginx配置
【10月更文挑战第22天】在实际配置 Nginx 时,需要根据具体的需求和环境进行调整和优化。同时,还需要注意配置文件的语法正确性和安全性。
38 7
|
1月前
|
前端开发 JavaScript 应用服务中间件
终极 Nginx 配置指南
本文介绍了Nginx的基本配置及其优化方法。首先,通过删除注释简化了Nginx的默认配置文件,使其更易于理解。接着,文章将Nginx配置文件分为全局块、events块和http块三部分进行详细解释。此外,还提供了如何快速上线网站、解决前端history模式404问题、配置反向代理、开启gzip压缩、设置维护页面、在同一IP上部署多个网站以及实现动静分离的具体配置示例。最后,附上了Nginx的基础命令,包括安装、启动、重启和关闭等操作。