я запускаю nginx в докере.HTTPS работает нормально, но когда я явно отправляю HTTP-запрос, я получаю следующую ошибку
400 Bad Request Простой HTTP-запрос был отправлен на порт HTTPS
nginx.conf:
worker_processes auto ;
events {}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/main.access.log;
server {
listen 80;
location / {
return 301 https://localhost:3000$request_uri;
}
}
server {
listen 443 ssl;
server_name localhost:3000;
root /var/www/html;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
location / {
try_files $uri /index.html;
}
}
}
Я запускаю этот контейнер, используя
docker run -p 3000:443 -it -d --name nginxtest nginx-test
и получаю следующую ошибку
Файл Docker выглядит следующим образом
FROM nginx:latest
COPY ./build /var/www/html
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY ./ssl /etc/nginx/ssl
EXPOSE 443
CMD [ "nginx","-g","daemon off;" ]
Странно то, что иногда он работаетотлично, и вдруг он перестает работать и даже не будет работать, если я заново создаю контейнеры.
Даже попытался сделать следующее.Все еще не повезло
server {
listen 80;
server_name localhost:3000
return 301 https://localhost:3000$request_uri;
}
Еще одна странная вещь, когда я запускаю следующую команду Docker
docker run -p 3000:443 -p 3001:80 -it -d --name nginxtest nginx-test
и перехожу на localhost: 3001 он перенаправляет меня на https просто отлично, но другие вещи не работают.Извините за длинный вопрос