我尝试了所有方法,并在 Google 上搜索了一些解决方案,但无法在 Amazon EC2 上的 Ubuntu 14.04.2 LTS 中的 Nginx 服务器中配置 SSL(https)。我的网站在端口 80 上使用 HTTP 时运行良好,但我认为采用 HTTPS 更安全。
注意事项:
每当我尝试通过以下方式访问它时
https://
都会出现错误:ERR_CONNECTION_TIMED_OUT
命令
curl -v https://www.mywebsite.com/
返回:curl: (7) Failed to connect to www.mywebsite.com port 443: Connection timed out
命令
nc -vz localhost 443
返回:Connection to localhost 443 port [tcp/https] succeeded!
命令
nc -vz myserverIP 443
返回:nc: 连接到我的服务器IP端口 443 (tcp) 失败:连接超时HTTPS 的 TCP 443 端口对入站和出站的安全组(Amazon ec2 防火墙)上的任何位置开放。
`netstat -ntlp | grep 聆听:
tcp 0 0 0.0.0.0:21 0.0.0.0:* 监听 1244/proftpd: (acce tcp 0 0 0.0.0.0:22 0.0.0.0:* 监听 1130/sshd tcp 0 0 0.0.0.0:443 0.0.0.0:* 监听 5633/nginx tcp 0 0 0.0.0.0:80 0.0.0.0:* 监听 5633/nginx tcp6 0 0 :::22 :::* 监听 1130/sshd tcp6 0 0 :::443 :::* 监听 5633/nginx tcp6 0 0 :::80 :::* 监听 5633/nginx
Nginx 配置:
nginx.conf:http://pastebin.com/ebSaqabh
ssl.conf
(通过 include 调用conf.d
)nginx.conf
: http://pastebin.com/FzVAtjGzsites-available/default
:服务器 { 监听 80 default_server; 监听 [::]:80 default_server ipv6only=on; 字符集 utf-8; 根 /usr/share/nginx/html; 索引 index.php index.html index.htm;
server_name mywebsite.com www.mywebsite.com; #return 301 https://mywebsite.com$request_uri; #rewrite ^(.*) https://www.mywebsite.com$1 permanent; location / { #try_files $uri $uri/ =404; try_files $uri $uri/ /index.php?q=$uri&$args; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_read_timeout 300; } #include /etc/nginx/common/w3tc.conf; include /etc/nginx/common/wordpress-seo-plugin-support.conf;
}
我不知道还能做什么来解决这个问题。有人能帮帮我吗?我的 Nginx 配置有问题吗?还是需要在 Amazon 中更改其他内容?
答案1
哦,我的天... :( Ubuntu 防火墙 (UFW) 已激活(菜鸟)。我添加了ufw allow 443/tcp
,现在没问题了。抱歉发帖。但是谁使用 nginx 和 php-fpm 的网络服务器都可以享受上述设置都是正确的,我的网站现在也可以正常使用 https。