nginx的server如何写?

我的vue端口是8090 后台端口是8080
最开始是在vue的proxyTable中配置

'/api': {

            target: 'http://localhost:8080',
            changeOrigin: true,
            pathRewrite: { 
                '^/api': 'http://localhost:8080' //路径重写 
            } 
    },
   

接口如:/api/system/troubles/login
本地可以正常跨域
现在想用nginx实现

server {

    listen 1111;
    server_name localhost;

    location ^~/api/ {
    rewrite ^/api/(.*) /$1 break;
    proxy_pass http://localhost:8080/;
    }
}

listen写8090会报端口占用,随便写个1111无法跨域报404,还是location错误?应该怎么写

阅读 1.7k
2 个回答

都走 nginx 代理才行吧

server {

    listen 8088;
    server_name localhost;
    location / {
        proxy_pass http://localhost:8090
    }
    
    location /api/ {
        proxy_pass http://localhost:8080/;
    }
}

你是想把本地代理到测试环境吗?

upstream local_server{
    # 本地 http://localhost:8080/:
    server 127.0.0.1:8080 max_fails=3     fail_timeout=30s;
}

upstream vue_server{
    # 测试环境 :
    server 202.xxx.xx.xx:80   max_fails=3     fail_timeout=30s;
}


server{
    # 端口号随意
    listen 8090;
    
    location / {  
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
        proxy_pass http://local_server;

    }
   location ~*.(json|jsp|do|action)$   {
    proxy_pass http://vue_server;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题