美文网首页
项目部署(uWSGI+nginx)的实现思路

项目部署(uWSGI+nginx)的实现思路

作者: 65f0ee1aa08d | 来源:发表于2018-10-01 23:21 被阅读0次

    使用uWSGI与nginx是很常见的生产配置,今天在部署的时候一直没有想通其中的关系,反复琢磨之后才搞懂,发现自己是对一开始请求的对象产生了混淆。

    1.uWSGI配置如下所示

    [uwsgi]
    socket=外网ip:端口(使用nginx连接时,使用socket)
    http=外网ip:端口(直接做web服务器,使用http)
    chdir=项目根目录
    wsgi-file=项目中wsgi.py文件的目录,相对于项目根目录
    processes=4
    threads=2
    master=True
    pidfile=uwsgi.pid
    daemonize=uswgi.log
    

    2.nginx配置如下

    使用apt安装的nginx的配置文件处于/etc/nginx/中 (/sites-enabled/default)

    server {
        #listen 80 default_server;
        listen 127.0.0.1:80 default_server;
    
        # ......
        root /var/www/html;
        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;
    
        server_name _;
    
        location / {
            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            # try_files $uri $uri/ =404;
            include uwsgi_params;
            uwsgi_pass 127.0.0.1:8000;
        }
        location /static {
            alias /var/www/test8/static/;
        }
        # ......
    }
    

    listen绑定localhost的80端口,location+地址可以指定去哪里访问资源,/static访问静态文件,/访问不是静态的所有资源,配置之后,就可以通过127.0.0.1:80访问资源,普通请求通过location / 再通过uwsgi_pass转发到127.0.0.1:8000,之后通过uWSGI的socket与项目连接


    与直接做web服务器不同,使用nginx之后相当于在原先的基础上又加了一层门户,通过这个门户,来判断接下来该向哪里访问,既能访问到uWSGI,也能访问静态文件,完美的解决问题

    相关文章

      网友评论

          本文标题:项目部署(uWSGI+nginx)的实现思路

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