Linux下Django Nginx + uWSGI搭建及常见问题
来源:互联网 发布:nginx ip段访问 编辑:程序博客网 时间:2024/05/20 12:22
安装基础开发包(CentOS):
yum groupinstall "Development tools"yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc
安装Python3
wget http://python.org/ftp/python/3.4.0/Python-3.4.0.tgztar -xzvf Python-3.4.0.tgz cd Python-3.4.0./configuremake && make install
安装pip
wget "https://bootstrap.pypa.io/get-pip.py" | python
建立软连接
mv /usr/bin/python /usr/bin/python.bakln -s /usr/local/bin/python3.4 /usr/bin/python
修复不能正常工作的yum
vi /usr/bin/yum
将首行显示的 !#/usr/bin/python 修改为 !#/usr/bin/python2.6
安装uwsgi
pip install uwsgi
测试 uwsgi ,新建 test.py 文件,内容如下:
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return ["Hello World"]
终端运行:
uwsgi --http :8001 --wsgi-file test.py
访问127.0.0.1:8001 成功则可见Hello World
安装Django
pip install djangodjango-admin.py startproject mysitecd mysitepython manage.py runserver 0.0.0.0:8002
访问127.0.0.1:8002 成功则可见it work
连接django和uwsgi
编写mysite_wsgi.py文件,放在manage.py相同目录下
import osos.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings")from django.core..wsgi import get_wsgi_applicationapplication = get_wsgi_application()
终端运行,假设Django目录是/root/mysite
uwsgi --http :8000 --chdir /root/mysite --module django_wsgi
访问127.0.0.1:8000 成功则可见it work
创建uWSGI配置文件
新建mysite_socket.ini,放在manage.py相同目录下
[uwsgi]socket=127.0.0.1:8010chdir=/root/mysitemodule=mysite_wsgiprocesses=4daemonize=uwsgi.log
安装Nginx
wget http://nginx.org/download/nginx-1.5.6.tar.gztar xf nginx-1.5.6.tar.gzcd nginx-1.5.6./configuremake && make install
配置Nginx
vim /usr/local/nginx/conf/nginx.conf
添加以下配置
location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8010; }
运行
uwsgi --ini mysite_socket &/usr/local/nginx/sbin/nginx
访问 127.0.0.1 成功则可见it work
常见问题:
1.invalid request block size….
解决:nginx用来把请求发送给uwsgi。所以uwsgi被配置成使用socket方式(为tcp协议)进行通信。如果打开浏览器访问uwsgi指定的端口,那么浏览器请求uwsgi的方式为http协议,而不是socket方式。修改配置文件中的socket为http即可
2.raise AppRegistryNotReady(“Apps aren’t loaded yet.”)…
解决:版本问题,修改mysite_wsgi.py文件,django.core.handlers.wsgi 改为django.core..wsgi,其余做相应改变,见本文配置
3.DisallowedHost at / Invalid HTTP_HOST header:…
解决:Django项目的setting.py文件, ALLOW设置为[“*”]
4.unable to load app 0 (mountpoint=”) (callable not found or import error) ….
解决:版本问题,修改mysite_wsgi.py文件,去掉 ‘application’ 前的 ‘’
注:本文引用多篇文章和文档,用于学习用途,如有侵权,还望告知
- Linux下Django Nginx + uWSGI搭建及常见问题
- nginx+uwsgi+django+linux搭建
- CentOS 7 下使用Uwsgi及nginx搭建Django站点
- ubuntu下nginx+uWSGI+Django搭建
- linux下nginx uwsgi方式部署django
- Linux下uWSGI+NGINX部署Django+AngularJs
- nginx django uwsgi搭建网站
- Nginx+uWSGI+Django框架搭建
- 搭建nginx+uwsgi+django环境
- nginx+uwsgi+django 搭建web
- linux下搭建nginx,uwsgi和python的flask和django网站
- Centos7.2下nginx+uwsgi+python/Django搭建生产环境
- CentOS下nginx+uwsgi+django
- CentOS6.4 搭建Django+Nginx+uWSGI
- Fedora20 + Nginx + uWSGI + Django环境的搭建
- Fedora20 + Nginx + uWSGI + Django环境的搭建
- 使用nginx和uWSGI搭建Django网站
- linux搭建Nginx+uWSGI环境
- hdu 1398 Square Coins(生成函数)
- 指针的方式逆序数组
- Unity中实现一个状态机
- 解除浏览中百度对大文件下载限制
- 抽象类
- Linux下Django Nginx + uWSGI搭建及常见问题
- javascript中的this
- 项目第七天
- 字符串指针的典型错误
- 一个用于网站自动化测试的生态系统实现
- Oracle 重建控制文件
- Tigase-01 使用spark或spi登录Tigase服务器
- 算法分析之时间复杂度与空间复杂度
- css3兼容IE8的方案 各个ie的hack