zoukankan      html  css  js  c++  java
  • Django部署——uwsgi+Nginx

    Django部署——uwsgi+Nginx(超详细)

     

    环境:
    python3.6
    centos 7
    Django1.11
    用Django写了个小网站,只能在自己本地跑一跑!这怎么行?听说可以部署在云服务器上,这样别人就可以访问了!

     
    2321566-919deb36922d0f8c.gif
    biu~

    从哪儿开始?就从Django开始吧!老规矩,按步骤:

    1、本地跑起来Django

    这里不讲Django项目实施过程,假设你已经写了一个Django项目,并且在本地127.0.0.1:8000能够跑起来。喏,给你个参考,项目大概长这样:

    Django Project
    • kindle目录为我创建的Django App

    2、修改项目配置

    也就是项目目录下的settings.py文件,主要强调几个地方:
    ①关闭DEBUG模式:

    具体为

    关闭DEBUG模式

    ②修改ALLOWED_HOSTS:

    具体为

    ALLOWED_HOSTS

    ③配置静态文件存放路径:

    具体为

    静态文件路径

    修改好配置之后执行:

    python manage.py collectstatic

    将项目用到的静态文件复制到项目根目录下的static文件中

    静态文件夹

    3、安装uwsgi和Nginx

    这个没什么说的。。。在自己的云服务器上装好这两个工具
    安装好uwsgi后最好验证一下,验证方法:
    创建一个test.py文件:

    def application(env, start_response):
        start_response('200 OK', [('Content-Type', 'text/html')])
        return [b'Hello world!']    #python3
        # return ['Hello world!']    #python2

    启动uwsgi服务器:

    uwsgi --http :8000 --wsgi-file test.py

    如果可以正常启动而不报错那就应该没问题,不放心的话再在终端验证一下:

    wget http://127.0.0.1:8000
    看一下能否正确获取内容

    4、配置项目的uwsgi

    在项目所在文件夹下创建uwsgi.ini配置文件,也就是这里

    uwsgi.ini

    在uwsgi.ini里进行如下配置:

    [uwsgi]
    # Django-related settings
     
    # 这里的端口可以根据自己需要设定
    socket = 127.0.0.1:8001        
     
    # the base directory (full path)
    # 这个是Django项目的根目录,也就是包含App的那个目录,仔细对照上图
    chdir           = /home/python/book2kindle
     
    # Django s wsgi file
    # 这里是项目名(不是App名).wsgi
    module          = book2kindle.wsgi
     
    # process-related settings
    # master
    master          = true
     
    # maximum number of worker processes
    processes       = 32
     
    # ... with appropriate permissions - may be needed
    # chmod-socket    = 664
    # clear environment on exit
    vacuum          = true
     
    plugin python = true
     
    # 这个是项目的虚拟python环境,如果没用虚拟环境,可以不设定
    home = /home/python/book2kindle_env

    5、配置项目的nginx

    找到nginx的配置文件夹,centos7的nginx配置文件在/etc/nginx下,该路径下有一个nginx.conf总配置文件,还有两个文件夹./conf.d、./default.d,我们将nginx.conf复制一份到conf.d文件夹下,命名为nginx.conf(或者项目名.conf)进行如下修改(根据中文注释进行相应配置即可):

    http {
        upstream django {
            # 注意这里的server要和uwsgi.ini配置文件中的socket保持一致
            server 127.0.0.1:8002; # for a web port socket
        }
        server {
            listen       80;
            server_name  xxx.com;  # 这里填自己的域名或者服务器的ip(决定你今后访问网站的方式)
            charset      utf-8;
            root         /usr/share/nginx/html;
            location / {
            root        /home/python/book2kindle/kindle;  # 这是Django App的路径
                uwsgi_pass  django;
                include     uwsgi_params; # the uwsgi_params file you installed
            }
            location /static {
                # Django项目静态文件的路径
                alias /home/python/book2kindle/static; 
            }
        }
        
    }

    6、启动uwsgi和nginx

    进入uwsgi.ini文件夹下执行:

    uwsgi --ini uwsgi.ini

    在终端执行:

    service nginx restart

    然后就可以根据域名(前提是要将域名解析到服务器ip地址)或者服务器ip来访问网站了!

    OK,完事!就是这么简单!

     
    2321566-3374c05a3a6590ae.gif
  • 相关阅读:
    Binary Tree Inorder Traversal
    Populating Next Right Pointers in Each Node
    Minimum Depth of Binary Tree
    Majority Element
    Excel Sheet Column Number
    Reverse Bits
    Happy Number
    House Robber
    Remove Linked List Elements
    Contains Duplicate
  • 原文地址:https://www.cnblogs.com/yikemogutou/p/12497580.html
Copyright © 2011-2022 走看看