今天继续给大家介绍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