Python3.8+Django+nginx+uwsgi环境(二)
Django和uwsgi安装(非虚拟环境安装)
[root@localhost ~]# pip3 install Django==3.1.4
[root@localhost ~]# pip3 install uwsgi
# 创建相关软件链接
# 安装python时指定了路径
# 可以直接运行下面创建软链接的命令
# 未指定python安装路径的
# 需要查找文件路径然后创建软链接
[root@localhost ~]# ln -s /usr/local/python3/bin/django-admin /usr/bin/django-admin
[root@localhost ~]# ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
[root@localhost ~]# mkdir /root/python3Project
[root@localhost ~]# cd /root/python3Project
[root@localhost python3Project]# django-admin startproject mysite
[root@localhost python3Project]# cd mysite
[root@localhost mysite]# python3 manage.py runserver
# 启动后如下(图1)django项目已经安装完成
# Ctrl+c结束即可
# 创建uwsgi的三个目录
# etc存放配置文件
# log存放日志文件
# run存放进程ID文件
[root@localhost mysite]# mkdir -p /data/uwsgi/{etc,log,run}
[root@localhost mysite]# cd /data/uwsgi
[root@localhost uwsgi]# ls
# 配置文件(下面会有详解,此外原样配置即可,非root用户需要修改相对应的uid和gid)
[root@localhost uwsgi]# vim etc/mysite.ini
[uwsgi]
chdir=/root/python3Project/mysite
wsgi-file=/root/python3Project/mysite/mysite/wsgi.py
master=True
pidfile=/data/uwsgi/run/mysite.pid
socket=127.0.0.1:9001
processes=2
uid=root
gid=root
harakiri=20
max-requests=5000
vacuum=True
daemonize=/data/uwsgi/log/mysite.log
# 启动uswgi
[root@localhost uwsgi]# uwsgi -d --ini /data/uwsgi/etc/mysite.ini
# 查看相关进程
[root@localhost uwsgi]# ps -ef | grep uwsgi
uwsgi参数详解设置
应用程序主目录
chdir=/root/python3Project/mysite
应用程序wsgi文件
wsgi-file=/root/python3Project/mysite/mysite/wsgi.py
启用主进程
master=True
主进程ID
pidfile=/data/uwsgi/run/mysite.pid
指定socket,这里要和后面nginx配置对应
socket=127.0.0.1:9001
进行个数
processes=2
uwsgit启动用户名和用户组
uid=root
gid=root
设置自动中断时间
harakiri=20
设置工作进程每处理N个进程就会被回收重启
max-requests=5000
自动移除socket和pid文件 当服务停止的时候
vacuum=True
日志文件
daemonize=/data/uwsgi/log/mysite.log
常用命令
#uwsgi --ini /data/uwsgi/etc/mysite.ini # 启动
#uwsgi --reload /data/uwsgi/run/mysite.pid # 重启
#uwsgi --stop /data/uwsgi/run/mysite.pid # 关闭
nginx安装和配置
[root@localhost ~]# wget http://nginx.org/download/nginx-1.9.8.tar.gz
[root@localhost ~]# tar -zxvf nginx-1.9.8.tar.gz
[root@localhost ~]# mkdir /usr/local/nginx
[root@localhost ~]# cd nginx-1.9.8/
[root@localhost nginx-1.9.8]# ./configure --prefix=/usr/local/nginx
[root@localhost nginx-1.9.8]# make && make install
[root@localhost nginx-1.9.8]# cd /usr/local/nginx/conf/
# 编辑添加如下代码(如下图2)
[root@localhost conf]# vim nginx.conf
include server/*.conf;
[root@localhost conf]# mkdir server
[root@localhost conf]# cd server/
[root@localhost server]# vim 9001.mysite.conf
server {
listen 80;
server_name www.mysite.cn;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9001;
uwsgi_param UWSGI_SCRIPT mysite.wsgi;
uwsgi_param UWSGI_CHDIR /root/python3Project/mysite;
}
location /static/ {
alias data/wwwroot/mysite/static/;
}
}
[root@localhost server]# cd ../../
[root@localhost nginx]# ./sbin/nginx
# 切记要查看防火墙和seLinux的状态
# 1、把服务全关闭
# 2、不想关闭要设置放行规则
以上操作完成,就可在客户端进行访问。
有如下访问方式:
1、基于端口的,9001.mysite.conf文件中listen非80的话,可以直接使用【http://ip:端口】进行访问
2、基于域名的,9001.mysite.conf文件使用80,server_name配置为www.mysite.cn,如域名为网络域名直接配置DNS解析即可。如非网络域名需在客户端(windows)配置host解析才可访问。