Django+uwsgi+nginx
安装 python
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
(或)安装 Anaconda
下载 .sh 文件
bash Anaconda3-4.3.1-Linux-x86.sh
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
安装 pip
pip install --upgrade pip
安装 Django
不加版本号
pip install Django
加版本号(用的pip3)
pip3 install Django==2.1.8
创建项目
django-admin.py startproject pyDemo
cd pyDemo
创建应用
python manage.py startapp demo
具体创建项目:
https://docs.djangoproject.com/zh-hans/3.0/intro/tutorial01/
安装 nginx
sudo apt-get install nginx
安装好的文件位置:
/`usr/sbin/nginx:主程序`
`/etc/nginx:存放配置文件`
`/usr/share/nginx:存放静态文件`
`/var/log/nginx:存放日志`
具体操作:
sudo service nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}
配置:
server {
listen 80;
server_name xxxxx.com; # 域名
location /demo/ { # /demo/ 和app名保持一致
include uwsgi_params;
uwsgi_pass ip(服务器IP):9000; # 需要和ini文件中的`端口`保持一致,这样才能实现两者的通信。
uwsgi_send_timeout 100;
uwsgi_connect_timeout 100;
uwsgi_read_timeout 100;
}
location /static/ {
add_header 'Access-Control-Allow-Origin' '*';
expires 30d;
autoindex on;
alias /home/AllenServer/pythonStudy/static;
}
}
uwsgi
pip3 install uwsgi
uwsgi 的配置文件
uwsgi.ini 文件
[uwsgi]
# 和nginx通信用socket,单独运行时用http
#http = 0.0.0.0:8002
# 必须与NGINX端口一致
socket = :9000
# 工程目录
chdir = /home/AllenServer/pyDemo
module = pyDemo.wsgi
# 允许主进程
master = true
# 进程数量
processes = 1
# log, 可以控制是否前台运行
#daemonize = /home/AllenServer/pyDemo/uwsgi/log_uwsgi.log
daemonize = /home/AllenServer/pyDemo/uwsgi/log_uwsgi.log
# 退出时清空环境变量
vacuum = true
# 进程pid
pidfile = /home/AllenServer/pyDemo/uwsgi/pid_uwsgi.pid
#修改python代码时,自动重启uwsgi服务
py-autoreload = 1
初始化(只用一次)
初始化(根目录)
uwsgi --ini uwsgi.ini
重启
uwsgi --reload uwsgi/pid_uwsgi.pid
!!! 注意一下操作
1.nginx location /demo/, 和 django 创建应用的应用名一致。
2.端口保持一致 ( uwsgi.ini (socket = :9000) 配置端口与nginx (uwsgi_pass ip(服务器IP):9000) )
3.防止进程被占用 ( kill -9 port )
github地址:
扫描二维码,关注公众号,回复 python