node.js - nginx 如何设置 网站 移动网站 api 配置?

 雷神天在飘雪_804_959 发布于 2022-11-03 17:02

我用nodejs 的express 搭建的 网站在路由/pc下面 移动网站在/m 下面 然后api数据请求都在路由/api下面

例如www.xxx.com 域名指向根目录/ 那么 www.xxx.com/pc 就是网站 www.xxx.com/m 就是移动网站, 其中ajax请求数据都是请求到/api的路由下面

现在我要 做到 www.xxx.com 是pc网站 直接指向到/pc目录, 访问www.xxx.com就是pc网站, 不要之前的www.xxx.com/pc的路径了. 同理 m.xxx.com 指向/m目录 就是移动网站,

这就遇到一个问题, api都无法访问了, 因为访问www.xxx.com时 ajax请求的数据路由就是/pc/api 路径就不对了,不是/api了

请问nginx 如何配置能做到该需求, 不想给api 单独设置一个域名 例如单独设置api.xxx.com 因为这样就不是一个域了,需要跨域很麻烦.

2 个回答
  • 1.跨域没有你想的那么麻烦,设定cors头或者退一步,因为你的主域是没有跨的,用iframe跨域就行了;
    2.对nginx的设置,每个虚拟服务器设置个proxy_pass 就行了

    server{
        server_name  www.xxx.com;
        location /{
            proxy_pass http://your_express_url;
        }
    }
    
    server{
        server_name m.xxx.com;
        location /{
            proxy_pass http://your_express_url/m;
        }
        location /api{
             proxy_pass http://your_express_url;
        }
    }
    2022-11-12 01:50 回答
  • 写个location不就好了,先处理/api

    2022-11-12 01:50 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有