前后端分离,axios请求url 写法求解, docker,django,nginx,vue技术栈

项目是前后端分离
第一个疑问,我的配置有没有写错?
第二个疑问, 我的 vue axios URL 怎么写?

img


nginx配置文件 .conf
server {
        listen 9000;
        server_name 127.0.0.1:9000;
        charset  utf-8;
        location / {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:9001;
          uwsgi_pass 127.0.0.1:9002; #这个写这对不对?
}
server {
        listen 80;
        listen [::]:80;
        server_name localhost;
        charset  utf-8;
 default server block.
        location / {
              root /index_nginx/test_office/dist;
              index index.html index.htm;
        }
        error_page 404 /404.html;
        location =/40x.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
}

uwsgi配置文件
[uwsgi]
# 这个文件与settings.py 平级
socket=:9000
#项目绝对路径
chdir=/django_server/pro_test
#项目的相对路径
wsgi-file=pro_test/wsgi.py
#进程个数
process=8
#每个进程的线程个数
threads=2
#pid记录文件
pidfile=uwsgi.pid
#服务的日志文件位置
daemonize=uwsgi.log
#开启主进程管理模式
master=True

您的代码,是我的引导,谢谢您的认真!

vue是单页应用,直接用nginx做文件代理即可

        location / {
你的vue build完的dist文件夹
}

对于后端的服务,你的nginx所在的docker和后端所在的docker需要在同一个虚拟网段里,然后用一个字符串匹配来区分

        location /api {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:9001;
          rewrite "^/api/(.*)$" /$1 break; 
}

你的uwsgi可以用upstream配置,vue可以当静态资源,当然如果你喜欢,依旧起的服务,也可以用nginx配置,但是django要配置跨域