mac+django(1.8.2)+uwsgi+nginx 部署
一. uwsgi
- 安装
- 检验
- 配置uwsgi.ini
1. 安装
pip3 install uwsgi
2. 检验
- 方法一(uwsgi启动文件):
- test.py内容如下:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"]uwsgi --http 0.0.0.0:8000 --wsgi-file testTask/tests.py
打开浏览器http://127.0.0.1:8000/
- 方法二(uwsgi启动django项目):
uwsgi --http :8000 --file dj_test/wsgi.py
- 如果部署项目uwsgi+django,到这里就结束了,如果需要配合nginx,再接着往下看。
3. 配置uwsgi.ini
- 同django的manage.py为同一级目录创建uwsgi.ini
[uwsgi]
http = :9000
socket = 127.0.0.1:8001
chdir = /Users/conan/vir_env/AutoTest
wsgi-file = /Users/conan/vir_env/AutoTest/AutoTest/wsgi.py
module = AutoTest.wsgi:application
master = true
processes = 4
threads = 2
chmod-socket=664
vacuum=true
daemonize = /Users/conan/vir_env/AutoTest/uwsgi.log参数解释:
- http 用户访问端口
- chdir 为django 项目路径,该路径下面有manage.py 文件
- wsgi-file django 自带的wsgi.py 文件
- socket 8001 与下面要配置的nginx的端口要保持一致, 因为uwsgi与nginx 通过socket协议8001端口通信
二. nginx
- 安装
- 配置nginx.conf
- 启动,重启,关闭
1. 安装
brew install nginx
nginx -v # 查看安装版本号
nginx -t # 安装路径
2. 配置nginx.conf
- 同django的manage.py为同一级目录创建nginx.conf
worker_processes 1; events {
worker_connections 1024;
} http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
access_log /Users/zd/Documents/AutoTest/nginx_access.log;
error_log /Users/zd/Documents/AutoTest/nginx_error.log;
client_max_body_size 75M; location /static {
alias /Users/zd/Documents/AutoTest/static;
} location / {
root /Users/zd/Documents/AutoTest;
include /usr/local/etc/nginx/uwsgi_params;
uwsgi_pass 127.0.0.1:8001;
}
} include servers/*;
}
3. 启动,重启,关闭
# 找nginx 安装路径
which nginx
cd /usr/local/bin/nginx #重启
nginx -s reload #关闭
nginx -s stop. 或者 kill -9 nginx #是否关闭
ps aux|grep nginx
三. uwsgi+nginx 启动Django项目
nginx -t
cd /usr/local/etc/nginx
把mime.types 文件copy到django 项目与manage.py 同一级
uwsgi --ini uwsgi.ini
sudo nginx -c nginx.conf #根据报错信息,缺啥文件补充啥,补完之后,重复该命令
浏览器访问:127.0.0.1:9000/index/
四. 加载静态资源
在Django setting.py里加
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
终端执行命令
python3 manage.py collectstatic #收集静态文件
url.py(例如:AutoTest/AutoTest/url.py)
from django.conf import settings
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'', include('testTask.urls')),
url(r'^static/(?P<path>.*)$', 'django.views.static.serve', { 'document_root': settings.STATIC_ROOT,}),
]
mac+django(1.8.2)+uwsgi+nginx 部署的更多相关文章
- 使用uWSGI+nginx部署Django项目
最近使用django写了一些项目,不过部署到服务器上碰到一些问题,还有静态文件什么的一堆问题,这里总结一下碰到的问题和解决方案,总体思路是按照官方文档走的. 原文地址:http://uwsgi-doc ...
- virtualvenv+django+uWSGI+nginx 部署
原创博文 转载请注明出处! 1. virtualvenv 2. django 3. uWSGI 4. nginx 5. 踩坑记录 1. virtualvenv virtualvenv install ...
- django+uwsgi+nginx部署(非常详细)
django+uwsgi+nginx部署 1.介绍: 在网上看了很多教程,但自己部署了很久都没有成功,这篇博文记录自己所踩过得坑. 2.环境: Ubuntu 16.04.1 LTS (GNU/Linu ...
- Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx)
Linux 集群概念 , wsgi , Nginx负载均衡实验 , 部署CRM(Django+uwsgi+nginx), 部署学城项目(vue+uwsgi+nginx) 一丶集群和Nginx反向代理 ...
- Django+uWSGI+Nginx 部署网站
Django 1.11设置 保证Django在本地调试没有问题: 当然这是前提^_^ 收集静态文件至指定文件夹 Django静态文件设置具体参考:https://docs.djangoproject. ...
- vue+uwsgi+nginx部署路飞学城
vue+uwsgi+nginx部署路飞学城 有一天,老男孩的苑日天给我发来了两个神秘代码,听说是和mjj的结晶 超哥将这两个代码,放到了一个网站上,大家可以自行下载 路飞学城django代码 ht ...
- linux vue uwsgi nginx 部署路飞学城 安装 vue
vue+uwsgi+nginx部署路飞学城 有一天,老男孩的苑日天给我发来了两个神秘代码,听说是和mjj的结晶 超哥将这两个代码,放到了一个网站上,大家可以自行下载 路飞学城django代码#这个代码 ...
- centosflask+uWSGI+nginx部署
centosflask+uWSGI+nginx部署 1. 概念 Flask自带webserver--Werkzeug,可以搭建服务,运行网站.但在开发时,一般会用专业的--uWSGI. 另外 ...
- ubuntu18+uwsgi+nginx部署django项目
更新系统软件源 sudo apt-get update pip3安装 sudo apt install python3-pip 安装virtualenvwrapper pip3 install vir ...
随机推荐
- 华三F100系列防火墙 、华为USG6300系列防火 GRE 隧道配置
GRE概述: 通用路由封装(GRE: Generic Routing Encapsulation)是通用路由封装协议,可以对某些网络层协议的数据报进行封装,使这些被封装的数据报能够在IPV4网络中传输 ...
- 在学习python的Django\Flask\Tornado前你需要知道的,what is web?
我们都在讲web开发web开发,那到底什么是web呢? 如果你正在学习python三大主流web框架,那这些你必须要知道了 软件开发架构: C/S架构:Client/Server 客户端与服务端 ...
- ActiveMQ 即时通讯服务 入門指南及淺析
转:http://www.cnblogs.com/hoojo/p/active_mq_jms_apache_activeMQ.html 一. 概述与介绍 ActiveMQ 是Apache出品,最流行的 ...
- 洛谷 P4198 楼房重建 题解
题面 首先你要知道题问的是什么:使用一种数据结构,动态地维护以1为起点地最长上升子序列(把楼房的高度转化成斜率地序列)的长度: 怎么做?线段树! 我们在线段树上维护两个东西:1.这个区间内斜率的最大值 ...
- PAT A1058 A+B in Hogwarts (20)
AC代码 #include <cstdio> struct Money { long long Galleon, Sicklke, Knut; }A, B, Sum; void init( ...
- tp5支付宝和微信支付
一.生成二维码给用户进行扫码支付 1.先在vendor目录下加入支付宝和微信支付的引用 2.付款处调用 /** * 订单支付接口 * * @api {post} {:url('order/pay')} ...
- easyswoole报错:failed: Error during WebSocket handshake: Unexpected response code: 200
WebSocket connection to 'ws://www.xxxx.com/xxx/xx' failed: Error during WebSocket handshake: Unexpec ...
- python不同编码方式对应所占字节数
不同编码方式对应所占字节数 ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间.一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制. ...
- python-day6(正式学习)
流程控制之while循环 语法 循环就是一个重复的过程,人需要重复做某项工作,那么计算机也一样.当ATM验证失败,那么计算机就会让我们再输入一次密码.这时候我们说的循环就是while循环,while循 ...
- 运用加密技术保护Java源代码(转)
出处:运用加密技术保护Java源代码 为什么要加密? 对于传统的C或C++之类的语言来说,要在Web上保护源代码是很容易的,只要不发布它就可以.遗憾的是,Java程序的源代码很容易被别人偷看.只要有一 ...