NGINX + HTTPS 导致外部请求出现 504 Gateway Timeout 错误
NGINX + HTTPS causes 504 Gateway Timeout error for external requests
我在 Raspberry Pi 上使用 运行 nginx 服务器,使用 HTTP 协议似乎工作正常。
最近,我决定为我的服务器添加 HTTPS 支持,并获得了 Let's Encrypt 的证书。
如果您从本地网络发送请求,它仍然可以正常工作。但是通过 HTTPS 的每个外部请求都以 504 网关超时错误结束。
这是我的配置:
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name domain.name;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 180m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DHE+AES128:!ADH:!AECDH:!MD5;
ssl_certificate /etc/letsencrypt/live/domain.name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.name/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/domain.name/chain.pem;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
location ~ /.well-known {
allow all;
root /usr/share/nginx/html;
}
}
发现我的 ISP 默认启用了防火墙服务。它阻止了与 443 端口的所有连接。禁用它解决了我的问题。
我在 Raspberry Pi 上使用 运行 nginx 服务器,使用 HTTP 协议似乎工作正常。 最近,我决定为我的服务器添加 HTTPS 支持,并获得了 Let's Encrypt 的证书。 如果您从本地网络发送请求,它仍然可以正常工作。但是通过 HTTPS 的每个外部请求都以 504 网关超时错误结束。
这是我的配置:
server {
listen 80 default_server;
listen [::]:80 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name domain.name;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 180m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DHE+AES128:!ADH:!AECDH:!MD5;
ssl_certificate /etc/letsencrypt/live/domain.name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/domain.name/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/domain.name/chain.pem;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
location ~ /.well-known {
allow all;
root /usr/share/nginx/html;
}
}
发现我的 ISP 默认启用了防火墙服务。它阻止了与 443 端口的所有连接。禁用它解决了我的问题。