假设:
操作系统为原生Ubuntu 18.04 LTS当前登录用户为xyzWeb程序目录: /home/xyz/myblog虚拟环境运行启动脚本: /home/xyz/runinenv.sh /home/xyz/runinenv.sh内容如下: #!/bin/bash export SOME_ENV=test-message VENV=$1 if [ -z $VENV ]; then echo "usage:runinenv [virtualenv_path] CMDS" exit 1 fi source ${VENV}/bin/activate shift 1 echo "Executing $@ in ${VENV}" exec "$@" deactivate安装必须的软件
root$ apt-get install git w3m vim htop tree python3-pip virtualenv nginx supervisor -y创建虚拟环境、安装包、测试程序
cd ~ virtualenv v3web --python=python3 source /home/xyz/v3web/bin/activate cd /home/xyz/myblog pip install -r requirements.txt python run.py deactivate使用supervisor管理进程(后台运行)
cd /etc/supervisor/conf.d/ vim demo.conf/etc/supervisor/conf.d/demo.conf内容如下:
[program:demo] user=xyz directory=/home/xyz/myblog/ command=/bin/bash /home/xyz/runinenv.sh /home/xyz/v3web python /home/xyz/myblog/run.py autostart=true autorestart=true startsecs=5 stopsignal=HUP stopasgroup=true stopwaitsecs=5 stdout_logfile_maxbytes=20MB stdout_logfile=/var/log/supervisor/%(program_name)s-out.log stderr_logfile_maxbytes=20MB stderr_logfile=/var/log/supervisor/%(program_name)s-err.log配置要点:
[program:<名称>]user=<运行用户>directory=<启动目录>command=<运行的命令>environment=<环境变量> 参考: Supervisor and Environment Variablessupervisor管理命令
# 重新加载配置 sudo supervisorctl reload # 查看进程状态 sudo supervisorctl status # 停止/启动/重启某个进程(此处为demo) sudo supervisorctl stop/start/restart demoLinux基础命令
# 查看和python相关的tcp连接 netstat -antp | grep python # 查看和python相关的进程 ps uax | grep python # 杀死指定名称的进程(此处为python) sudo pkill python配置nginx
cd /etc/nginx/conf.d/ sudo vim demo.conf/etc/nginx/conf.d/demo.conf内容如下:
server { listen 80; listen [::]:80; server_name blog.cp9648.xyz; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:5000/; # proxy_pass http://10.0.0.10:8999/; proxy_redirect off; } location /static/ { alias /home/xyz/myblog/static/; } }nginx管理命令
# 重启nginx服务(会重新加载配置文件) sudo service nginx restart # 启动、停止服务器 sudo service nginx start/stopnginx静态文件403解决方案
修改django的默认admin路径
python manage.py collectstatic修改nginx配置文件(改完了需要重启)
vim /etc/nginx/nginx.conf将如下的行(nginx运行用户默认为www-data)
user www-data;改为(将nginx运行用户改为root)
user root;一般情况下,也将nginx运行用户改为当前用户(此处为xyz)
user xyz;重启服务器
sudo service nginx restart转载于:https://www.cnblogs.com/cp9648/p/10488909.html