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

Nginx proxy_pass в специальном месте не работает

Я просто пытаюсь указать конкретное местоположение для своего домена с помощью proxy_pass:

   location /new/ {
        proxy_pass        http://192.168.9.6:10061;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $http_host;
        proxy_redirect    off;
  }

http: // mysite / новый / должен указывать на открытый порт 10061 службы на компьютере 192.168.9.6.

Но это не так, у меня просто 404.
Если я поставлю return 403 в этом месте у меня есть запрет, так что расположение хорошее, но proxy_pass не эффективен.

Дело в том, что это работает:

   location / {
        proxy_pass        http://192.168.9.6:10060;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $http_host;
        proxy_redirect    off;
   }

Это тот же сервис на 2 портах, единственная разница - / new vs root. Так что я не понимаю, что я неправильно понял.

редактировать:

Вот что я вижу в журнале nginx, когда нажимаю domain.com/new:

xx.xx.xx.xx - - [17/May/2018:14:16:35 +0200] "GET /new/ HTTP/1.1" 404 209 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:59.0) Gecko/20100101 Firefox/59.0"

И это сервер входа в систему в 192.168.9.6:

2018-05-17 12:16:36,806 1 INFO p2plegal werkzeug: 192.168.9.1 - - [17/May/2018 12:16:36] "GET /new/ HTTP/1.0" 404 -

И это моя полная конфигурация nginx для этого домена:

upstream manage-old {
   server       192.168.9.6:10060;   #Production
}

upstream manage-new {
   server       192.168.9.6:10061;   #Production
}

server {
   server_name     manage.mydomain.com;
   listen 443 ssl;
   listen [::]:443 ssl;

   location / {
    proxy_pass        http://manage-old;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $http_host;
        proxy_redirect    off;
   }

   location /new/ {
        proxy_pass        http://manage-new;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $http_host;
        proxy_redirect    off;
  }

   location ~ /web/database/manager {
     auth_basic "Admin only";
     auth_basic_user_file /etc/nginx/.htpasswd-admin;

     proxy_pass http://manage-old;
   }

   location ~ /web/database/selector {
     auth_basic "Admin only";
     auth_basic_user_file /etc/nginx/.htpasswd-admin;

     proxy_pass http://manage-old;
   }

    ssl_certificate /etc/letsencrypt/live/manage.mydomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/manage.mydomain.com/privkey.pem;
}


server {
    if ($host = manage.mydomain.com) {
        return 301 https://$host$request_uri;
    }

   server_name     manage.mydomain.com;
   listen 80;
   return 404;

}