您的位置:首页 > 运维架构 > Nginx

Nginx + uWSGI + Django 配置

2014-11-19 17:56 337 查看
yum install nginx.x86_64

django 项目目录/mydj/logview

cp /etc/nginx/uwsgi_params /mydj/logview/

cd 到/mydj/logview, 创建文件 logview_nginx.conf

# logview_nginx.conf

# the upstream component nginx needs to connect to
upstream django {
server unix:///mydj/logview/mysite.sock; # for a file socket
#server 127.0.0.1:9000; # for a web port socket (we'll use this first)}
}

# configuration of the server
server {
# the port your site will be served on
listen      80;
# the domain name it will serve for
server_name 10.199.196.106; # substitute your machine's IP address or FQDN
charset     utf-8;

# max upload size
client_max_body_size 75M;   # adjust to taste

# Django media
location /media  {
alias /mydj/logview/media;  # your Django project's media files - amend as required
}

location /static {
alias /mydj/logview/static; # your Django project's static files - amend as required
}

# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass  django;
include     /mydj/logview/uwsgi_params; # the uwsgi_params file you installed
}
}


cd /etc/nginx

mkdir sites-enabled

ln -s /mydj/logview/logview_nginx.conf /etc/nginx/sites-enabled/

修改/etc/nginx/nginx.conf 增加一条include 语句 “ include /etc/nginx/sites-enabled/*.conf;”  将原来的default.conf 从包含列表里移除(cd /etc/nginx/conf.d  mv default.conf ..)

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/ #   * Official Russian Documentation: http://nginx.org/ru/docs/ 
user              nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
#error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;

events {
worker_connections  1024;
}

http {
include       /etc/nginx/mime.types;
default_type  application/octet-stream;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log  /var/log/nginx/access.log  main;

sendfile        on;
#tcp_nopush     on;

#keepalive_timeout  0;
keepalive_timeout  65;

#gzip  on;

# Load config files from the /etc/nginx/conf.d directory
# The default server is in conf.d/default.conf
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*.conf;

}


部署静态文件

STATIC_ROOT = os.path.join(BASE_DIR, "static/")

python manage.py collectstatic

Django目录下创建文件 uwsgi.ini

[uwsgi]

# Django-related settings
# the base directory (full path)
chdir           = /mydj/logview
# Django's wsgi file
module          = logview.wsgi
# the virtualenv (full path)
#home            = /path/to/virtualenv
# process-related settings# master
master          = true
# maximum number of worker processes
processes       = 10
# the socket (use the full path to be safe
#socket          = 127.0.0.1:9000
socket          = /mydj/logview/mysite.sock
# ... with appropriate permissions - may be needed#
chmod-socket    = 666
# clear environment on exit
vacuum          = true
daemonize = /mydj/logview/uwsgi.log


修改 settings.py, 设置 ALLOWED_HOSTS = '*'

启动nginx 

service nginx start

启动uwsgi

uwsgi --ini uwsgi.ini

打开首页测试  http://<ip>

停止uwsgi

uwsgi --stop uwsgi.pid

问题排错

wsgi 日志 /mydj/logview/uwsgi.log

nginx日志 /var/log/nginx/access.log & error.log
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Django