猿问

nginx 代理仅提供在 Ngninx 上运行的 Wordpress 的部分数据

我有一个在第一台 nginx 服务器(虚拟机 A)上运行的 Wordpress 实例。我可以在本地完美地工作,一切都得到了很好的解决,并且通过我的网址 www.corph.mouradcloud 可以访问所有路径(例如 /wp-admin/ 、 /wp-content/ 、 /wp-includes/ 等...)。 com


至于现在,我没有使用 SSL,所以这是以后的问题 :)


这是我的 Nginx Web 实例的配置:


        upstream php-wp {

            server            unix:/var/run/mouradcloud.sock;

        }


        server {

            listen            80;

            listen            [::]:80;

            server_name       www.corph.mouradcloud.com;

            root              /var/www/mouradcloud;


                index                     index.php;


                location / {

                        try_files     $uri $uri/ /index.php?$args;

                }


                location = /favicon.ico {

                        log_not_found off;

                        access_log    off;

                }


                location = /robots.txt {

                        allow                    all;

                        log_not_found off;

                        access_log    off;

                }


                location ~ .php$ {

                        include       fastcgi.conf;

                        fastcgi_pass  php-wp;

                }


                location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {

                        expires       max;

                        log_not_found off;

                }

        }

我有第二台 Nginx 服务器,用作具有不同 URL(虚拟机 B)的代理。在谷歌一点之后,我注意到需要添加一些其他参数才能让 PHP 脚本通过代理。

奇怪的是,当客户端使用网络浏览器调试器连接时,路径 /wp-content/ , /wp-includes/ 是通过以下方式解析的:


    www.corph.mouradcloud.com 

代替


    www.mouradcloud.com

这是调试器的屏幕截图,我们可以看到只有文档通过代理传递,脚本被拒绝,而它不应该因为我在请求中通过代理传递所有东西..


牛魔王的故事
浏览 107回答 1
1回答

一只名叫tom的猫

在四处寻找后,我找到了解决方案。这……很简单……所以我将分享配置的每个部分,以便人们在未来不会浪费时间……这是总体情况请记住,对于第一次尝试,我不会将 SSL 与 Let's encrypt 一起使用,我将保留它以备后用。目前,这是简单的 http。在 NGINX 代理上,我使用此配置文件 ( /etc/nginx/sites-available/www.mouradcloud.com ) 创建了一个站点    server {     listen 80;     server_name www.mouradcloud.com;    location / {     proxy_pass http://www.corph.mouradcloud.com;     sub_filter_once off;     sub_filter 'www.corph.mouradcloud.com' 'www.mouradcloud.com';     sub_filter_types *;     }    }在 VM Wordpress&Nginx 上,这里是 wp-config.php (/var/www/mouradcloud/wp-config.php),我确实添加了 2 行:    define('WP_SITEURL', 'http://www.corph.mouradcloud.com');    define('WP_HOME', 'http://www.corph.mouradcloud.com');最后在我的 WM WOrdpress&Nginx 中,我没有更改我的 nginx Web 服务器的配置,这仍然是相同的(/etc/nginx/sites-available/www.corph.mouradcloud.com):        upstream php-wp {            server            unix:/var/run/mouradcloud.sock;        }        server {            listen            80;            listen            [::]:80;            server_name       www.corph.mouradcloud.com;            root              /var/www/mouradcloud;                index                     index.php;                location / {                        try_files     $uri $uri/ /index.php?$args;                }                location = /favicon.ico {                        log_not_found off;                        access_log    off;                }                location = /robots.txt {                        allow                    all;                        log_not_found off;                        access_log    off;                }                location ~ .php$ {                        include       fastcgi.conf;                        fastcgi_pass  php-wp;                }                location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {                        expires       max;                        log_not_found off;                }        }不是 Http 工作我会看看 https ...
随时随地看视频慕课网APP
我要回答