在nginx反向代理后将WordPress与Apache配合使用

时间:2016-03-30 作者:allinformatix

我希望你能帮我解决我的问题。

我在专用服务器上运行ngninx作为反向代理。我的WordPress应用程序位于另一个VM上,它以Websever的形式运行apache2。在我在WordPress中使用“permalinks”之前,一切都很好。我收到:

“在此服务器上找不到请求的URL/联系我们/地址。”

这是我在nginx上的配置:

server {
        listen          443;
        ssl         on;
        server_name     foo.com;


        access_log  /var/log/nginx/foo.access.log;
        error_log   /var/log/nginx/foo.error.log;


        ssl_certificate           /etc/nginx/ssl-certificates/foo.de.crt;
        ssl_certificate_key       /etc/nginx/ssl-certificates/foo.de.key;


        ssl_protocols        SSLv3 TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers RC4:HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        keepalive_timeout    60;
        ssl_session_cache    shared:SSL:10m;
        ssl_session_timeout  10m;

        location / {
            proxy_pass  https://111.111.111.111;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_set_header        Host            $host;
            proxy_set_header        X-Real-IP       $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        }

}
server {
    listen      80;
    server_name     foo.com;

    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^/.*$ https://$host$request_uri? permanent;
}
我不知道为什么我不能使用permalinks。有人面临同样的问题吗?

提前感谢!

1 个回复
SO网友:Jon

你错过了Wordpress的重写规则。

这可能令人困惑,因为在Apache中,WordPress会自动在中生成重写规则。htaccess。它在nginx环境中的作用不同。

Pay special attention to the Wordpress documentation on nginx 以及引用HTTP重写规则的配置指令、用于分段配置的“includes”指令和特定的Wordpress重写规则,这些规则需要存在才能使永久链接正常工作。

由于不太了解您的操作系统、站点/网络或设置,我不愿意在没有上下文的情况下复制和粘贴代码。文档的这一部分非常全面,应该提供您需要的内容。