Я настраиваю nginx, чтобы я мог получить доступ к своему API, созданному с помощью Express, через URL-адрес, например - example.com/api
Вот моя конфигурация nginx
upstream appfrontend {
server localhost:9008 fail_timeout=0;
}
upstream api {
server localhost:3001;
}
server {
listen 80;
listen [::]:80;
server_name hospoline.com www.hospoline.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
listen [::]:443;
server_name example.com; # replace this with your domain
root /var/www/html/example-certbot-webroot;
# The public and private parts of the certificate are linked here
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location /.well-known {
root /var/www/html/example;
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://appfrontend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 900s;
}
location /api {
proxy_pass http://api;
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;
}
}
Когда яПосетите мой сайт example.com, интерфейс загружается отлично.
Когда я захожу на example.com / api / fetch_doctors, я получаю ошибку неверного шлюза 502.
Мой API работает нормально в localhost.Когда я отправляю запрос localhost: 3001 на моем локальном компьютере, я получаю список врачей.
И мой сервер переднего плана, и сервер backend работают с использованием навсегда.
Я действительно потеряни ломать голову об этом в течение одного полного дня.Я понятия не имею, где я иду не так.Любая помощь в правильном направлении будет отличной!Спасибо всем!