转自:http://www.cnblogs.com/liu-yao/p/5378960.html
环境:
CentOS 7
Nginx/1.9.12
Python 2.7.5
一:安装依赖包5
yuminstallzlib-develbzip2-develpcre-developenssl-develncurses-devel sqlite-develreadline-develtk-develpython-pip-y
二:安装uwsgi
uwsgi:https://pypi.python.org/pypi/uWSGIuwsgi参数详解:http://uwsgi-docs.readthedocs.org/en/latest/Options.htmlpipinstalluwsgi uwsgi--version
三:测试uwsgi是否正常:
新建test.py文件,内容如下:defapplication(env,start_response): start_response('200OK',[('Content-Type','text/html')])return"liuyao"然后在终端运行: uwsgi--http:8080--wsgi-filetest.py 在浏览器内输入:http://127.0.0.1:8080, 看是否有“liuyao”输出,若没有输出,请检查你的安装过程。
四:安装django
pipinstalldjango 测试django是否正常,运行: django-admin.pystartprojectnewsite cdnewsite pythonmanage.pyrunserver0.0.0.0:8000在浏览器内输入:http://127.0.0.1:8000,检查django是否运行正常。
五:安装Nginx
1.下载 wgethttp://Nginx.org/download/Nginx-1.9.12.tar.gz2.解压 tarxfNginx-1.9.12.tar.gz cdNginx-1.9.12.tar.gz3.编译 ./configure--prefix=/usr/local/Nginx-1.9.12\ --with-http_stub_status_module\ --with-http_gzip_static_module4.安装 make&&makeinstall 注:您可自行改变参数设置,具体请上官网学习,如果已经存在Nginx服务,那么此步可省略
六:配置uwsgi
uwsgi支持ini、xml等多种配置方式,但个人感觉ini更方便:
在/ect/目录下新建uwsgi.ini,添加如下配置: [uwsgi] socket=127.0.0.1:9090//运行端口号master=true//主进程vhost=true//多站模式no-stie=true//多站模式时不设置入口模块和文件workers=2//子进程数reload-mercy=10vacuum=true//退出、重启时清理文件max-requests=1000limit-as=512buffer-sizi=30000pidfile=/var/run/uwsgi.pid//pid文件,用于下面的脚本启动、停止该进程 daemonize=/日志目录/uwsgi.log 启动方式: uwsgi/etc/uwsgi.ini
七:设置Nginx
找到Nginx的安装目录,打开conf/Nginx.conf文件,修改server配置
server{ listen80;//设置网站运行端口 server_namelocalhost; location/{ includeuwsgi_params; uwsgi_pass127.0.0.1:9090;//必须和uwsgi中的设置一致 uwsgi_paramUWSGI_SCRIPTnewsite.wsgi;//入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录 uwsgi_paramUWSGI_CHDIR/newsite;//项目根目录, indexindex.htmlindex.htm; client_max_body_size35m; } }
注:
1.uwsgi脚本
请放在/etc/init.d/uwsgi 设置可执行
DESC="uwsgidaemon"NAME=uwsgi DAEMON=/usr/bin/uwsgi CONFIGFILE=/etc/$NAME.ini PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAMEset-e[-x"$DAEMON"]||exit0 do_start(){$DAEMON$CONFIGFILE||echo-n"uwsgirunning"}do_stop(){$DAEMON--stop$PIDFILE||echo-n"uwsginotrunning" rm-f$PIDFILE echo"$DAEMONSTOPED."}do_reload(){$DAEMON--reload$PIDFILE||echo-n"uwsgican'treload"}do_status(){ psaux|grep$DAEMON}case"$1"instatus)echo-en"Status$NAME:\n" do_status ;; start)echo-en"Starting$NAME:\n" do_start ;; stop)echo-en"Stopping$NAME:\n" do_stop ;; reload|graceful)echo-en"Reloading$NAME:\n" do_reload ;; *)echo"Usage:$SCRIPTNAME{start|stop|reload}">&2exit3 ;;esacexit0
八:测试
OK,一切配置完毕,在终端运行
/etc/init.d/uwsgistart/usr/local/Nginx/sbin/Nginx-sreload或者直接启动 在浏览器输入:http://127.0.0.1,恭喜你可以看到django的“Itwork”了~
九:多站配置
使用多个uwsgi服务的方法来实现多个站点。
重复第六步,创建uwsgi9091.ini,并相应修改文件中的
socket=127.0.0.1:9091pidfile=/var/run/uwsgi9091.piddaemonize=/日志目录/uwsgi9091.log
并且设置脚本 启动服务
server{ listen8000; server_name127.0.0.1; location/{ includeuwsgi_params; uwsgi_pass127.0.0.1:9091; uwsgi_paramUWSGI_SCRIPToldsite.wsgi; uwsgi_paramUWSGI_CHDIR/web/oldsite;indexindex.htmlindex.htm; } } 然后我们就可以通过http://127.0.0.1:8000来访问新的网站了。
完毕!