14 前后端分离部署

Posted dorian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了14 前后端分离部署相关的知识,希望对你有一定的参考价值。

1 uwsgi.ini

  uwsgi.ini端口设置为9000,是因为nginx转发端口要设置为8000

  直接走http协议。在nginx.conf配置里更改。

# 配置文件:这一行必须有,如果[uwsgi]直接顶行,ubuntu18.04找不到
[uwsgi]
#端口
# 服务器地址,不是外网地址,是服务器的ip地址
# socket = 172.17.0.11:9000
http = 172.17.0.11:9000
# Django工程目录
chdir = /publish/django_vue
# wsgi的位置
module = django_vue.wsgi
# 设置一个主进程
master = true
# 开放四个进程
processes = 4
# 每进程开放2个线程
threads = 2
vacuum = true
# 保存uwsgi.pid
pidfile = uwsgi.pid
log-maxsize = 500000000
logto = /tmp/uwsgi.log
buffer-size = 32768
enable-threads = true
reload-mercy = 8
harakiri = 60

2 nginx.conf

  因为django本身也支持静态页面,所以,不能把uwsgi和vue配置在一个服务里。

  而同一台服务器,只有一个80端口,如果不放在同一个服务器,就意味着要么django不占80端口,要么vue不占80端口。

  矛盾就来了!

  微信信息转发是后端做的,而微信要求后端必须是80商品,而用户访问又是访问的前端,前端要通过微信网页授权,而微信授权网页,也必须是80端口。

  因此,只能配置在一个服务器,由这个服务来分发。

  而vue是打包后的动态路由,nginx不知道如何去访问vue自身的路由,因此,vue必须是根目录访问。

  只有分离django,特别注意的是:location 后面的 / 并不表示根目录,在 / 后面增加的必须是APP名。因此,每个APP都必须配置一个分路由,nginx根据不同的APP来分发。

  nginx.conf的默认目录是:/usr/local/nginx/conf

 

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  bl95yteo.xiaomy.net;

        location /group1/M00 {
            root /opt/fdfs/storage;
            ngx_fastdfs_module;
        }
        location / {
            root /opt/vue/;
            index index.html;
            try_files $uri $uri/ /index.html;
        }
        location @router {
            rewrite ^.*$ /index.html last;
        }
        location /Assistants/ {
            include /usr/local/nginx/conf/uwsgi_params;
            proxy_pass http://172.17.0.11:9000;
        }
        location /Consumers/ {
            include /usr/local/nginx/conf/uwsgi_params;
            proxy_pass http://172.17.0.11:9000;
        }
        location /Doctors/ {
            include /usr/local/nginx/conf/uwsgi_params;
            proxy_pass http://172.17.0.11:9000;
        }
        location /Entrance/ {
            include /usr/local/nginx/conf/uwsgi_params;
            proxy_pass http://172.17.0.11:9000;
        }
        location /Managers/ {
            include /usr/local/nginx/conf/uwsgi_params;
            proxy_pass http://172.17.0.11:9000;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
           root   html;
        }
    }
}

 

  

 

  

以上是关于14 前后端分离部署的主要内容,如果未能解决你的问题,请参考以下文章

教你在 centos 中配置 nginx 实现前后端分离

centos7.9 配置nginx实现前后端分离

Liunx前后端项目分离部署

如何在开发时部署和运行前后端分离的JavaWe

将前后端分离项目部署至远程服务器

vue+uwsgi+nginx部署前后端分离项目