NGINX upstream не работает при подключении 443 SSL порта
Друзья, всем привет.
Есть сайт, который через порт 8080 дает доступ к API расширению. По обычному http протоколу все работает на ура. Вот пытаюсь его на ssl протокол перевести, и тут есть un problema… Сам сайт отображается по ssl без проблем, но upstream api никак не получается настроить.
Система:
Ubuntu 16.04.6 LTS
nginx/1.10.3
Вот конфиг при котором все ОК на http протоколе:
server {
listen 80;
listen [::]:80;
server_name mysite.com www.mysite.com;
root /home/user/mysite/www/dist;
index index.html;
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://api;
}
}
upstream api {
server 127.0.0.1:8080;
}
Вот конфиг на https протоколе:
server {
listen 80;
listen [::]:80;
server_name mysite.com www.mysite.com;
# return 301 https://$host$request_uri;
root /home/user/mysite/www/dist;
index index.html;
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://api;
}
}
server {
listen 443 ssl;
server_name mysite.com www.mysite.com;
ssl_certificate /etc/letsencrypt/live/mysite.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mysite.com/privkey.pem; # managed by Certbot
ssl_dhparam /etc/nginx/dhparam.pem;
root /home/user/mysite/www/dist;
index index.html;
location / {
try_files $uri $uri/ =404;
}
location /api {
proxy_pass http://api;
}
}
upstream api {
server 127.0.0.1:8080;
}
При таком конфиге http версия тоже работает ок, https версия - сайт коннектит, API нет. Если ставлю редирект return 301 сайт коннектит, API нет.
Как я понял, в location /api
нужно указывать https proxy_pass https://api
и путь где лежит сертификат и ключ только в случае, если хочешь сделать отдельно только upstream api
по SSl подключению, а сам сайт оставить на http протоколе.
Весь мануал NGINX-а перерыл, чет не пойму, что ему надобно еще.