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

Обратный прокси-сервер Nginx и Tomcat не работает

У меня возникли проблемы с настройкой Nginx и Tomcat Server в Cent OS.

Вот nginx.conf:

server {
    listen       80;
    server_name  subdomain.test.com;
    root         /usr/local/tomcat/webapps/webapp_folder;
    index        index.html index.htm index.jsp;

    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    location ~ \.jsp {
       proxy_pass      http://127.0.0.1:8080;
    }
}

Когда я приезжаю subdomain.test.com, Я получу диалоговое окно загрузки вместо содержимого index.jsp.

Кроме того, я могу нормально посещать веб-сайт, посетив ip_address: 8080 / webapp_folder.

Я также пытался изменить URL http://127.0.0.1:8080 к http://127.0.0.1:8080/webapp_folder, но когда я запустил Nginx, я получил следующее сообщение об ошибке:

Перезапуск демона nginx: nginxnginx: [emerg] «proxy_pass» не может иметь часть URI в местоположении, заданном регулярным выражением, или внутри именованного местоположения, или внутри оператора «if», или внутри блока «limit_except» в /etc/nginx/nginx.conf : 145

И я тоже пробовал это:

server {
    listen       80;
    server_name  subdomain.test.com;
    root         /usr/local/tomcat/webapps/webapp_folder;
    index        index.html index.htm index.jsp;

    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    location / {
       proxy_pass      http://127.0.0.1:8080/webapp_folder;
    }
}

Но все равно не работает.

Вы можете помочь мне с проблемой? Большое спасибо!

Диалог загрузки может появиться из-за того, что jsp не определен в /etc/nginx/mime.types - хотя я бы предположил, что обратный прокси-сервер не изменит тип mime, предоставляемый Tomcat.

Я предполагаю, что WebApp работает правильно, когда вы заходите в приложение через порт 8080? Если да, посмотрите, что произойдет, когда вы передадите все запросы Tomcat, например:

server {
    listen       80;
    server_name  subdomain.test.com;
    root         /usr/local/tomcat/webapps/webapp_folder;
    index        index.html index.htm index.jsp;

    proxy_set_header   Host             $host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_pass         http://localhost:8080;

}