我正在尝试在同一台机器上运行 nginx 作为 Apache 的反向代理,并通过它为不同的网站提供服务。
我的问题是 - 是否可以仅将虚拟主机添加到 nginx,并让其根据请求的主机自动将 url/主机名/路径等传递给 Apache。
或者我是否需要在 nginx 和 Apache 中为每个站点(域)设置一个虚拟主机?
此外,这个设置是否存在任何潜在问题?
我计划在我的 nginx 配置中为每个域设置如下内容(Apache 在端口 8080 上运行):
server {
listen 80;
root /var/www/site1.com/;
server_name site1.com;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
谢谢!
答案1
这个有可能。
在 Apache Web 服务器上,您需要将所有文件存储在默认虚拟主机上,以便可以作为http://IP 地址:端口/主机名/路径/
在 Nginx 服务器上创建多个虚拟主机并添加如下所示的 proy_pass 规则。
A.com -> / 将代理转发到 /a-com/ B.com -> / 将代理转发到 /b-com/ C.com -> / 将代理转发到 /c-com/
希望这对你有帮助。