Назад | Перейти на главную страницу

Nginx proxy_pass неожиданный результат

Несколько недель назад я пытался использовать proxy_pass сделать прокси, чтобы отображать веб-страницу, которая не https на моей странице с помощью iframe.

он работает хорошо, и я просто пытаюсь установить другой прокси-сервер, он не работает.

conf:

server {
    listen 443 ssl;
    server_name my.com;
    ssl_certificate  /server.pem;
    ssl_certificate_key /server.key;
    root html;
    index index.html index.htm;
    ...
    location /proxy/ {
        proxy_pass http://other.com/;
    }
}

Я захожу на эту страницу http://other.com/mobile.html, и вроде работает хорошо, но https://my.com/proxy/mobile.html идет не так, вот страница:

HTTP Status 404 - /somefolder/mobile.html

Я полагаю, что http://other.com сервер также использует прокси, поэтому я не могу получить настоящую веб-страницу? Кто-нибудь знает, что случилось? Пожалуйста, дайте мне совет, чтобы избежать этого.

Любая помощь будет очень признательна! Спасибо.

Спасибо за напоминание @ TeroKilkanen, я понимаю, что мой Nginx пропустил некоторые заголовки, что очень важно для other.com.

Я попытался сравнить заголовки ответов на этих веб-страницах и, кажется, понимаю, почему это произошло.

Кажется, сервер other.com использует Spring каркас, Весна ApplicationContextHeaderFilter добавляет X-Application-Context заголовок, содержащий идентификатор ApplicationContext. Этот заголовок очень важен, поэтому я попытался добавить его в файл конфигурации Nginx:

location /proxy/ {
    proxy_set_header X-Application-Context ..99;
    proxy_pass http://other.com/;
}

Работает сразу. Еще раз спасибо.