2016-04-01 37 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/ 

显然,你不能用相对路径做符号链接。他们必须是绝对的。