что у нас:
обратный прокси-сервер с nginx - внешний: 10.xx.xx.xx - внутренний: 192.xx.xx.1
внутренний сервер, на котором запущена служба на порту 9010: 192.xx.xx.15
Мы уже получаем сервис, если подключаемся к прокси через https: //10.xx.xx.xx/
Но цель такая:
Чтобы получить услугу на внутреннем сервере, если мы подключаемся через https: //10.xx.xx.xx/internalserver .
Но если мы установим расположение в конфигурации от / до / internalserver или / inernalserver /, мы перейдем только на страницу индекса nginx по умолчанию -> до https: //10.xx.xx.xx/index.html
Также важно: мы хотим использовать https: //10.xx.xx.xx/internalserver , но он должен быть проксирован только на http: //192.xx.xx.15: 9010 / не на http: //192.xx.xx.15: 9010 / internalserver .
Почему не работает? Мы уже пробовали некоторые команды перезаписи, но безрезультатно.
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name 10.xx.xx.xx;
ssl_certificate /etc/nginx/certificate.crt;
ssl_certificate_key /etc/nginx/certificate.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location /test/ {
# rewrite ^/test(/.*)$ $1 break;
proxy_pass http://192.xx.xx.15:9010/;
}
}
Это будет работать с перезаписью:
location /internalserver {
rewrite /internalserver/(.*) /$1 break;
proxy_pass http://192.xx.xx.15:9010;
proxy_redirect off;
proxy_set_header Host $host;
}
В вашем случае вам вообще не нужно перезаписывать, просто укажите точный URL в proxy_pass:
location /internalserver {
proxy_pass http://192.xx.xx.15:9010/;
}
Использование и расположение /
важно в обоих случаях.