Один NGINX сервер с 2 прокси-серверами - PullRequest
0 голосов
/ 29 марта 2020

Я прочитал похожие посты, но ни одно из предложенных решений не работает. Мой вариант использования прост. У меня есть один NGINX сервер, который имеет 2 местоположения; root (/) и (/ Дженкинс). Я пытаюсь проксировать эти места двум приложениям, работающим на хост-сервере.

Все запросы к sub.example.com/jenkins возвращают 404, который возвращается из приложения, работающего на порте 3000; тот, который указан в / location. (не 4000). Почему?

Явное совпадение на 1 или обоих маршрутах не помогает, например:

location ~^ /
location ~^ /jenkins

Я пробовал много вариантов директив местоположения, используя reqex для сопоставления, правила перезаписи, переключение порядка расположения , et c.

Моя текущая конфигурация следующая:

    server {

        root /var/www/sub.example.com;
        index index.html index.htm index.nginx-debian.html;

        server_name sub.example.com;

        location /jenkins {
                proxy_pass http://localhost:4000/jenkins;
        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;
        }

    location / {
            proxy_pass http://localhost:3000;
                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;
     }

    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/sub.example.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/sub.example.com/privkey.pem; 
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

}
server {
    if ($host = sub.example.com) {
        return 301 https://$host$request_uri;
    } 
        server_name sub.example.com;
    listen 80;
    return 404;
}

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...