django_uwsgi_nginx
Table of Contents
1 Django部署
django+uwsgi+nginx部署环境总结。http请求先到nginx,如果是静态页面,nginx直接获取静态页面返回结果;对于动态页面,则交给uwsgi进行处理,uwsgi再把消息转发给django。
1.1 uwsgi的部署
uwsgi的部署主要有这样几个参数:
| 参数名 | 取值 | 解释 |
| socket | ip:port | 以socket形式侦听接收消息 |
| http | ip:port | 与socket选其一,http没有报大小限制,浏览器可直接访问 |
| chdir | dir | 切换当前目录,加载module使用 |
| master | bool | 管理进程,其它进程重启等 |
| enable-threads | num | 线程个数 |
| workers | num | 进程个数 |
| virtualenv | dir | 虚拟python工作目录 |
| stats | ip:port | 状态,可以用telnet登录查看 |
| env | key=val | 设置环境 |
| module | string | 加载模块应用app |
配置示例:
[uwsgi] socket = 127.0.0.1:8077 chdir = /home/web/Env/blogenv/mezproj/project pythonpath=.. env = DJANGO_SETTINGS_MODULE=settings module = django.core.handlers.wsgi:WSGIHandler() master = true enable-threads = true workers = 4 virtualenv = /home/web/Env/blogenv/mezproj/ stats = 127.0.0.1:9191
1.2 nginx的部署
nginx基本命令
| cmd | desc |
| nginx -s stop | stop fast |
| nginx -s quit | stop gracefully |
| nginx -s reload | reloading config file |
| nginx -s reopen | reopening the log file |
nginx配置分为几个块,最常用的是http,server, location等一个http配置中可以拥有多个server, 一个server可以配置多个location一个请求到达nginx后,按照一定的匹配规则,找到最终的location。简单配置:
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
server {
listen 80;
server_name www.domain.com;
access_log /home/web/mezproj_env/mezproj/project/static/logs/nginx_access.log;
error_log /home/web/mezproj_env/mezproj/project/static/logs/nginx_error.log;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8077;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
# error_page 500 502 503 504 /50x.html;
# loation = /50x.html {
# root html;
# }
location /static/ {
alias /home/web/mezproj_env/mezproj/project/static/;
index index.html index.htm;
}
location /media/ {
alias /home/web/mezproj_env/mezproj/project/static/media/;
}
}
}

1573

被折叠的 条评论
为什么被折叠?



