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

你可能感兴趣的:(Django+Nginx+Gunicorn部署博客)