网站建设13天-服务器部署
标签 Python Django Ubuntu
部署文件在我的Github项目可找到:https://github.com/yemaobumei/mysite
阿里云服务器需配置网络安全组
HTTP 显示为 80/80。 实例作为网站或 Web 应用的服务器。
- 第一步 安装nginx,fabric,virtualenv 注意安装包对应的python版本
sudo apt-get install nginx sudo service nginx start sudo pip3 install Fabric3==1.14.post1 sudo pip2 install virtualenv
此时输入网站域名或者IP就能看到welcome to nginx!测试页面 - 第二步 运行自动部署文件fabfile.py
在包含fabfile.py文件的目录下,运行
fab deploy
输入域名和linux密码
-
第三步 使用sed配置Nginx和Gunicorn
在deploy_tools文件夹下保存了默认配置,只需稍作修改将内容复制到系统相应目录下即可
sed "s/SITENAME/yemaobumei.cn/g" deploy_tools/nginx.template.conf | sed "s/USER/alien/g" | sudo tee /etc/nginx/sites-available/yemaobumei.cn
fabric中进行文本替换的函数叫sed,先把SITENAME替换成网站地址,再把USER替换成当前系统用户名,然后使用管道操作(|)把文本留传给拥有root权限用户写入系统/etc/nginx/sites-available/yemaobumei.cn文件里。 激活这个配置文件的虚拟主机:
sudo ln -s /etc/nginx/sites-available/yemaobumei.cn /etc/nginx/sites-enabled/yemaobumei.cn
然后编写Upstart脚本:
sed "s/SITENAME/yemaobumei.cn/g" deploy_tools/gunicorn-upstart.template.conf | sed "s/USER/alien/g" | sudo tee /etc/init/gunicorn-yemaobumei.cn.conf
最后启动这两个服务:
sudo service nginx reload sudo start gunicorn-yemaobumei.cn
为了能获取访问者的ip,特地在nginx.template.conf 加入了以下一段
location / { proxy_set_header Host $host; proxy_pass http://unix:/tmp/yemaobumei.cn.socket; #IP_adress proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
同时注意在ubuntu16.04中upstart无法使用,改成了systemd service
因此在第三步有关upstart部分改为:
sed "s/SITENAME/yemaobumei.cn/g" deploy_tools/sysd.service | sed "s/USER/alien/g" | sudo tee /etc/systemd/system/yemaobumei.cn.service
最后启动服务
sudo service nginx reload
sudo systemctl daemon-reload
sudo systemctl enable yemaobumei.cn.service
sudo systemctl start yemaobumei.cn.service
最新评论