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

Обратный прокси-сервер Nginx проходит на отдельный сервер Tomcat, который не проходит

Это мой файл в каталоге 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 надеюсь, это поможет