Сценарий:
У меня есть два сайта admin.example.com
и www.example.com
. Веб-сайт администратора разработан в Django 2.2, а фронтальный веб-сайт - в Angular 8. Оба веб-сайта настроены на Nginx 1.14.0 в Ubuntu 18.
Проблема:
Я недавно добавил SSL на этих сайтах. В то время как сайт администратора работает хорошо, веб-интерфейс показывает ошибку 400 неверных запросов с текстом «Простой HTTP-запрос был отправлен на порт HTTPS».
Я нашел это Работа с nginx 400 "Простой HTTP-запрос был отправлен на порт HTTPS "ошибка для той же проблемы, но она не работает в моем случае.
Моя конфигурация для admin.example.com (Django):
server {
listen 80;
server_name admin.example.com;
return 301 https://admin.example.com$request_uri;
}
server {
listen 443 ssl;
server_name admin.example.com;
ssl off;
ssl_certificate /root/ssl-bundle.crt;
ssl_certificate_key /root/example.com.key;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/raakesh/backend;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
Конфигурация для example.com (Angular):
server {
listen 80 default_server;
server_name www.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 default_server ssl;
server_name www.example.com;
root /home/rohangular/websiteangular/dist/angular-website;
index index.html index.htm;
access_log /var/log/nginx/example.com/access.log;
error_log /var/log/nginx/example.com/error.log;
location / {
try_files $uri $uri/ /index.html;
}
location = /favicon.ico { access_log off; log_not_found off; }
ssl off;
ssl_certificate /root/ssl-bundle.crt;
ssl_certificate_key /root/example.com.key;
}
Я также попытался зарегистрировать эту информацию, используя:
error_log /var/log/nginx/example.com /error.log info;
и нашел это в файле журнала:
[info] 1533 # 1533: * 247 клиент отправил простой HTTP-запрос на порт HTTPS, пока чтение заголовков клиентских запросов, клиент: 188.166.28.57, сервер: www.example.com, запрос: "GET /main-es5.54e5eba613f299b8fae5.js HTTP / 1.1", хост: "www.example.com"
Еще одна проблема, с которой я сталкиваюсь, заключается в том, что этот веб-сайт example.com иногда автоматически начинает работать и иногда показывает ошибку 400 описано выше.
Я не могу понять, пока работает первый, но не второй. Пожалуйста, помогите мне, если я сделал что-то не так или я что-то пропустил.