• django+nginx+uwsgi


    连接django和uwsgi,实现简单的WEB服务器
    我们假设你的Django项目的地址是/home/ubuntu/mysite
    然后,进入项目目录下 cd /home/ubuntu/mysite,就可以执行以下命令:
    uwsgi –http :8000 –chdir /home/ubuntu/mysite –module django_wsgi
    这样,你就可以在浏览器中访问你的Django程序了。
    选择一个浏览器输入:http://115.159.214.215:8000/
    注意:IP地址换成自己的主机IP
    所有的请求都是经过uwsgi传递给Django程序的界面展示与django自启的时候一样,

    Nginx安装
    1、安装
    sudo apt-get install nginx

    2、查看nginx版本
    -v 显示 nginx 的版本:nginx -v
    -V 显示 nginx 的版本,编译器版本和配置参数:nginx -V

    3、测试是否已经成功安装好nginx
    a、启动Nginx
    /etc/init.d/nginx start #启动
    /etc/init.d/nginx stop #关闭
    /etc/init.d/nginx restart #重启
    b、启动nginx后,在浏览器中访问自己的主机IP:
    http://115.159.214.215/
    或者 http://115.159.214.215:80
    可看到如下界面表示成功安装:

    实现Nginx与uWSGI的连接
    为了实现Nginx与uWSGI的连接,两者之间将采用soket来通讯方式。
    在本节中,我们将使用uWSGI配置文件的方式来改进uWSGI的启动方式。
    假定你的项目目录是 /home/ubuntu/mysite
    我们将要让Nginx采用8077端口与uWSGI通讯,请确保此端口没有被其它程序采用。
    注意,请确定你在上面步骤中 django_wsgi.py 文件已经存在了。
    新建一个XML文件:djangochina_socket.xml
    将它放在你的项目目录下,如:/home/ubuntu/mysite

    :8077 /home/ubuntu/mysite django_wsgi 4 uwsgi.log :8077 /home/ubuntu/mysite django_wsgi 4 uwsgi.log

    在上面的配置中,我们使用 uwsgi.log 来记录日志,开启4个进程来处理请求。
    这样,我们就配置好uWSGI了。

    配置Nginx
    我们假设你将会把Nginx程序日志放到你的目录 /var/log/nginx 下,请确保该目录存在。
    我们假设你的Django的static目录是 /home/ubuntu/mysite/static
    media目录是 /home/ubuntu/mysite/media
    请确保这些目录存在。
    我们假设你的域名是 www.you.com (在调试时你可以设置成你的机器IP)
    我们假设你的域名端口是 80(在调试时你可以设置一些特殊端口如 8070)
    基于上面的假设,我们为 /etc/nginx/nginx.conf 添加以下配置:
    在http{…}中的最后一行添加:

    server {

        listen   80;
        server_name 115.159.214.215;
        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
    
        #charset koi8-r;
    
        #access_log  logs/host.access.log  main;
    
        location / {
         include             /etc/nginx/uwsgi_params;
         uwsgi_pass     127.0.0.1:8077;
        }
    
        #error_page  404              /404.html;
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    
        location /static/ {
            alias  /home/ubuntu/mysite/static/;
            index  index.html index.htm;
        }
    
        location /media/ {
            alias  /home/ubuntu/mysite/media/;
        }
    
    location /templates/ {
            alias  /home/ubuntu/mysite/templates/;
        }
    
    }
    

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    在上面的设置后,可以让Nginx来处理静态文件(/static/ 和 /media/ )。非静态文件请求Nginx会发给 socket 8077,然后让uWSGI来进行处理。

    Nginx+uWSGI+Django的实现方式
    在完成上面配置后,需要按以下步骤来做:
    1、重启Nginx服务器,以使Nginx的配置生效。
    nginx -s reload (root权限执行)
    重启后检查Nginx日志是否有异常。
    vim /var/log/nginx/error.log
    查看 error.log 文件内容是否有异常信息

    2、启动uWSGI服务器
    cd /home/ubuntu/mysite
    uwsgi -x djangochina_socket.xml
    检查日志 uwsgi.log 是否有异常发现。
    uwsgi.log 日志文件生成在项目目录下,所以进入项目目录执行 vim uwsgi.log 查看

    3、访问服务
    基于上面的假设你的域名是www.you.com(本节我设置的是IP地址)
    因此,我们访问 www.you.com
    我用的IP访问:http://115.159.214.215:8077/
    如果发现程序与 单独使用Django启动的程序一模一样时,就说明成功啦!

    4、关闭服务的方法
    将uWSGi进程杀死即可。
    sudo killall -9 uwsgi

    注意:
    1、html文件中静态文件的路径设置,应设置为能够通过nginx访问的地址(巨坑啊,不然会一直加载不了css样式和js文件)

    我命由我,不由天
  • 相关阅读:
    「CSP模拟」模拟测试6
    「CSP模拟」模拟测试5
    镇黑板
    求和「Dirichlet 前缀和」
    二叉搜索树「区间DP」
    序列
    [CSP模拟]异或帽子+传话游戏+全球覆盖+幂次序列
    MySQL常用引擎及优缺点
    Django项目远程开发环境搭建
    MySQL8.0安装与配置
  • 原文地址:https://www.cnblogs.com/duhy/p/11658021.html
Copyright © 2020-2023  润新知