2014-11-23 27 views
2

我有一個問題,我的亞馬遜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上的端口 enter image description here

難道是因爲我在啓動實例後編輯入站規則?這不是你想要做的嗎?

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; 
     } 
    } 

} 

回答

0

要回答我自己的問題,我成功了沒有分配彈性IP,但只是只聽在端口80,443。所以在我的nginx conf而不是這個。

server_name sub.domain.com; 
listen xx.xx.xx.xxx:80; 

我現在只是有

​​

同爲443

1

通過端口8004嘗試訪問從互聯網上的Django開發服務器:

manage.py runserver 0.0.0.0:8004 

開發服務器將只監聽127.0.0.1。

但是,如果您通過Nginx訪問開發服務器,即連接到your.domain.com:80,則不需要此設置。在這種情況下,Nginx將充當代理,將請求傳遞給dev服務器。

順便說一句,您可以在啓動實例後編輯現有安全組的規則,這很好。