Nginx+Uwsgi+Vue+Django服务器配置

Nginx+Uwsgi+Vue+Django服务器配置

一:背景

项目是前后端分离开发,开发环境是前端起一个服务,后端起一个服务;在部署到服务器时,后端服务使用uwsgi,具体是该请求后端接口还是该访问前端自定义路由,在nginx中做配置

二:Nginx配置

upstream myproject_pool{
    server unix:/tmp/myproject.sock;
}
server {
    listen 80;
    server_name 192.168.1.10;
    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types  text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    client_max_body_size 300m;
    # 后端接口转发
    location /api {
      uwsgi_connect_timeout   3000;
      uwsgi_send_timeout      3000;
      uwsgi_read_timeout      3000;
      uwsgi_param   Host                 $host;
      uwsgi_param   X-Real-IP            $remote_addr;
      uwsgi_param   X-Forwarded-For      $proxy_add_x_forwarded_for;
      uwsgi_param   X-Forwarded-Proto    $http_x_forwarded_proto;
      include uwsgi_params;
      uwsgi_pass myproject_pool;
    } 
    #  前端vue转发
    location / {
        try_files $uri $uri/ @router;
        index index.html;
    }
    root /var/www/myproject/html/dist;  # 注意此项,前端开发完成后,会做打包处理,此文件夹为打包后的文件夹
    index login.html;
    location @router {
        rewrite ^.*$ /index.html last;
    }
}

三:Uwsgi

[uwsgi]
    socket = /tmp/myproject.sock
    pythonpath = /var/www/myproject
    pythonpath = /var/www/myproject/myproject
    pidfile2 = /tmp/myproject.pid
    master = True
    processes = 4
    # uid=root
    # gid=root
    plugin = python
    # daemonize = /data/log/myproject.log
    logto = /data/log/myproject.log
    module = wsgi:application

四:Django

需要说明的一点是,django settings.py配置文件中不需要做静态文件配置,不需要做静态文件收集。

五:启动服务

uwsgi配置文件放在/etc/uwsgi/apps-enables/文件夹下
nginx配置文件放在/etc/nginx/sites-enables/文件夹下
启动uwsgi,启动nginx

sudo service nginx start
sudo service uwsgi start

猜你喜欢

转载自blog.csdn.net/apple9005/article/details/80336086