Linux在同一个服务器上运行Apache、Nginx和HAProxy( 二 )


Nginx
【Linux在同一个服务器上运行Apache、Nginx和HAProxy】如下所示,在Nginx监听指令中添加proxy_protocol 。
listen 127.0.0.2:443 ssl http2 proxy_protocol;然后在Nginx http {}块中添加以下两个指令 。
set_real_ip_from 127.0.0.1;real_ip_header proxy_protocol;保存关闭然后重启Nginx.
sudo systemctl reload nginxApache

Linux在同一个服务器上运行Apache、Nginx和HAProxy

文章插图
 
如果您在Debian / Ubuntu上使用Apache,则需要启用远程模块 。(默认情况下,此模块已在CentOS上启用 。)
sudo a2enmod remoteip然后在Apache虚拟主机配置文件中添加以下3行 。
RemoteIPProxyProtocol OnRemoteIPHeader X-Forwarded-ForRemoteIPTrustedProxy 127.0.0.1有如:
<VirtualHost 127.0.0.2:443>ServerName www.example.comRemoteIPProxyProtocol OnRemoteIPHeader X-Forwarded-ForRemoteIPTrustedProxy 127.0.0.1保存并关闭文件 。然后我们还需要更改组合日志格式 。编辑Apache主配置文件 。
sudo nano /etc/apache2/apache2.conf或者
sudo nano /etc/httpd/conf/httpd.conf找到以下信息:
LogFormat "%h %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined更换为:
LogFormat "%a %l %u %t "%r" %>s %O "%{Referer}i" "%{User-Agent}i"" combined保存并关闭文件 。然后重新启动Apache,以使更改生效 。
sudo systemctl restart apache2或者
sudo systemctl restart httpd请注意,RemoteIPProxyProtocolOn指令仅在Apache 2.4.31及更高版本中可用 。要检查您的Apache版本,请运行
sudo apache2 -v或者
sudo httpd -vUbuntu 18.04随Apache 2.4.29一起提供 。如果您的Apache版本不符合此要求,则应删除HAProxy后端定义中的send-proxy-v2 。CentOS 8附带了Apache 2.4.37 。
最后,重新启动HAProxy 。
sudo systemctl restart haproxy



推荐阅读