1.准备服务器
下载xshell
服务器准备工作完成 点击链接就会进入自己的服务器页面,出现下面情况表示成功
2.python+django的安装
python有两种方法,一种是直接通过wegt访问python下载的地址下载解压包来进行解压安装。另一种是用xftp通过windows下传过来的python.tgz文件来进行解压安装。
这个里面我已经传输了我的压缩包
也可以直接用wegt
wget https://www.python.org/ftp/python/3.6.0/Python-3.8.6.tar.xz
解压压缩包:tar -zxvf Python-3.8.6.tar.xz
加压后会生成python+版本号文件夹 进入文件夹 cd python+版本号
按顺序输入下面指令:
./configure --prefix=/usr/local/python36 #python的安装路径默认安装在/usr/local下
make install #把压缩包内的代码通过make变成linux能识别到的代码
配置完成后需要更改python的环境变量,有的服务器是会自带环境变量。
echo $PATH #查看环境变量的配置
export PATH=/usr/local/python36/bin:$PATH #配置python版本的环境变量
这个时候我们需要建立python的软连接,因为我下载的是python3.8.6版本所以我更改了python3的软连接指向
我们切换到 /usr/bin目录下
使用 ls -il python* #查看所有python的软连接
rm -rf python3 #删除掉python3软连接
ln -s 你的python安装目录 /usr/bin/python3 #把你安装的python版本指向python3
如果建立成功输入 python3
这样我们的python安装就成功了,安装成功python后相对应的需要安装django的一些依赖
pip install django
pip3 install django
可能安装django的时候会出现一些其它依赖的安装,只需要一个一个的安装就好。
3.uwsgi的安装和配置
pip3 install uwsgi
下载好uwsgi后进入到你的项目目录(或者自己新建一个启动文件夹也可以)建一个以.ini结尾的uwsgi文件,例如uwsgi.ini,
vim uwsgi.ini
进入uwsgi.ini文件后开始进行uwsgi的配置
[uwsgi]
socket = 服务器的地址:8000 # 服务器地址设置0.0.0.0表示可以接收不同服务器的nginx发送过来的请求,127.0.0.1表示只接收同一服务器发送过来的请求。因为我们准备使用的是nginx+uwsgi的项目所以我们的服务器地址可以通过 ifconfig命令来查看
# http = :5000 # 启动程序时所使用的地址和端口,通常在本地运行flask项目,
chdir = /home/repo/shareAPI/ # 你所在的项目目录项目目录
wsgi-file = AAshare/wsgi.py # django wsgi.py所在的文件夹 例如我的文件夹在AAshare下
manage.py runserver 来启动项目的callable = app # 程序内启用的application变量名
processes = 4 # 处理器个数,进程个数 .一般最大填写CPU的核心数量
threads = 2 # 线程个数 ,默认的linux系统中一个进程最多2048个线程。 1 ~ 1024
stats = 127.0.0.1:9191 # 获取uwsgi统计信息的服务地址 ,只能本机访问
pidfile = /hoem/repo/project/uwsgi.pid # 保存pid信息,方便停止服务和重启的时候用,以及保存pid文件的地址
daemonize = ./log/uwsgi.log # 后台运行时记录uwsgi的运行日志
lazy-apps = true # 重启 ,当需要连接cassandra时,uwsgi无法启动服务,可以使用该选项设置
master-fifo = /opt/mt-search/web-service/mfifo # 使用chain-reloading 逐个work重启,服务不中断, 命令是 echo c > mfifo
touch-chain-reload = true # 修改app.py内任意东西 保存即可重启uwsgi master = true #主进程
配置好文件后进入.ini文件所在的目录
uwsgi --ini uwsgi.ini #启动uwsgi
uwsgi --stop uwsgi.pid #结束uwsgi
4.安装配置nginx
在安装nginx之前我们要安装nginx所需要的相关依赖
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
http://nginx.org/en/download.html 下载nginx压缩包
通过xtfp传输到服务
在自己要的目录位置创建一个nginx文件夹
mkdir /usr/local/nginx
tar -zxvf 安装包名 #解压压缩包
./configure --prefix=/usr/local/nginx #安装到/usr/local/nginx目录
make #编译
make install #安装
ps -ef | grep nginx #查看nginx进程
安装好后进行nginx的文件配置,首先要进入到nginx的配置文件
cd /usr/local/nginx/conf/nginx.conf
vim进入文件
#user nobody;
#工作进程数,一般配置成和cpu数量一致
worker_processes 1;
#全局错误日志及pid文件存放位置
error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#nginx 启动master进程pid号
#pid logs/nginx.pid;
events { #标识单个worker进程的最大并发数 worker_connections 1024; }
http {
#引入 mime 类型定义文件
include mime.types;
default_type application/octet-stream;
#设置日志生成格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#连接的超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
#解开注释就是开启gzip压缩
#gzip on;
include /home/repo/project/*.conf #引入的conf配置文件
server{
listen 80;#监听80端口
server_name localhost #可以使用localhost本地访问
location /{ root html;#引入的html文件所在的目录
index index.html index.htm #html页面}
#错误提示页面 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
}
主配置文件配置完成后我们进入到我们的项目conf配置文件
在上面配置的过程中我include了一个conf文件所在的地方,他表示我所在的文件目录下的conf文件可以进行引入,现在我们要对这个conf文件进行配置。
进入我们引入conf目录后建立一个以.conf为后缀的文件 例如 agent.conf
进入文件
upstream agent {
server 192.168.0.244:8000;#uwsgi开启的服务器地址
}
server {
listen 443; #nginx监听的接口,也就是你外网访问的端口
server_name chahui;
charset utf-8;
location /static {
alias /home/repo/shareAPI/static;#静态文件
}
location / {
uwsgi_pass 192.168.0.244:8000; #uwsgi的接口
include uwsgi_params;
uwsgi_param UWSGI_SCRIPT AAshare.wsgi; #wsgi的目录
uwsgi_param UWSGI_CHDIR /home/repo/shareAPI/; #项目目录
}
}
配置好后重启nginx
进入到nginx/sbin文件夹下输入./nginx -s reload
页面访问
uwsgi:
以上就是nginx+uwsgi的django项目部署