2016-04-01 161 views
1

我有一個運行Ubuntu的AWS EC2實例,我想用Nginx配置。我的理解是,如果Nginx正在運行,並且我已經正確配置了我的服務器塊,那麼我應該能夠在我的虛擬機之外修改我的主機文件,以便從自定義域中提供公共IP。無法通過Nginx從本地機器連接到AWS EC2

在我的實例

所以,Nginx的是細運行:

~$ /etc/init.d/nginx status 
* nginx is running 

我的服務器塊,位於/etc/nginx/sites-available/example.com(這被鏈接到sites-enabled)如下:

server { 
     listen 80 default_server; 
     listen [::]:80 default_server ipv6only=on; 

     root /var/www/example; 
     index index.html index.htm; 

     server_name local.example.com local.www.example.com; 

     location/{ 
       try_files $uri $uri/ =404; 
     } 

var/www/example/index.html是現有目錄中顯示文字。

每其他答案#1,我修改我的安全組,包括HTTP端口80: enter image description here

當我平安從我個人的機器在AWS接口提供的公網IP,我得到迴應。

但是,當我從實例中運行curl -v localhost,我得到

* Rebuilt URL to: localhost/ 
* Hostname was NOT found in DNS cache 
* Trying 127.0.0.1... 
* connect to 127.0.0.1 port 80 failed: Connection refused 
* Failed to connect to localhost port 80: Connection refused 
* Closing connection 0 
curl: (7) Failed to connect to localhost port 80: Connection refused 

此外,當我修改我的主機文件像這樣

my.public.ip local.example.com 

連接超時。

當我編輯我的hosts文件時,爲什麼我不能將我的index.html服務到我的虛擬域?

+0

一些AWS實例在幾分鐘前也停止工作,amazon.com,netflix.com和skype似乎也無法使用。目前這些網站是否適合您? – chris544

+0

是的,amazon.com和netflix.com正在爲我工​​作。 – Himmel

+0

好的,AWS和上面提到的網站現在可以爲我工作(但我確定他們已經停工了大約10分鐘)。這是在歐洲,所以也許這些問題是不相關的。 – chris544

回答

3

問題是,爲了符號鏈接文件,它要求您使用完整路徑。所以,當我在/etc/nginx,我跑

ln -s sites-available/example.com sites-enabled/ 

這並沒有創造一個「正確」的符號鏈接,並沒有我的Nginx的。我必須跑

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ 

顯然,你不能用相對路徑做符號鏈接。他們必須是絕對的。