Несколько недель назад я пытался использовать 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/;
}
Работает сразу. Еще раз спасибо.