服务器可以为某些站点运行Nginx,为其他站点运行Apache Nginx反向代理吗?

时间:2013-08-19 21:35:22

标签: apache ubuntu nginx

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

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

1 个答案:

答案 0 :(得分: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>