nginx прокси обслуживает только часть данных Wordpress, работающих на Ngninx - PullRequest
0 голосов
/ 18 марта 2020

У меня запущен экземпляр Wordpress на первом nginx сервере (виртуальная машина A). Я могу отлично работать локально, все хорошо решено и все пути доступны (например, / wp-admin /, / wp-content /, / wp-includes / et c ...) через мой URL www.corph.mouradcloud.com

На данный момент я не использую SSL, так что это более поздняя проблема:)

вот конфигурация моего Nginx веб-экземпляра:

        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). Немного подумав о Google, я заметил, что для добавления скриптов PHP через прокси-сервер необходимо добавить и другие параметры.

вот файл прокси nginx:

        server {
                listen         80;
                listen         [::]:80;
                server_name    www.mouradcloud.com;

                location / {
                proxy_pass http://www.corph.mouradcloud.com;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Real-IP $remote_addr;
                }

        }

Странно, когда клиент подключается через отладчик веб-браузера, путь / wp-content /, / wp-includes / are решено через:

    www.corph.mouradcloud.com 

вместо

    www.mouradcloud.com

Вот скриншот отладчика, мы видим, что через прокси проходят только документы, сценарии отклоняются, а это не должно так как я передаю каждую вещь через прокси в запросе ..

enter image description here

Я предполагаю, что есть некоторые параметры, которые я пропускаю.

Я пытался добавить другое местоположение, например / wp-includes /, но в итоге я все испортил ...

Я просмотрел всю ветку SO, но пока ни у кого нет ответов

1 Ответ

0 голосов
/ 20 марта 2020

После поиска я нашел решение. Это было ... просто ... Так что я поделюсь каждой частью конфигурации, чтобы люди не теряли время в будущем ...

Вот общие ситуации enter image description here

Помните, что для этой первой попытки я не буду использовать 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 *;
     }
    }

На виртуальной машине 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 веб-сервера, и она все та же (/ 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;
                }
        }

Not Http работает, я посмотрю https ...

...