Я пытаюсь развернуть свое приложение для реагирования на сервер nginx. Конфигурация HTTP работает нормально, но https не работает. Вот мой файл конфигурации.
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name example.com;
root D:\\path-to-build\\build;
index index.html;
location / {
try_files $uri /index.html =404;
}
}
server {
listen 443 ssl;
server_name example.com;
keepalive_timeout 70;
ssl_certificate C:\\Certbot\\live\\domain\\fullchain.pem;
ssl_certificate_key C:\\Certbot\\live\\domain\\privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
#...
access_log D:\\path-to-log\\access.log;
error_log D:\\path-to-log\\error.log;
root D:\\path-to-build\\build;
index index.html;
location / {
try_files $uri /index.html =404;
}
}
}
Когда я пытаюсь использовать URL-адрес https.example.com, он выдает ошибку «Время ожидания подключения истекло». Моя конфигурация сервера действительна или нет?
Ваш файл конфигурации выглядит хорошо. Но в конфигурации вашего SSL-сервера я не вижу ссылок на директивы root
или index
.
Добавьте это также на свой SSL-сервер:
root D:\\path-to-build\\build;
index index.html;
Также, как подразумевается ошибка («Время ожидания соединения истекло»), попробуйте изменить значение на keepalive_timeout 70s;
Обратите внимание, что значение по умолчанию составляет 75 секунд.
Я попытался добавить это также на ssl-сервер, но тогда он тоже не работает.
Можете ли вы попробовать изменить keepalive_timeout для работы с секундами? я не уверен, что там означает 70, но будет безопаснее использовать 70-е :)
Та же проблема после увеличения тайм-аута.
вы можете попробовать только TLSv1.2
в ssl_protocols
или только TLSv1.1
?
Также вы можете запустить nginx -V и прокомментировать здесь вывод, он напечатает версию NGINX, версию компилятора и настроит параметры.
Версия nginx: nginx/1.18.0, сборка cl 16.00.40219.01 для 80x86, сборка с OpenSSL 1.1.1f 31 марта 2020 г. Поддержка TLS SNI включена
настроить аргументы: --with-cc=cl --builddir=objs.msvc8 --with-debug --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid -- http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp -- http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --http-scgi-temp-path=temp/scgi_temp --http-uwsgi-temp-path=temp/uwsgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs.msvc8/lib/pcre-8.44 --with-zlib=objs.msvc8/lib/zlib-1.2.11 --with-http_v2_module - -с-http_realip_module
--with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_slice_module --with-mail --with-stream --with-openssl=objs.msvc8/lib/openssl-1.1.1f --with-openssl-opt='no-asm нет -tests -D_WIN32_WINNT=0x0501' --with-http_ssl_module --with-mail_ssl_module --with-stream_ssl_module
Только конфигурация правильная, но на моей серверной машине 443 пост не открыт снаружи. Вот почему у меня истекает время ожидания соединения.
что значит "но https не работает", есть ошибка? не можете подключиться?