Nginx 是一款非常不错的反向代理软件,如果自己懂得搭建,也可以只安装 Nginx,使用 Plesk 来搭建,主要是享受了 Plesk 自带的一些功能,最主要的是 Lets Encrypt 证书的创建、自动续期和服务器的可视化管理。
原理
Plesk 默认使用了 Nginx 和 Apache,Nginx 接受请求,然后传递给 Apache,利用 Plesk 搭建反向代理服务器,就是修改 Nginx 的配置,让它把请求传递给第三方服务器。
实现
1、修改 Nginx 的配置文件
mkdir /usr/local/psa/admin/conf/templates/custom mkdir /usr/local/psa/admin/conf/templates/custom/domain mkdir /usr/local/psa/admin/conf/templates/custom/domain/service cp /usr/local/psa/admin/conf/templates/default/domain/nginxDomainVirtualHost.php /usr/local/psa/admin/conf/templates/custom/domain cp /usr/local/psa/admin/conf/templates/default/domain/service/proxy.php /usr/local/psa/admin/conf/templates/custom/domain/service
使用 vi 编辑器修改 proxy.php
,把 proxy_pass 那两行的后半部分地址改成:
<?php echo $VAR->domain->asciiName ?>;
使用 vi 编辑器修改 nginxDomainVirtualHost.php
,找到 root 那一行,删掉即可。为了安全起见,也可以删掉下面的 add_header
那一行,这样就不会在头部文件中显示“PleskLin”字样。
重新生成网址配置文件
/usr/local/psa/admin/sbin/httpdmng --reconfigure-domain <domain_name>
2、修改 hosts 文件
我们在域名解析的时候,解析到的是 Plesk 反向代理服务器的 IP 地址,我们现在要使用 hosts 把域名重新解析到源服务器的 IP 地址,这样反向代理服务器才可以把请求传递到源服务器。
3、修改 Apache 和 Nginx 设置
1、进入域名 –> Apache 和 Nginx 设置 –> nginx 设置,代理模式前面打勾,取消“静态文件智能处理”和“由 Nginx 直接服务静态文件”前面的勾。
2、在 Plesk 后端服务器的网站设置里的“其他 Nginx 指令”中加入下面的语句,IP 替换成 Plesk 前端的 IP 地址:
set_real_ip_from 10.10.10.1;
这样后台服务器的日志就能正常获取访客的 IP,而不是代理服务器的 IP。