Итак, у меня nginx config, 2 nodejs приложений на разных портах, одно из них ориентировано на клиента с https, другое - CMS на http
Мне нужно прокси-запросы от https://example.com/uploads/* для приложения CMS. Когда я добавляю директиву location /uploads
, она, кажется, делает то, что я хочу, но она также начинает перенаправлять http://cms.example.com на https://example.com, и я не понимаю, почему?
В моем понимании каждый запрос к http://cms.example.com должен обрабатываться первым блоком сервера, у него есть явный порт и имя_сервера, но по некоторым причинам он не работает
server {
listen 80;
server_name cms.example.com;
location / {
proxy_pass http://localhost:4444;
}
}
server {
listen 80;
server_name www.example.com example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
root /;
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
# That's where it goes wrong
location /uploads {
proxy_pass http://localhost:4444;
}
error_page 502 @offline;
location @offline {
try_files /error500.html 502;
}
location ~ /.well-known {
allow all;
}
}