Django+Nginx+Gunicorn部署博客
这年代,身为程序猿,没有自己的一个博客,都不好意思出门。所以决定用Django搭建自己的框架。我是照着这个追梦博客学习,但是照着他的方法怎么也不能部署成功,折腾了好久,各种Google,各种Baidu。终于是搭建成功,但其间遇到的各种bug决定记录一下,对自己和别人或许有用。
1.连接远程服务器
ssh root@IP地址 -p 端口
然后输入密码即可。
可能有时候你重置了服务器,会出现
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
解决办法:
vim ~/.ssh/known_hosts
删除自己IP地址的相关rsa的信息即可.
2.ubuntu14.04彻底删除nginx
1.先执行一下命令:
1.1 删除nginx,–purge包括配置文件
sudo apt-get --purge remove nginx
1.2 自动移除全部不使用的软件包
sudo apt-get autoremove
1.3 罗列出与nginx相关的软件
dpkg --get-selections|grep nginx
执行1.3的结果:
stephen@stephen-OptiPlex-390:~$ dpkg --get-selections|grep nginx
nginx install
nginx-common install
nginx-core install
1.4 删除1.3查询出与nginx有关的软件
sudo apt-get --purge remove nginx
sudo apt-get --purge remove nginx-common
sudo apt-get --purge remove nginx-core
这样就可以完全卸载掉nginx包括配置文件
2.查看nginx正在运行的进程,如果有就kill掉
ps -ef |grep nginx
看下nginx还有没有启动,一般执行完1后,nginx还是启动着的,如下:
stephen@stephen-OptiPlex-390:~$ ps -ef |grep nginx
root 7875 2317 0 15:02 ? 00:00:00 nginx: master process /usr/sbin/nginx
www-data 7876 7875 0 15:02 ? 00:00:00 nginx: worker process
www-data 7877 7875 0 15:02 ? 00:00:00 nginx: worker process
www-data 7878 7875 0 15:02 ? 00:00:00 nginx: worker process
www-data 7879 7875 0 15:02 ? 00:00:00 nginx: worker process
stephen 8321 3510 0 15:20 pts/0 00:00:00 grep --color=auto nginx
3.kill nginx进程
sudo kill -9 7875 7876 7877 7879
4.全局查找与nginx相关的文件
sudo find / -name nginx*
5.依依删除4列出的所有文件
sudo rm -rf file
这样就彻底删除nginx了
6. 再次重装
sudo apt-get update
sudo apt-get install nginx
3.gunicron使用
首先你要知道 如果没有nginx,光有gunicorn是可以直接运行django项目的。 比如 $ gunicron 你的项目名,再比如 $ gunicorn -w 1 -b IP:端口项目名.wsgi 就可以运行。
其次如果配置是这样的,我的nginx路径是 : /etc/nginx/ , 配置/etc/nginx/sites-enabled/default。 你也许会看到网上说要么编辑nginx.conf 要么新建一个配置文件。 我没有那么做我就一个项目所以直接更改nginx的默认配置。
记得用 sudo vim /etc/nginx/sites-enabled/default
server {
listen 80;
server_name example.org; # 这是HOST机器的外部域名,用地址也行
location / {
proxy_pass http://127.0.0.1:8000; # 这里是指向 gunicorn host 的服务地址址
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
alias /home/ljb/项目名/static/; # 在你项目根目录建一个存放静态资源的文件夹供nginx访问。
}
}
1..proxy_pass 和 一会gunicorn启动时用的IP地址和端口必须一致,因为nginx收到动态请求要通过这个地址转发给gunicorn。
2.重启nginx服务:sudo service nginx restart
如果你现在就从浏览器输入你的地址访问的话 应该是502 bad gateway ,因为你得接着启动的你gunicorn才可以。
gunicorn -w 1(这里填你的服务器cpu核数) -b 127.0.0.1:8000 你的项目名.wsgi
启动成功浏览器里再访问,应该就会成功了。
4.终端命令
mv -f dir1 dir2 移动或重命名一个目录
mkdir 创建一个目录
rmdir 删除一个目录
5.开启虚拟环境和关闭
virtualenv --python=python3 env
运行 virtualenv 命令创建虚拟环境
source env/bin/activate
激活虚拟环境
deactivate
退出环境
继续跟新中。。。。。
我的博客地址http://www.ljb.space