我有一个问题,我的亚马逊ec2实例。我无法从浏览器访问在端口8004上运行的django应用程序。Nginx的,与弹性ip没有响应ec2的Django
我在亚马逊ec2上安装了一个实例,安装了django和nginx。这是在Ubuntu的可靠14.04上运行。我在外部DNS名称服务器上有一个域,并且我已经正确地将该域指向我的amazon ec2实例的公共弹性IP。当我ping服务器它的作品,它显示公共IP。
我以前见过类似的线程,并且在大多数情况下,这是因为防火墙规则没有被添加到特定的端口,也就是说他们没有向外界开放。在我的情况下,我确保在创建实例时端口22,80和443已打开。我甚至将端口8000-8100打开。
注:最后,我将用Django的运行gunicorn但只是为了测试它,我只是通过去运行它:manage.py runserver命令8004
这里是我的入站规则看怎么样开放的快照亚马逊ec2上的端口
难道是因为我在启动实例后编辑入站规则?这不是你想要做的吗?
Nginx正在运行没有问题,我会在下面发布我的配置。我不知道为什么这不起作用。我遵循了关于这个主题的任何线索,似乎没有任何解决方法。
更新:我现在可以确认我可以直接通过ip访问我的django站点,通过 ip:8004。所以显然这不是端口的问题,但可能与Nginx配置或我的DNS设置有关。
我的nginx的配置(我已经更换了IP与X,它与sub.domain.com域。然后我尝试从sub.domain.com访问网站)如果你想
upstream docko_server {
server 127.0.0.1:8004 fail_timeout=0;
}
server {
server_name sub.domain.com;
listen xx.xx.xx.xxx:80;
return 303 https://$host$request_uri;
}
# HTTPS server
#
server {
listen xx.xx.xx.xxx:443;
server_name sub.domain.com;
ssl on;
ssl_certificate ssl/server.crt;
ssl_certificate_key ssl/server.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
client_max_body_size 25M;
access_log /webapps/docko/logs/nginx-access.log;
error_log /webapps/docko/logs/nginx-error.log;
location /assets/ {
alias /webapps/docko/docko/staticfiles/;
}
location/{
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://docko_server;
break;
}
}
}