【问题标题】:NGINX HTTPS Timeout [closed]NGINX HTTPS超时[关闭]
【发布时间】:2013-01-30 13:35:44
【问题描述】:

我的问题是,如果我重新启动 NGINX,HTTP 工作正常,但 HTTPS 不可用。我收到连接超时。我检查了我是否可以在本地连接并检查了证书。这也很好。我没有防火墙,但似乎端口或曾经被阻止的东西。请帮忙...

server {
    server_name help.XXXX.de;
    listen 80;
    listen 443 default ssl;

    ssl on;
    ssl_certificate      /etc/ssl/localcerts/0001_MAILcert.pem;
    ssl_certificate_key  /etc/ssl/localcerts/0001_MAILcert.key;
    ssl_ciphers               SSLv3+HIGH:RC4+MEDIUM:!aNULL:!eNULL:!3DES:!MD5:@STRENGTH;
    ssl_prefer_server_ciphers on;
    ssl_protocols             TLSv1;

    access_log /var/www/XXXX.de/help.XXXX.de/logs/access.help.log main;
    index index.html index.htm index.php;
    root /var/www/XXXX.de/help.XXXX.de/htdocs;

    location / {
        try_files $uri $uri/ /index.php;
}

location ~ \.php$ {
    try_files $uri @rewrite;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
}

我正在使用带有 NGINX 1.2.6 和 PHP-FPM 的 Debian

【问题讨论】:

  • 你是如何重启 nginx 的?此外,您的 conf 不是很长,因此最好将其分成 server 块:一个用于 ssl 和端口 443,第二个用于普通 http 和端口 80

标签: ssl https nginx timeout debian


【解决方案1】:

您的第二个位置块需要在主服务器块内,否则您的 ssl 配置将不适用于它。

您的配置适用于 HTTP 的原因是,listen 指令默认为 *:80 并且这被应用于第二个位置块,因为它没有外部服务器块配置。

可能不相关,但 try_files $uri @rewrite; 行看起来错误,因为在您的配置中没有名为 location @rewrite 的命名位置,但这不应该导致 https 不可用。

另外,ssl 指令不是必需的,因为 listen 指令执行此功能。

你能试试这个吗:

server {
    server_name help.XXXX.de;
    listen 80;
    listen 443 default ssl;

    ssl_certificate      /etc/ssl/localcerts/0001_MAILcert.pem;
    ssl_certificate_key  /etc/ssl/localcerts/0001_MAILcert.key;
    ssl_ciphers               SSLv3+HIGH:RC4+MEDIUM:!aNULL:!eNULL:!3DES:!MD5:@STRENGTH;
    ssl_prefer_server_ciphers on;
    ssl_protocols             TLSv1;

    access_log /var/www/XXXX.de/help.XXXX.de/logs/access.help.log main;
    index index.html index.htm index.php;
    root /var/www/XXXX.de/help.XXXX.de/htdocs;

    location / {
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        try_files $uri @rewrite;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

如果连接仍然有问题,请检查 Nginx 是否使用 SSL 模块编译:

nginx -V

如果输出不包含以下行,则需要重新编译:

--with-http_ssl_module

【讨论】:

  • 是的诅咒。我以前检查过。
猜你喜欢
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 2011-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
相关资源
最近更新 更多