Это мой файл в каталоге NginX / sites-enabled:
upstream tomcat_server {
server 192.168.1.100:8080 fail_timeout=0;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _____.com www._____.com;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://tomcat_server;
}
}
Прямо сейчас поток выглядит следующим образом:
Что я хотеть нужно перенаправить запрос на сервер Tomcat, работающий на отдельной машине, поэтому я поставил proxy_pass
на сервер Tomcat.
На самом деле происходит то, что запрос зависает, и на моем экране появляется пустая страница. В журнале Tomcat отображается ответ 200 OK на запрос, но он должен загрузить остальное содержимое, включая страницу, изображения, сценарии и многое другое.
"GET / app-portal / HTTP / 1.0" 200
// Это оно
[/app-portal/
это то, что перенаправляет мой серверный код /
к]
Я могу подтвердить, что это проблема nginx, потому что страница загрузилась со всем своим содержимым, когда я изменил перенаправление порта маршрутизатора непосредственно на сервер tomcat вместо nginx.
В чем может быть проблема?
-
Я не знаю, серьезная ли это проблема или нет, но я заметил, что успешные запросы (когда я перехожу напрямую с маршрутизатора на сервер Tomcat) используют HTTP1.1, а неудачные запросы nginx используют HTTP1.0
"proxy_pass" httpd: // сервер Tomcat; "мне кажется странным с этим http.
Предлагаю вам попробовать удалить свой апстрим и сделать это вот так.
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.1.100:8080
}
Эта статья есть хороший гид.
Proxy_pass должен быть полным допустимым доменом или IP-адресом. proxy_pass http: // tomcat_server; недействителен и ведет ни к чему. если это IP-адрес вашего сервера tomcat 192.168.1.100:8080, тогда вы должны сделать это так #proxy_pass http://192.168.1.100:8080; затем войдите в ssh и запустите это, чтобы проверить вывод. wget http://192.168.1.100:8080 надеюсь, это поможет