我有一個問題,我的亞馬遜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;
}
}
}