virtualenv+nginx+uwsgi+django配置
来源:互联网 发布:安卓ar软件 编辑:程序博客网 时间:2024/06/03 22:46
现有django app “mysite”,需要用nginx和uwsgi。
下图是在virtualenv创建的虚拟环境下:
A。单应用
1.安装nginx,版本是1.13.4:
安装gcc g++的依赖库 #apt-get install build-essential #apt-get install libtool安装 pcre依赖库(http://www.pcre.org/) #sudo apt-get install libpcre3 libpcre3-dev安装 zlib依赖库(http://www.zlib.net) #apt-get install zlib1g-dev安装 ssl依赖库 #apt-get install openssl安装Nginx(http://nginx.org)下载最新版本: #cd /usr/local/src #wget http://nginx.org/download/nginx-1.13.4.tar.gz解压: #tar -zxvf nginx-1.13.4.tar.gz进入解压目录: #cd nginx-1.13.4配置: #./configure --prefix=/usr/local/nginx 编辑nginx: #make安装nginx: #sudo make install启动nginx: #sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf注意:-c 指定配置文件的路径,不加的话,nginx会自动加载默认路径的配置文件,可以通过 -h查看帮助命令。查看nginx进程: #ps -ef|grep nginx停止 Nginx #cd /usr/local/nginx/sbin/ #./nginx -s stop
2.安装uwsgi,版本2.0.15:
注意:需要先安装pcre,在上面的nginx中安装了,不然会有提示rebuild with pcre。
安装:
#pip install uwsgi -I –no-cache-dir
用ini运行:
在虚拟环境目录(看上面的图片)下新建文件uwsgi.ini,添如下面代码:
[uwsgi]vhost = false master = trueenable-threads = trueworkers = 2wsgi-file = /root/venv/mysite/mysite/wsgi.py virtualenv =/root/venvchdir =/root/venv/mysiteprocesses = 2listen = 80socket = 127.0.0.1:8000pidfile = /root/venv/mysite/tmp/mysite.pidvacuum = true#daemonize = /root/venv/mysite/tmp/mysite.log #开启就是后台运行reload-mercy = 8max-requests = 5000 thunder-lock = truebuffer-size = 32768
注:关于socket和http的一点说明:
用http就可以直接 浏览器->uwsgi->django
用socket 浏览器->nginx->uwsgi->django
3.启动项目:
a.venv目录下启动uwsgi:
#uwsgi –ini ./uwsgi.ini
b.将STATIC_ROOT = os.path.join(BASE_DIR, "static/")
加入mysite/mysite/settings.py,然后执行python manage.py collectstatic
c.在/usr/local/nginx/conf/nginx.conf添加下面代码(添加在http{}中):
server { listen 8080; server_name localhost; charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; client_max_body_size 35m; } }
d.浏览器打开127.0.0.1:8080就可以访问项目了。
注意:conf中uwsgi_pass和ini中的socket相同
B。多应用
由于只有一个mysite app,所以多app用mysite复制一份到HelloWorld文件夹中。文件见下图:
多应用是用一个uwsgi和nginx,其中nginx中的server是对应一个app。
a。将上面3.c中的server改为下面代码(通常是同一端口,不同的server_name):
server { listen 8081; server_name localhost; charset utf-8; client_max_body_size 35m; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; uwsgi_param UWSGI_CHDIR /root/venv/mysite; #你的项目的路径,最好用完整路径 uwsgi_param UWSGI_SCRIPT mysite.wsgi; #指向wsgi.py,相对于项目的根目录 } }server { listen 8080; server_name localhost; charset utf-8; client_max_body_size 35m; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8000; uwsgi_param UWSGI_CHDIR /root/venv/HelloWorld; #你的项目的路径,最好用完整路径 uwsgi_param UWSGI_SCRIPT mysite.wsgi; #指向wsgi.py,相对于项目的根目录 } }}
b。将uwsgi.ini改为下面代码(这里不需要具体指定app,nginx已经指定了):
[uwsgi]vhost =truemaster = trueenable-threads = trueworkers = 2processes = 2listen = 80socket = 127.0.0.1:8000pidfile = /root/venv/mysite/tmp/mysite.pidvacuum = true#daemonize = /root/venv/mysite/tmp/mysite.logreload-mercy = 8max-requests = 5000 thunder-lock = truebuffer-size = 32768
c。启动uwsgi和nginx,访问127.0.0.1:8080/admin和127.0.0.1:8081/admin应该都是管理界面。当项目中没有app时可能报错,所以采用复制mysite app进行测试。
- virtualenv+nginx+uwsgi+django配置
- virtualenv+virtualenvwrapper+uwsgi+django配置
- django+nginx+uwsgi+virtualenv部署站点示例
- Nginx + uwsgi + django 配置
- Nginx + uWSGI + Django 配置
- nginx + django + uwsgi 配置
- django+uWSGI+Nginx配置
- django + uwsgi + nginx 配置
- django+nginx+uwsgi配置
- nginx+uwsgi+Django配置
- Debian+nginx+uWSGI+Django配置
- 配置 python(django)+nginx+uwsgi
- django Mezzanine uwsgi nginx 配置
- Nginx+uWSGI+django配置详解
- Django,uwsgi,nginx简单配置
- Django Nginx+uwsgi 安装配置
- Django + Nginx + Uwsgi 配置服务器
- Django Nginx+uwsgi 安装配置
- NuttX 入门笔记6 STM32F103C8T6(STM32f103-minimum) 多路PWM测试-RGBLED
- Android,我么用原生还是混合?
- CReLU激活函数
- 一些软件思想
- Javascript的对象及原型
- virtualenv+nginx+uwsgi+django配置
- 重构优化
- Mysql面试总结
- 563. Binary Tree Tilt
- 高三志
- EditText绑定键盘监听事件
- eclipse中将mavenweb项目部署到tomcat中
- 一道小米的笔试题
- window线程池