django项目使用uwsgi+nginx部署在服务器上笔记

1,django3版本应该是支持到python3.7的但是我们还是推荐使用python3.6,笔者用3.7部署项目失败了。用3.5的话有巨坑,secrests库无法使用,所以最佳选择是python3.6,下面是安装python3.6

sudo apt-get install make gcc
sudo wget http://www.zlib.net/zlib-1.2.11.tar.gz
sudo tar -xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
sudo ./configure
sudo make all
sudo make install

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install -y build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install -y build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install -y zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install -y libssl-dev openssl
sudo apt-get install libffi-dev

sudo wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
sudo tar -xzvf Python-3.6.5.tgz
cd Python-3.6.5
sudo ./configure
sudo make all
sudo make install

#修正ufw
sudo apt-get purge --auto-remove ufw
sudo apt-get install ufw

# 移除旧的软链
sudo rm -rf /usr/bin/python3

# 创建新的,因为安装的时候没有指定安装路径,默认安装到/usr/local/bin/
sudo ln -s /usr/local//bin/python3.6 /usr/bin/python3

# 验证指向是否是python3.6
python3 -V

2,安装pip3

wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
sudo python3 setup.py build
sudo python3 setup.py install

wget --no-check-certificate  https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb
tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2
sudo python3 setup.py build
sudo python3 setup.py install

sudo rm -rf /usr/bin/pip3
sudo ln -s /usr/local/bin/pip3.6 /usr/bin/pip3

# 验证
pip3 -V

4,安装django,uwsgi,nginx

sudo pip3 install Django==3.1
sudo apt-get install libpcre3 libpcre3-dev
sudo pip3 install uwsgi --no-cache-dir
sudo apt-get install nginx
sudo pip3 install requests
sudo pip3 install six

验证django
python3 -c "import django"

5,在django项目根目录下使用python3 manage.py runserver看看项目是否正常跑起来

6,配置nginx:

nano /etc/nginx/nginx.conf
#我的配置文件如下,请照着修改:

user root;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
}

http {

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	gzip on;
application/xml application/xml+rss text/javascript;
	upstream django {
	server 127.0.0.1:8000; #此处与python3 manage.py runserver出来的local地址是对应的!!
	}
	server{
		listen 80;#暴露给外网的端口
		server_name localhost;#服务器ip
		charset utf-8;#为了避免中文乱码
		access_log off;
		location /static{
			alias /home/xxx/django_proj/statics/; #此处指向django工程根目录
		}
		location /{
			uwsgi_pass django;#这个是在项目中的uwsgi.xml配置好的http请求路径和端口
			include /etc/nginx/uwsgi_params;	
		}
	}
}

7,在django项目根目录下新建uwsgi.ini,内容如下:

[uwsgi]
socket=127.0.0.1:8000
chdir=/home/xxx/django_proj  #指向django工程根目录
module=xxx.wsgi   #xxx为你的django项目工程名
master=true
processes=10
chmod-socket=664
vacuum=true

8,跑起来吧:

su
/etc/init.d/nginx start
ctrl+d
uwsgi uwsgi.ini
#uwsgi最好是挂在tmux里面跑

其他有关命令:

【部署】搜集所有的静态文件
python manage.py collectstatic

【部署】启动nginx
/etc/init.d/nginx start
/etc/init.d/nginx restart

【部署】启动uwsgi
uwsgi uwsgi.ini

1. /etc/init.d/nginx start  启动nginx服务
2. /etc/init.d/nginx restart  重启nginx 服务
3. /etc/init.d/nginx stop  停止nginx 服务

针对uwsgi.pid文件
4. uwsgi -x uwsgi/uwsgi.xml             # uwsgi.xml方式启动
5. uwsgi --ini uwsgi/uwsgi.ini			 # uwsgi.ini方式启动
6. uwsgi --reload uwsgi/uwsgi.pid          # 重启
7. uwsgi --stop uwsgi/uwsgi.pid            # 关闭

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值