/**************************************************************************************
* Ubuntu Nginx uwsgi django 初试
* 说明:
* 最近打算通过Python搭建一个数据收集的网站,先做一个搭建测试。
*
* 2016-8-5 深圳 南山平山村 曾剑锋
*************************************************************************************/
一、参考文章:
. Ubuntu下搭建Nginx+Uwsgi+Python+Mysql开发环境
http://blog.csdn.net/hchuchuan/article/details/49718521
. 基于nginx和uWSGI在Ubuntu上部署Django
http://www.jianshu.com/p/e6ff4a28ab5a
. Install uwsgi 1.2. via pip
http://askubuntu.com/questions/182313/install-uwsgi-1-2-5-via-pip
. How To Install the Django Web Framework on Ubuntu 14.04
https://www.digitalocean.com/community/tutorials/how-to-install-the-django-web-framework-on-ubuntu-14-04
. Nginx+uWSGI 入门
http://my.oschina.net/u/877567/blog/201577
二、Django目录结构:
zengjf@zengjf:~/website$ pwd
/home/zengjf/website
zengjf@zengjf:~/website$ tree
.
└── mysite
├── manage.py
└── mysite
├── __init__.py
├── __init__.pyc
├── settings.py
├── settings.pyc
├── urls.py
├── urls.pyc
└── wsgi.py
directories, files
zengjf@zengjf:~/website$
三、nginx配置:
root@zengjf:/etc/nginx/sites-available# pwd
/etc/nginx/sites-available
root@zengjf:/etc/nginx/sites-available# cat default
# You may add here your
# server {
# ...
# }
# statements for each of your virtual hosts to this file
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
server {
listen default_server;
listen [::]: default_server ipv6only=on;
root /home/zengjf/website/mysite;
index index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a .
# try_files $uri $uri/ =;
include uwsgi_params;
uwsgi_pass 127.0.0.1:; #必须和uwsgi中的设置一致
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
# Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
#location /RequestDenied {
# proxy_pass http://127.0.0.1:8080;
#}
#error_page /.html;
# redirect server error pages to the static page /50x.html
#
#error_page /50x.html;
#location = /50x.html {
# root /usr/share/nginx/html;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:
#
#location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:;
# # With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
# fastcgi_index index.php;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen ;
# listen somename:;
# server_name somename alias another.alias;
# root html;
# index index.html index.htm;
#
# location / {
# try_files $uri $uri/ =;
# }
#}
# HTTPS server
#
#server {
# listen ;
# server_name localhost;
#
# root html;
# index index.html index.htm;
#
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
#
# ssl_session_timeout 5m;
#
# ssl_protocols SSLv3 TLSv1 TLSv1. TLSv1.;
# ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
# ssl_prefer_server_ciphers on;
#
# location / {
# try_files $uri $uri/ =;
# }
#}
root@zengjf:/etc/nginx/sites-available#
四、运行uwsgi命令:
root@zengjf:/home/zengjf/website# uwsgi --socket 127.0.0.1: --chdir /home/zengjf/website/mysite --wsgi-file mysite/wsgi.py --master --processes --threads
*** Starting uWSGI 2.0.13.1 (64bit) on [Fri Aug :: ] ***
compiled with version: 4.8. on August ::
os: Linux-3.16.--generic #~14.04.-Ubuntu SMP Thu Jan :: UTC
nodename: zengjf
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores:
current working directory: /home/zengjf/website
detected binary path: /usr/local/bin/uwsgi
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
chdir() to /home/zengjf/website/mysite
your processes number limit is
your memory page size is bytes
detected max file descriptor number:
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket bound to TCP address 127.0.0.1: fd
Python version: 2.7. (default, Jun , ::) [GCC 4.8.]
Python main interpreter initialized at 0x24ae640
python threads support enabled
your server socket listen backlog is limited to connections
your mercy for graceful operations on workers is seconds
mapped bytes ( KB) for cores
*** Operational MODE: preforking+threaded ***
WSGI app (mountpoint='') ready in seconds on interpreter 0x24ae640 pid: (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: )
spawned uWSGI worker (pid: , cores: )
spawned uWSGI worker (pid: , cores: )