У меня проблема с моим апстримом. Я возвращаю URL http://backend/f?p=4550
с ошибкой 404 при прохождении https://secure.toto02.com/ords/pls/manitou/4550
. Что я пытаюсь сделать, так это сохранить https://secure.toto 02.com/ords/pls/manitou/4550
в навигаторе, пока восходящий поток отправляет запрос http://192.167.1.79:8080/ords/f?p=4550
. Я хочу скрыть запрос.
Не знаю, что не так с конфигурационным файлом сервера nginx, может кто-нибудь помочь?
upstream backend {
server 192.167.1.79:8080;
}
server {
listen 443 ssl spdy;
server_name secure.toto02.com;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location ~ "^/(.*)/pls/ords/(\d{1,4})$" {
proxy_pass http://backend/ords/f?p=$2;
}
}
Вы используете переменные внутри proxy_pass
директива, которая заставляет перенаправления вашего восходящего сервера напрямую перенаправляться клиенту, поскольку nginx не может угадать, что делать. Вот почему вы получаете такой результат в своем браузере.
Убедитесь, что ваш вышестоящий сервер правильно отвечает на http://192.167.1.79:8080/ords/f?p=4550
используя тот же контекст, что и nginx.
Например, здесь по крайней мере две вещи идут не так:
Host
заголовок с вашим реальным доменом, поэтому nginx использует Host: backend
вместо./ords/f?p=4550
в (на основе вашего комментария) /ords/f?p=4550:1:
.