我的配置如下:
server {
listen *:80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen *:443 ssl;
ssl_certificate /directory/of/cert/cert.pem;
ssl_certificate_key /directory/of/cert/cert.pem;
proxy_ssl_ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
location / {
proxy_pass http://localip:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
}
}
但是,当我使用 curl -v 访问 example.com 时,出现了超时
curl -v http://host.example.com
* Rebuilt URL to: http://host.example.com/
* Trying <public_ip>...
* TCP_NODELAY set
* connect to <public_ip> port 80 failed: Timed out
* Failed to connect to host.example.com port 80: Timed out
* Closing connection 0
curl: (7) Failed to connect to host.example.com port 80: Timed out
我进行了一些谷歌搜索并找到了这个链接:nginx 将 http 重定向到 https 不起作用
克里斯托弗普建议可能是 /sites-enabled/default 配置优先并导致问题,我已经删除了我的配置,但仍然有问题。
我尝试了许多不同的配置更改,但似乎无法使其正常工作。
有什么想法吗?可能是我的配置有问题吗?
答案1
谢谢杰拉德·施奈德,我忘了在防火墙上打开 HTTP!解决了我的问题。