当在浏览器中输入 IP 地址怀疑 Ngnix 问题时,Amazon EC2 部署不工作

Posted

技术标签:

【中文标题】当在浏览器中输入 IP 地址怀疑 Ngnix 问题时,Amazon EC2 部署不工作【英文标题】:Amazon EC2 Deployment Not Working When IP Address Typed Into Browser Suspect Ngnix Problems 【发布时间】:2016-03-18 18:07:40 【问题描述】:

我接近部署我的 Django 应用程序的最后一步,我认为我遇到了 nginx 问题。这是我第一次部署,所以让我休息一下。

基本上,问题是当我在浏览器上导航到我的公共 IP 时,我收到一个 网页不可用错误

我认为这是我如何在我的 Nginx 配置脚本中写出我的目录结构的问题,但我不确定。我正在学习教程,但并不真正理解他们要求我运行的脚本。

这是我的应用在我的服务器中的目录结构...

/home/ubuntu/flower_shop/flowershop

这是我配置 Nginx 的 Nginx 文件

server 
    listen 80;
    server_name 54.213.141.60;
    location = /favicon.ico  access_log off; log_not_found off;
    location /static/ 
    root /home/ubuntu/flower_shop/flowershop;

location / 
    include proxy_params;
    proxy_pass http://unix:/home/ubuntu/flower_shop/flowershop/flowershop.sock;

我正在通过在命令行中输入以下内容来创建上述文件...

sudo vim /etc/nginx/sites-available/flower_shop

你能看出我做错了什么吗? Gunicorn 设置良好,我的应用程序可以在我的本地主机上运行。我尝试重新启动Nginx,但我得到了相同的结果。

【问题讨论】:

您是否将此 EC2 实例的安全组设置为允许从任何地方通过端口 80 进行连接?如果您尝试 telnet 到此主机的 80 端口,您会收到响应吗? proxy_pass http://unix:/home/ub... 无效。它是 unix 代理或 http 代理。您是否在错误日志中得到任何信息?返回的状态码是什么?您是否正在通过 ELB 工作? 【参考方案1】:

希望您已完成以下步骤:

sudo ln -s /etc/nginx/sites-available/flower_shop /etc/nginx/sites-enabled/flower_shop

其他一些有助于确定问题的诊断命令:

    提供 nginx 错误和访问日志 netstat -tulpn 的输出 | grep nginx 在 ssh 会话中执行 curl -D - http://localhost:80 尝试将上面的 sn-p 替换为以下极其简单的服务器配置。请注意,它目前唯一的过滤器是端口 80。它假定您的 gunicorn 服务于 8080。如果需要,请适当更改端口。

```

server
    listen 80;
    location / 
        proxy_pass http://localhost:8080;
     

```

【讨论】:

更新了答案。请检查。

以上是关于当在浏览器中输入 IP 地址怀疑 Ngnix 问题时,Amazon EC2 部署不工作的主要内容,如果未能解决你的问题,请参考以下文章

Ngnix运行vue项目

输入网址之后发生的动作

mac无法使用80端口问题

浅析负载均衡的6种算法,Ngnix的5种算法。

DNS域名解析及请求资源的过程

网络技术——当在浏览器中输入一个网址并按下回车后发生的事情