I was trying a lot of other post solutions here and no one can help me to solve my problem. I have a simple nginx configuration with https and a node.js app with the main path /
and for a subdomain another path /api
. I can access to mywebapp.com
correctly, but if I try to access to api.mywebapp.com
it redirects me to the "Welcome to nginx" page. I have the DNS record api.mywebapp.com
pointing to my server ip address.
This is my nginx config blocks:
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;
}
}
What I'm missing?
Best Answer
You configured your proxy for
So it is only reachable with
https://api.mywebapp.com/api/
.You most probably want to change this to