Задать вопрос
@bengur2

Nginx — как сделать, чтобы определенный pathname был прокси для другого ресурса?

На VPS локально поднято два контейнера:
user@instance:~$ curl http://localhost:27073
<!DOCTYPE html><html><head><title>Express</title><link rel="stylesheet" href="/stylesheets/style.css"></head><body><h1>Welcome to Express</h1></body></html>

user@instance:~$ curl http://localhost:50101
<!DOCTYPE html><html><head><title>App</title><link rel="stylesheet" href="/stylesheets/style.css"></head><body><h1>Welcome to App</h1></body></html>


Nginx:
server {
    listen 80;
    server_name site.com;
    return 301 https://site.com$request_uri;
}
server {
    listen 443 ssl;
    server_name site.com;

    ssl_certificate         /etc/ssl/certs/cert.pem;
    ssl_certificate_key     /etc/ssl/private/key.pem;

    location / {
        proxy_pass http://127.0.0.1:27073;
    }

    location /apps/authors {
        proxy_pass http://127.0.0.1:50101;
    }
}


Валидность:
user@instance:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


Перезапуск:
user@instance:~$ sudo systemctl restart nginx

Ожидаю, что по адресу site.com/apps/authors будет заголовок App.
Но выводится страница 404.
Что сделано не так?
  • Вопрос задан
  • 76 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
fzfx
@fzfx
18,5 дм
не поставлен символ / после proxy_pass http://127.0.0.1:50101.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы