Обратный прокси-сервер nginx для Apache-WordPress работает, но Proxy_pass на внешний URL не удается - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть обратный прокси-сервер nginx для apache wordpress, который работает нормально.Однако в зависимости от местоположения необходимо перенаправить на внешний URL, который не удается.Пожалуйста, проверьте приведенный ниже конфиг.Это допустимая установка?

https://platform.com/ - это работает - также все последующие страницы wp также работают

https://platform.com/pen - это необходимо перенаправить на https://abcdef.com - это не работает - ошибка загрузки страницы 404 Любая помощь?

server {
    listen 443 ssl default_server;
    listen [::]:443 default_server;

    server_name platform.com;
    server_tokens off;

    root /var/www/html/def/public/;
    index index.php;

    ssl on;
    ssl_certificate /tmp/fgh.crt;
    ssl_certificate_key /tmp/fgh.pem;

    access_log /var/log/nginx/access2.log;
    error_log /var/log/nginx/error2.log;

    location / {
            proxy_set_header X-Forwarded-Proto $scheme;
            try_files $uri @apache;
    }

    location @apache {
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Host $host;
            proxy_pass http://127.0.0.1:8080;
    }

     location ~[^?]*/$ {
            proxy_set_header X-Real-IP  $remote_addr;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Host $host;
            proxy_pass http://127.0.0.1:8080;
     }

     location /pen {
            proxy_pass https://abcdef.com;
    }
   }

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

После изменения имени сервера (wordpress site) с префикса http на префикс www сработало направление передачи прокси.Пришлось перенаправить все http-серверные блоки http на www-серверный блок в конфигурации nginx

0 голосов
/ 19 сентября 2018

То, что вы делаете, это proxy_pass для https://abcdef.com, а не редирект.если вы имели в виду перенаправление, то код:

 location /pen {
        return 301 https://abcdef.com;
}

Если это не окончательное перенаправление, используйте 302 вместо 301, поэтому оно не кэшируется (для тестов гораздо лучше).

Причина, по которой указывается значение 404, заключается в том, что вы обращаетесь к https://abcdef.com по запросу с узлом / URL https://platform.com/pen Если сервер назначения не готов получить весь этот URL-адрес, он возвращает 404 как /ручка не найдена.

...