最近写了个网站的demo想部署到买的阿里云上,真的艰辛啊,不知道为什么我会遇到那么多奇怪的问题。因此记录一下。
首先是进入服务器,安装pip3,可以先update下apt-get。
apt-get install python3-pip
然后安装虚拟环境
pip3 install virtualenv
创建虚拟环境并激活环境
virtualenv venv
source venv/bin/activate
然后通过scp或者git将项目传到服务器。
然后将环境配置下,通过pip freeze > requirements.txt 将安装的包写入文件,然后一键安装
pip3 install -r requirements.txt
然后安装uwsgi
pip3 install uwsgi
并安装nginx
apt-get install nginx
下面进行配置,首先在项目的目录中创建一个uwsgi.ini的配置文件
[uwsgi]
socket=127.0.0.1:8080
wsgi-file=runserver.py //启动文件
chdir = /home/mrgj //项目根目录
home = /home/mrgj/venv //项目的虚拟环境
callable=app
master=true
logto = /home/mrgj/log/text.log //日志的位置
processes=4
threads=2
stats=127.0.0.1:9191
可以直接运行
uwsgi uwsgi.ini
然后修改nginx的默认配置文件,一般在/etc/nginx/sites-enabled/default,可以直接删掉写一个新的。
server {
listen 80;
server_name 47.102.150.26;
charset utf-8;
client_max_body_size 75M;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8080;
#uwsgi_param UWSGI_PYTHON /home/mrgj/venv/bin/python;
#uwsgi_param UWSGI_CHDIR /home/mrgj/runserver;
#uwsgi_param UWSGI_SCRIPT runserver:app ;
}
}
现在重启下nginx,后在运行uwsgi.ini
service nginx restart
大功告成,不过你会发现不能一直 开着,要使其随同服务器启动并作为后台服务运行就要用到Supervisor
先安装
apt-get install supervisor
然后在/etc/supervisor/conf.d/创建一个新的配置文件my.conf
[program:mrgj]
command=uwsgi --ini /home/mrgj/uwsgi.ini
directory=/home/mrgj
user=root
autostart=true
autorestart=true
stdout_logfile=/home/mrgj/log/uwsgi_supervisor.log
这里和上面差不多将相应的地方换成你自己的目录就行啦 ,然后重载下
supervisorctl reload
检查uwsgi进程是否正常运行
ps aux | grep uwsgi
至此大工告成,愉快的访问自己的网站吧!