当在浏览器中输入 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 部署不工作的主要内容,如果未能解决你的问题,请参考以下文章