无法在EC2 AWS的浏览器端打开django项目索引页

x7yiwoj4  于 2023-03-24  发布在  Go
关注(0)|答案(2)|浏览(82)

**问题:**我不能:1)使用本地浏览器打开http://<public IP>:8000 2)使用终端打开curl -v http://<public IP>:8000 3)Ping

我可以:1)使用terminal运行curl -v http://127.0.0.1:8000,结果表明django服务器正在工作。

**背景:**我在MacOS上工作,Python 3.9.13,Django 4.1.7,MySQL 8.0.31。我在EC2服务器上安装了我的django项目,也安装了一个RDS,现在可以工作了。今天我试着通过浏览器打开项目的索引页,但是没有响应。

所以我检查了入站规则:

1)All traffic :0.0.0.0/0
2)Custom TCP :port: 8000, 0.0.0.0/0
3)Custom TCP :port: 8000, 172.31.0.0/20  (subnet, IPv4 CIDR)
4)Custom TCP :port: 8000, 172.31.16.0/20    (subnet, IPv4 CIDR)
5)Custom TCP :port: 8000, 172.31.32.0/20    (subnet, IPv4 CIDR)
6)Custom ICMP:echo request, 0.0.0.0/0
7)All TCP : My IP, x.x.x.x/32
8)SSH: port 22, 0.0.0.0/0

我还设置了1)settings.pyALLOW_HOSTS = ['public IP', '127.0.0.1'] (no port)中的公共IP
2)防火墙允许8000个端口sudo firewall-cmd --add-port=8000/tcp --permanent
最后,运行django server python manage.py runserver 0.0.0.0:8000

**结果:**1)curl -v http://127.0.0.1:8000

*   Trying 127.0.0.1:8000...
* Connected to 127.0.0.1 (127.0.0.1) port 8000 (#0)
> GET /login/ HTTP/1.1
> Host: 127.0.0.1:8000
> User-Agent: curl/7.88.1
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Wed, 22 Mar 2023 11:43:26 GMT
< Server: WSGIServer/0.2 CPython/3.9.13
< Content-Type: text/html; charset=utf-8
< X-Frame-Options: DENY
< Vary: Cookie
< Content-Length: 10761
< X-Content-Type-Options: nosniff
< Referrer-Policy: same-origin
< Cross-Origin-Opener-Policy: same-origin
< Set-Cookie:  csrftoken="xxxx-I remove this token"; expires=Wed, 20 Mar 2024 11:43:26 GMT; Max-Age=31449600; Path=/; SameSite=Lax
< 

<!DOCTYPE html>
<html lang="en">
<head>
...
end...

2)x1米7英寸x1米8英寸
当我从www.example.com删除'127.0.0.1'时settings.py,curl -v http://127.0.0.1:8000也不工作。因此我设置ALLOW_HOSTS =['*'],curl -v http://127.0.0.1:8000工作,但就curl -v <public IP>:8000而言,它仍然不工作。
这是我的问题。你的帮助将非常感谢!

1mrurvl1

1mrurvl11#

您需要添加安全组规则,以允许来自路由器IP地址的通信通过端口8000。
此外,请确保您有互联网网关,以允许从外部世界连接到EC2。

nzk0hqpo

nzk0hqpo2#

我解决了我的问题,thx给作者:Start Django development server on AWS EC2 Amazon Linux
我首先测试了curl http://ec2-xx-xxx-xx-xxx.region.compute.amazonaws.com:8000,它工作正常,然后我更改了安全组并添加了它。

相关问题