python部署服务器:Django+uwsgi+nginx

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地址:
Alt

扫描二维码,关注公众号,回复 python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值