1

理想情况下,在服务器上,我会使用 Cloudflare > Varnish > Nginx 为我自己的静态和 WordPress 站点提供服务,但由于我还会托管其他站点进行测试,例如 Joomla 和 WordPress,它们依赖于使用 .htaccess 等的多个扩展,我将无法通过 Nginx 轻松运行这些站点。所以我想用 CloudFlare > Varnish > Nginx Reverse Proxy > Apache 在同一台服务器上运行这些站点。

服务器只有 1 个 ip 地址,运行 ubuntu 和 php-fpm 和 mysql。每个站点都有自己独立的域名。这可能吗?

4

1 回答 1

0
server {
    server_name example.com;
    location / {
        # assuming apache is on port 81 for example
        proxy_pass http://127.0.0.1:81;
        # to make apache detect the host header
        proxy_set_header Host $host;
    }

# if you have assets folders, you can let nginx serve them directly,
# instead of passing them to apache

    location /images { # or /css or /js .. etc
        try_files $uri =404;
    }
}

注意:在资产的情况下,有时某些站点通过重写来提供资产,甚至由应用程序自己处理,您可以通过将其添加到资产位置作为后备将其传递给 apache,如下所示

location /images {
    try_files $uri @apache;
}
location @apache {
    proxy_pass http://127.0.0.1:81;
}

在 apache 中,您创建一个虚拟主机

<VirtualHost *:81>
    ServerName example.com
    # the rest of the config if needed
</VirtualHost>
于 2013-08-21T07:20:01.620 回答