Django使用nginx部署
来源:互联网 发布:node express 中间件 编辑:程序博客网 时间:2024/05/22 17:18
Django使用nginx部署
原文使用连接
本文默认已经安装django和pip
Django使用nginx部署需要用到python uwsgi模块。
可能遇到的问题:需要安装pythonX.Y-dev,安装uwsgi编译时依赖。Centos叫做pythonX.Y-devel。
pip install uwsgi
1.安装完成之后一个基本的测试,测试uwsgi是否工作正常:
# test.pydef application(env, start_response): start_response('200 OK', [('Content-Type','text/html')]) return [b"Hello World"] # python3 #return ["Hello World"] # python2
使用uwsgi启动
uwsgi
--
http:8000--
wsgi-file test.py
参数含义:
- http:8000 使用http协议占用8000端口
- wsgi-file test.py 加载文件 test.py
在浏览器中访问 http://127.0.0.1:8000 应该能够看到 hello world显示在网页上。
程序访问流程:网页->uwsgi->python
** 目前为止,uwsgi工作正常。
2.测试Django项目
Django目前的项目结构大致如下:
website - Django startserver生成的整体项目文件
manage.py
website - Django startserver生成的整体项目文件
app - Django startapp生成的应用项目文件
先确保Django项目运行无异常,这时应该能够看到Django访问正常的界面
python manage.py runserver 0.0.0.0:8000
如果 http://127.0.0.1:8000 访问正常,那么接下来使用uwsgi启动Django
uwsgi
--
http :8000--
module website.wsgi
- module website.wsgi 加载wsgi模块,此命令需要在website目录下执行,其他目录加全路径也会报内部错误
** 目前为止,uwsgi+django工作正常。
3.测试nginx+wsgi
安装nginx,创建website.conf配置文件,并放置到文件夹/etc/nginx/servers或者/usr/local/etc/nginx/servers下,为什么要放到此路径下,是因为/etc/nginx/nginx.conf或者/usr/local/etc/nginx/nginx.conf中有一句include servers/*,这样配置比较方便。
# website.confupstream django { # server unix:///path/to/your/mysite/mysite.sock; # 后面用到 server 127.0.0.1:8000; # 监听的ip及端口}server { listen 9000; # 监听端口9000 server_name 127.0.0.1; charset utf-8; client_max_body_size 75M; # 最大上传文件大小 # 测试文件夹 location /media { alias /path/to/your/website/media; # 静态文件文件夹 } location / { uwsgi_pass django; include /path/to/your/mysite/uwsgi_params; # 一般可以直接使用nginx路径下的uwsgi_params,路径一般在/etc/nginx/uwsgi_params或者/usr/local/etc/nginx/uwsgi_params }}
此时文件结构
website - Django startserver生成的整体项目文件
manage.py
website - Django startserver生成的整体项目文件
app - Django startapp生成的应用项目文件
media - 静态文件夹,可以向其中添加一些图片测试用
启动nginx
nginx
打开网页 http://127.0.0.1:9000/media/pic.png 应该能够看到一张图片
** 目前为止 nginx工作正常
启动uwsgi
uwsgi
--
socket :8000--
wsgi-file test.py
- socket :8000 使用uwsgi协议,端口8000
与之前的不同是,此处使用socket通讯,因为nginx与uwsgi的协议必须使用socket
打开网页 http://127.0.0.1:9000 应该能够hello world界面。
打开网页 http://127.0.0.1:8000 应该看到网页加载失败。
** 目前为止 nginx+uwsgi工作正常
4.django+uwsgi+nginx
使用网络端口sock不是很好,更好的办法是使用文件socket,下面使用文件socket启动。
使用uwsgi启动django
uwsgi
--
socket website.sock--
wsgi-file test.py
- website.sock会在命令执行的时候自动创建
同时修改 website.conf中的文件
upstream django { server unix:///path/to/your/mysite/mysite.sock; # 连接uwsgi启动时创建的website.sock # server 127.0.0.1:8000; # 监听的ip及端口}
接下来使用uwsgi启动django,推荐也采用配置文件的方式:
配置文件如下django.ini
[uwsgi]chdir = /path/to/your/mysite/ # 工作路径module = website.wsgi # 文件不存在,这样写就行socket = /path/to/your/mysite/website.sock # 文件可以不存在,uwsgi启动时创建chmod-socket = 664 # 没有权限的时候添加,没有权限问题可以去掉master = true # 是否有守护进程processes = 8 # 启动多少个进程vacuum = true # 退出的时候是否删除运行时产生的临时文件daemonize = /path/to/your/mysite/log.log # 指定日志文件,启动的时候后台启动pidfile = /path/to/your/mysite/pidfile.pid # pid文件,感觉十分必要,不然uwsgi关闭非常费劲,指定pid文件之后可以使用uwsgi --stop /path/to/your/mysite/pidfile.pid 关闭uwsgi启动的进程
使用uwsgi启动django项目:
uwsgi –ini /path/to/your/mysite/django.ini
至此打开 http://127.0.0.1:9000 就能看到django正常的界面。
- Django使用nginx部署
- 使用nginx+uwsgi部署django应用
- 使用uwsgi+nginx部署django项目
- 使用Nginx+uWSGI+Django方法部署Django程序
- nginx部署django
- Django+Nginx+uwsgi部署
- nginx uwsgi django部署
- nginx uwsgi 部署django
- django nginx+uwsgi部署
- Django+uWsgi+nginx部署
- Django 部署(Nginx)
- Nginx+uWSGI+Django部署
- nginx+uwsgi部署django
- nginx+uwsgi部署django
- nginx 部署django程序
- Django部署(Nginx)
- nginx+uwsgi 部署django
- Django nginx uwsgi部署
- 或许你也患上了开发瘫痪症
- Flume NG 入门
- jdbc连接数据库
- 轻舟已过万重山——真正的技术派公司是怎么联调、测试和发布的?
- 通过 IDEA 去 Debug Jar包
- Django使用nginx部署
- React Native之React速学教程(上)
- POJ-1436Horizontally Visible Segments
- SSH(struts+spring+hibernate)框架搭建流程
- Centos7安装并配置mysql5.6
- VS2010中创建C#的位图(BitMap)的方法与步骤
- Mac Virtualbox Centos Httpd部署安装
- Convert Sorted Array to Binary Search Tree问题及解法
- Codeforces Beta Round #37 B. Computer Game 暴力 贪心