如何解决AWS EC2 无法使用公共 IP 连接到端口 80但是使用私有IP,它可以正常工作
我有一个使用 Nginx 配置为代理服务器的 ec2。 443端口可以使用公网IP和私网IP访问服务器。但是端口 80 仅适用于私有 IP。公共 IP 端口 80 超时。
此服务器位于 Classic Loadbalancer 后面。 Nginx 配置为将 http 重定向到 https。
这是'/sbin/iptables -L'的输出
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
安全组也正确打开了端口 80。
我使用的是 amazon linux 2 AMI (ami-0be2609ba883822ec)。
这是/etc/Nginx/conf.d/default.conf文件
server {
listen 80 default_server;
listen [::]:80 default_server;
charset utf-8;
location / {
resolver 10.100.0.2;
return 301 https://$host$request_uri;
}
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
location / {
resolver 10.100.0.2;
set $elb 'https://internal-ecomed24-h-rELBApp-11UG9OFCA2E70-1492820851.us-east-1.elb.amazonaws.com';
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass $elb;
proxy_pass $elb;
}
include snippets/self-signed.conf;
}
'sudo netstat -tulpn 的输出 | grep 听'
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3221/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2995/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 4354/Nginx: master
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2500/rpcbind
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4354/Nginx: master
tcp6 0 0 :::22 :::* LISTEN 3221/sshd
tcp6 0 0 :::443 :::* LISTEN 4354/Nginx: master
tcp6 0 0 :::111 :::* LISTEN 2500/rpcbind
tcp6 0 0 :::80 :::* LISTEN 4354/Nginx: master
感谢有人能帮我解决这个问题。 谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。