美文网首页
Django+Nginx+Gunicorn部署博客

Django+Nginx+Gunicorn部署博客

作者: 达摩君 | 来源:发表于2017-07-09 16:03 被阅读117次

    这年代,身为程序猿,没有自己的一个博客,都不好意思出门。所以决定用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部署博客

          本文链接:https://www.haomeiwen.com/subject/osmshxtx.html