我已经为端口 80 和 443 配置了 nginx,其中 443 包含 ssl 证书配置。当我重新启动 nginx 时,没有出现任何错误,因此我不认为这是证书问题,但我当然可能是错的。
但是,当我加载
我收到“页面无法显示...”浏览器消息。而且,我甚至没有看到请求到达服务器。
但如果我加载
请求到达服务器(尽管出现 500 错误,但目前没有问题)。
有任何想法吗?
我们并没有使用负载均衡器。这是一台托管在 Rackspace 上的服务器。也没有硬件防火墙之类的东西。
这是 nginx 配置:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html/public;
index index.php index.html index.htm;
server_name picantewsdev.hotsalsainteractive.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
# add the following line in for added security.
try_files $uri =403;
}
}
server {
listen 443;
listen [::]:443 default_server ipv6only=on;
root /usr/share/nginx/html/public;
index index.php index.html index.htm;
ssl on;
ssl_certificate /etc/nginx/ssl_cert/star.hotsalsainteractive.com.chained.crt;
ssl_certificate_key /etc/nginx/ssl_cert/star_hotsalsainteractive_com.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
server_name picantewsdev.hotsalsainteractive.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
# add the following line in for added security.
try_files $uri =403;
}
}
任何帮助,将不胜感激。
谢谢!
答案1
您需要将 ssl 添加到 listen 指令中,如下所示:
listen 443 ssl;
该ssl on;
指令适用于旧版 nginx,可能不再受支持。上述格式是当前将 SSL 应用于 vhost 的方法。
答案2
您的机器不接受端口 443 上的连接。这就是 http 链接有效而 https 链接无效的原因。
这可能是因为您在更改配置后没有重新加载 nginx,或者因为您没有在防火墙中打开端口 443。