
Я пробовал много других решений постов здесь, и никто не может помочь мне решить мою проблему. У меня простая конфигурация nginx с https и приложение node.js с основным путем /
и для поддомена другим путем /api
. Я могу получить доступ mywebapp.com
правильно, но если я пытаюсь получить доступ к api.mywebapp.com
нему, меня перенаправляет на страницу «Добро пожаловать в nginx». У меня есть запись DNS, api.mywebapp.com
указывающая на мой IP-адрес сервера.
Вот мои блоки конфигурации nginx:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name mywebapp.com;
# SSL
include /etc/letsencrypt/mycerts.conf;
include /etc/letsencrypt/options-ssl-nginx.conf;
# reverse proxy
location / {
proxy_pass http://localhost:8000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_cache_bypass $http_upgrade;
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name api.mywebapp.com;
# SSL
include /etc/letsencrypt/mycerts.conf;
include /etc/letsencrypt/options-ssl-nginx.conf;
location /api {
limit_req zone=mylimit;
proxy_pass http://localhost:8000/api;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_cache_bypass $http_upgrade;
}
}
Что я упускаю?
решение1
Вы настроили свой прокси для
location /api {
# ...
}
Поэтому он доступен только с помощью https://api.mywebapp.com/api/
.
Вы, скорее всего, захотите изменить это на
location / {
proxy_pass http://localhost:8000/api; # <- keep this
# ...
}