无法从本地计算机通过Nginx连接到AWS EC2

无法从本地计算机通过Nginx连接到AWS EC2,nginx,amazon-ec2,Nginx,Amazon Ec2,我有一个运行Ubuntu的AWS EC2实例,我想用Nginx配置它。我的理解是,如果Nginx正在运行,并且我已经正确配置了我的服务器块,那么我应该能够在我的VM之外修改我的hosts文件,以便从自定义域为公共IP服务 因此,在我的例子中,Nginx运行良好: ~$ /etc/init.d/nginx status * nginx is running 我的服务器块位于/etc/nginx/sites available/example.com(符号链接到sites enabled),如下

我有一个运行Ubuntu的AWS EC2实例,我想用Nginx配置它。我的理解是,如果Nginx正在运行,并且我已经正确配置了我的服务器块,那么我应该能够在我的VM之外修改我的hosts文件,以便从自定义域为公共IP服务

因此,在我的例子中,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
是一个现有目录,其中包含要显示的文本

根据其他Stackoverflow回答,我已修改我的安全组以包括HTTP端口80:

当我从我的个人机器ping 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
连接超时


当我编辑我的
主机
文件时,为什么我不能将我的
index.html
提供给我的虚拟域?

问题是,为了以符号方式链接文件,需要使用完整路径。所以当我在
/etc/nginx
中时,我运行

ln -s sites-available/example.com sites-enabled/
这没有创建“正确”的符号链接,并且使我的Nginx失败。我不得不跑

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

显然,您无法使用相对路径进行符号链接。它们必须是绝对的。

几分钟前,一些AWS实例也停止了对我的工作,amazon.com、netflix.com和skype似乎也不适用于我。这些网站目前对你有用吗?是的,亚马逊和netflix.com正在为我工作。好的,AWS和上面提到的网站现在对我有用(但我很确定它们宕机了大约10分钟)。这是在欧洲,所以这些问题可能没有关系。