nginx 和 apache - 同一 IP 上的多个虚拟主机 - 正确配置

nginx 和 apache - 同一 IP 上的多个虚拟主机 - 正确配置

我正在尝试在同一台机器上运行 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/

希望这对你有帮助。

相关内容