我正在尝试使用 nginx 运行我的 django 应用程序,但是当尝试连接到我的 EC2 IP 时,我收到“连接超时”错误。当我运行时,它在终端上正确显示 django“默认”页面
curl 127.0.0.1
但 EC2 IP 就不那么幸运了。公共 IP 给我错误 99(无法分配给请求的地址),私有 IP 在我的浏览器中给我“连接超时”消息。
那么我和/或这个 nginx 配置出了什么问题:
user nobody nogroup;
pid /var/run/nginx.pid;
error_log /var/log/nginx/error.log;
events {
worker_connections 1024;
accept_mutex: on;
}
http {
include mime.types;
default_type application/octet-stream;
access_log /tmp/nginx.access.log combined;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
gzip on;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_lenght 500;
gzip_disable "MSIE [1-6]\.";
gzip_types text/plain text/xml text/css
text/comma-separated-values
text/javascript application/x-javascript
application/atom+xml;
include /etc/nginx/sites-enabled/*;
}
这是我启用的网站
upstream app_server {
server 127.0.0.1:8000 fail_timeout=0;
}
server {
listen my_IP:80 default;
client_max_body_size 4G;
server_name www.my_domain.pl my_domain.pl;
keepalive_timeout 5;
root /home/ubuntu/webapps/my_app;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server;
break;
}
}
error_page 500 502 503 504 /500.html;
location = /500.html {
root /path/to/app/current/public;
我需要将最后一行更改为其他内容吗?或者这个 proxy_pass 的东西?
我使用 Nginx 和 Gunicorn 在 EC2 上创建了 Django 站点,这些是我遵循的步骤
easy_install gunicorn
apt-get install nginx
nano /etc/init/site1.conf 并添加
description "site1 web server"
start on runlevel [2345]
stop on runlevel [06]
respawn
respawn limit 10 5
exec /home/scripts/gunicorn_runserver.sh
并在gunicorn_runserver.sh中
#!/bin/bash
set -e
LOGFILE=/var/log/nginx/site1.log
NUM_WORKERS=10
# user/group to run as
USER=www-data
GROUP=adm
cd /home/projects/project_name/
# source ../../bin/activate
exec gunicorn_django -w $NUM_WORKERS \
--user=$USER --group=$GROUP --log-level=error \
--log-file=$LOGFILE 2>>$LOGFILE
并在 Nginxconf 中
upstream app_server_site1 {
server localhost:8000 fail_timeout=0;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server_site1;
break;
}
}
finally
/etc/init.d/nginx restart
service site1 start
详细描述关于Nginx+Django+Gunicorn here and Nginx+Django+Fcgi here
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)