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 前后端分离部署的主要内容,如果未能解决你的问题,请参考以下文章