1 前言
一个问题,一篇文章,一出故事。
本章需要实现前端反向代理(Nginx)的服务器需要传递客户端IP真实地址至后端的应用程序服务器(Apache+PHP)。
2 最佳实践
2.1 环境信息
前端代理:
HostName = any.cmdschool.org
IPAddress = 10.168.0.1[0,1]
Aplication = nginx 1.10.2
如需搭建反向代理请参阅如下章节,
后端应用:
HostName = any.cmdschool.org
IPAddress = any
Aplication = Apache 2.4.46 + PHP 7.4.3
如需搭建Apache PHP环境请参阅以下章节,
2.2 配置Nginx前端代理
2.2.1 增加代理头设置
vim /etc/nginx/conf.d/www.cmdschool.org.conf
加入如下配置,
server { #... location / { #... proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #... } #... }
2.2.2 重载服务使配置生效
systemctl reload nginx.service
2.3 配置Apache后端服务器
2.3.1 修改配置启用模块
vim /etc/httpd/httpd.conf
启用如下配置加载模块,
LoadModule remoteip_module modules/mod_remoteip.so
然后,可使用如下命令确认模块已经启用,
httpd -M | grep remoteip
可见如下显示,
remoteip_module (shared)
另外,可使用如下命令确认模块的位置,
find /usr/ -name \*mod_remoteip.so\*
一般显示如下,
/usr/local/apache2/modules/mod_remoteip.so
2.3.2 加入代理所需的配置
vim /etc/httpd/conf.d/www.cmdschool.conf
加入如下配置,
<VirtualHost *:443> #... RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 10.168.0.10/32 RemoteIPInternalProxy 10.168.0.11/32 #... </VirtualHost>
加入配置后,我们建议使用如下命令验证配置语法,
httpd -t
2.3.3 重载服务使配置生效
systemctl reload httpd.service
参阅文档
===========================
官方配置文档
—————-
https://httpd.apache.org/docs/current/mod/mod_remoteip.html
配置范例
————
https://www.123admin.com/how-to-get-remote-ip-on-apahce/
https://gist.github.com/patrocle/43f688e8cfef1a48c66f22825e9e0678
apache命令使用
————-
https://www.tecmint.com/check-apache-modules-enabled/
没有评论