我正在尝试在 ec2 中的 nginx /django 上使用 ssl。
这是配置
server {
listen 443;
ssl on;
ssl_certificate /apps/cert-chain.crt;
ssl_certificate_key /apps/private.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
server_name mytest.com;
location /static {
alias /apps/static/;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_read_timeout 75s;
proxy_connect_timeout 75s;
if (!-f $request_filename) {
proxy_pass http://127.0.0.1:9006;
break;
}
}
}
启动 nginx 时出现以下错误
nginx: [emerg] bind() to 0.0.0.0:443 failed (13: Permission denied)
nginx: [emerg] bind() to 0.0.0.0:443 failed (13: Permission denied)
nginx: [emerg] bind() to 0.0.0.0:443 failed (13: Permission denied)
端口 443 是受限端口(低于 1024),只能由管理员绑定。
处理此问题的最佳方法是绑定到不同的端口(8443 或类似端口),然后通过像系统一样运行的 iptables 转发来自 443 的流量。