Так что у меня возникли проблемы с настройкой nginx с tomcat, и, хотя есть много полезной информации, я не нашел ничего, что, по моему мнению, вполне применимо к моей ситуации. Поскольку это не является частью моего обычного набора навыков, я могу просто упустить некоторые ключевые слова или концепцию.
Сейчас я просто пытаюсь заставить работать целевую страницу Tomcat по умолчанию. CentOS 7.5.1804 с установленными yum версиями nginx (1: 1.12.2-2.el7) и tomcat (7.0.76-6.el7) вместе с несколькими другими сервисами.
Мой конфигурационный файл выглядит примерно так:
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
ssl_certificate "stuff";
ssl_certificate_key "stuff";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location /other/ {
rewrite ^/other/(.*)$ /$1 break;
proxy_pass http://localhost:1234;
proxy_redirect http://localhost:1234/ $scheme://$host/1234/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 20d;
}
location /tomcat/ {
rewrite ^/tomcat/(.*)$ /$1 break;
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
Когда я иду на свой сервер:
https://example.com/tomcat
Целевая страница загружается нормально. Однако, если я наведу курсор мыши на ссылки, такие как документация или примеры, я получу ссылки вроде:
https://example.com/docs
https://example.com/example
Если я вручную введу «https://example.com/tomcat/examples/", он загрузится нормально, хотя любая ссылка ниже, которая производит правильное наведение мыши (например, https://example.com/tomcat/examples/servlets), из-за отсутствия трейлинга / результатов в nginx переписывает его как» https://example.com/examples/servlets/".
Так что я что-то упустил. Мы ценим любые предложения.