Я хочу перенаправить пути с http на https следующим образом:
У меня есть файл конфигурации:
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 80;
listen [::]:80;
server_name localhost;
return 301 https://$host$request_uri;
}
# HTTPS server
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate certs/myservice.crt;
ssl_certificate_key certs/myservice.key;
server_name myservice.com localhost;
location /api/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_pass https://localhost:55555/api/;
client_max_body_size 500G;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 3600;
send_timeout 300;
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://localhost:80/;
client_max_body_size 500G;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 3600;
send_timeout 300;
}
location ~ /\.ht {
deny all;
}
}
}
Когда я попытался с этим, второе требование было выполнено. Но первое сохранение http://localhost: 80 / тоже не удается. Излишне перенаправляется как https://localhost.
Короче говоря, nginx перенаправляет все HTTP-запросы, поступающие на порт 80 локального хоста, на HTTPS.
I также попытался удалить раздел location / {} из второго блока сервера.
Затем попытался указать блок первого сервера как:
server {
listen 80;
listen [::]:80;
server_name localhost;
location / {
proxy_pass http://localhost:80/
}
location /api/ {
return 301 https://$host$request_uri;
}
}
Оба они не работали.
Как правильно перенаправить только указанные c пути сервера с http на https в Nginx?