ubuntu+nginx+uwsgi部署django web项目
前言
将本地开发的django项目部署至linux上的uwsgi服务器,并配置nginx,完成基于ubuntu+nginx+uwsgi的上线运行。下面整理相关步骤。
服务器配置virtualenv
如果不想直接用python环境运行,则需要在服务器上安装并配置virtual env。如果直接用python环境,则可跳过这一步。
pip install virtualenv
pip install virtualenvwrapper
需要配置环境变量,以能使用相关命令:
在 ~下创建.bash_profile,添加如下内容:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
然后运行命令:
source ~/.bash_profile
配置完成。使用如下命令:
mkvirtualenv its_name # 创建virtual env
workon its_name # 切换到某个env下(如果不指定its_name)则是列出所有已有env
deactive # 退出当前env
rmvirtualenv its_name # 删除某个virtual env
安装依赖包
首先在开发本地,需要导出pip依赖包列表。
pip freeze > plist.txt
将此文件放至服务器环境,并批量安装依赖。
workon [虚拟环境名称]
pip install -r plist.txt -i https://pypi.douban.com/simple
# 注,这里使用豆瓣源安装,在国内下载速度比pip官方源快很多
django项目的修改
需要修改settings.py文件,关闭debug模式。
DEBUG = False
ALLOW_HOSTS=['*',] #表示可以访问服务器的ip
配置uwsgi
安装:
pip install uwsgi
需要在django项目根目录(与manage.py同级目录)下,新建一个uwsgi.ini文件,写入相关配置:
[uwsgi]
socket=外网ip:端口(使用nginx连接时,使用socket)
http=外网ip:端口(直接做web服务器,使用http)
chdir=项目根目录
wsgi-file=项目中wsgi.py文件的目录,相对于项目根目录
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uswgi.log
可以启动uwsgi啦:
启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid
配置nginx
需要预先安装nginx:
apt install nginx
对nginx进行配置:
cd /etc/nginx/sites-available
cp default default.bak
vi default
可进行如下配置:
server{
# 根据自身需要使用80或443
listen 443;
server_name search.codingcat.cn;
# 可以配置域名ssl证书
ssl on;
ssl_certificate /etc/nginx/ssl/search.codingcat.cn.crt;
ssl_certificate_key /etc/nginx/ssl/search.codingcat.cn.key;
location / {
uwsgi_pass 127.0.0.1:8888;
include uwsgi_params;
}
# 因为uwsgi下,静态目录无法访问,所以使用nginx来处理静态请求
# 这里是直接将static路径请求赚到了项目的static下
location /static {
root /home/ubuntu/pythonweb/wesearch/;
}
}
备注:如果使用了django自带admin后台,admin的静态目录也无法访问,可依此方法配置/ static/admin 到django源码中的admin静态目录下,或者将admin目录拷贝到自己项目的static目录下。
启动nginx:
service nginx start
service nginx stop
service nginx restart
ubuntu+nginx+uwsgi部署django web项目的更多相关文章
- nginx + uwsgi 部署 Django+Vue项目
nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用dj ...
- 填坑!!!virtualenv 中 nginx + uwsgi 部署 django
一.为什么会有这篇文章 第一次接触 uwsgi 和 nginx ,这个环境搭建,踩了太多坑,现在记录下来,让后来者少走弯路. 本来在 Ubuntu14.04 上 搭建好了环境,然后到 centos7. ...
- Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统
Python3.6+nginx+uwsgi部署Django程序到阿里云Ubuntu16.04系统 这个是写好的Django程序在本地机运行的情况,一个查询接口. 准备工作 1.首先购买一台阿里云的EC ...
- nginx + uwsgi 部署django项目
因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...
- 使用Nginx+Uwsgi部署Python Flask项目
第一次用Flask做Web(也是第一次用Python做Web),在部署的时候遇到了不少问题,现在将过程就下来,供在这方面也有疑惑的人参考.(PS:使用Apache+mod_wsgi部署模式的可以参考另 ...
- nginx+uwsgi部署Django项目到Ubuntu服务器全过程,以及那些坑!!!
前言:自己在windows上用PyCharm编写的Django项目,编写完后在windows上运行一点问题都没有,但是部署到服务器上时却Bug百出.百度,CSDN,sf,各种搜索寻求解决方案在历时3天 ...
- Nginx + uWSGI 部署Django 项目,并实现负载均衡
一.uWSGI服务器 uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换. 要注意 WSGI ...
- 使用Nginx+uWSGI部署Django项目
1.linux安装python3环境 参考链接:https://www.cnblogs.com/zzqit/p/10087680.html 2.安装uwsgi pip3 install uwsgi l ...
- 部署 Nginx +uwsgi+centos7+django+supervisor 项目
部署CRM项目 前言 使用软件 nginx 使用nginx是为了它的反向代理功能,项目会通过Django+uWSGI+Nginx进行服务器线上部署. uWSGI python web服务器开发使用WS ...
随机推荐
- Notepad++编辑.sh文件
使用记事本创建创建test.txt文件,修改后缀名为sh后,再文件里写以下内容: #!/bin/bash echo "hello world" 这样的文件再linux里是无法执行的 ...
- instr动态模糊查询
String sqlSearchtext = ""; if(!"".equals(model.getXzqhdm())&&model.getXz ...
- VS2010,VS2013 Datagridview控件的编辑列功能,弹窗界面被挤扁了
搜了很久,没找到解决办法,在一个角落看到说要卸载Framework,实践后可以,发出来记一下. 解决办法: 发现自己电脑上多了Framework4.8,可能安装VS2013的时候自动安装的. 卸载了F ...
- Programming a Hearthstone agent using Monte Carlo Tree Search(chapter one)
Markus Heikki AnderssonHåkon HelgesenHesselberg Master of Science in Computer Science Submission dat ...
- 生成要发送到社区的内核补丁时如何指定发布的版本号(v2,v3...)?
1. 生成一个补丁 git format-patch --subject-prefix=v2 -1 那么生成的patch文件就会有如下类似的信息: Subject: [v2] your descrip ...
- 消息队列之ActiveMQ学习笔记(二、C#实例实现)
ActiveMQ提供多种语言支持,如Java, C, C++, C#, Ruby, Perl, Python, PHP等.此处列举C#实例 下述C#实例代是基于QUEUE的P2P方式,如需要实现TOP ...
- postman+jmeter接口实例
接口基础 一.为什么要单独测试接口? 1. 程序是分开开发的,前端还没有开发,后端已经开发完了,可以提前进入测试2. 接口直接返回的数据------越底层发现bug,修复成本是越低的3. 接口测试能模 ...
- beSTORM之网络协议Fuzz入门教程
转载自FreeBuf.COM 本文将以SNMP协议为例介绍如何使用beSTORM进行网络协议Fuzz. 实验环境 Windows 7 X64 (IP:192.168.0.123) beSTORM 3. ...
- 洛谷 题解 P2010 【回文日期】
因为有8个字符,所以可得出每一年只有一个回文日期. 因此只要判断每一年就行了. 做法: 我们先把年倒过来,例如2018年就倒为8102,就得出8102就是回文日期的后四个字符,我们只要判断一下有没有这 ...
- uwp,c#,mediaElement与slider进度条绑定
虽然微软uwp官方已停止对传统媒体控件mediaElement的update,新控件为mediaPlayerElement和mediaPlayer[官方word:https://docs.micros ...