V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
KIDJourney
V2EX  ›  NGINX

nginx url 重写的问题

  •  
  •   KIDJourney ·
    KIDJourney · 2015-12-03 21:13:34 +08:00 · 2671 次点击
    这是一个创建于 3278 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近要给学校写个东西,但是学校只给了一个域名,也不能改 dns 服务器,于是就有了如下奇怪的要求:

    域名是 xxx.xxx.xxx
    这个域名下存在多个服务
    比如社团是 xxx.xxx.xxx/club 校内新闻是 xxx.xxx.xxx/news

    如何让这两个请求指向不同的 root
    同时使 xxx.xxx.xxx/club/viewclub/1 这类请求在应用看来是 /viewclub/1 呢?

    求大腿指教。。。。以前没有写过这种配置。。。。
    9 条回复    2015-12-06 15:08:48 +08:00
    wizardoz
        1
    wizardoz  
       2015-12-03 21:42:38 +08:00
    我滴天,这是 nginx 最基本的配置
    wizardoz
        2
    wizardoz  
       2015-12-03 21:47:56 +08:00   ❤️ 3
    在一个 server 下写多个 location 就可以了

    location /club {
    root /location/to/club/static/files;
    }

    location /news {
    root /location/to/news/static/files;
    }
    然后静态页面在通过自己的接口取数据。

    如果前后端不是分离的,就用反向代理,定向到不同的端口或内网服务器上。
    location /club {
    rewrite /club/(.*) /$1 break;
    proxy_pass http://your.club.site;
    proxy_set_header Host 'your.club.site';
    }
    your.club.site 可以是没有购买的域名,只要你配置另一个 server HostName 为 your.club.site 就行了。
    KIDJourney
        3
    KIDJourney  
    OP
       2015-12-03 22:51:15 +08:00
    @wizardoz 对不起啦。。。。。
    KIDJourney
        4
    KIDJourney  
    OP
       2015-12-03 22:51:38 +08:00
    @wizardoz 好的,多谢了,我去文档里看看各个参数的意义。
    lution
        5
    lution  
       2015-12-03 22:56:32 +08:00
    @wizardoz 非常详尽👍
    KIDJourney
        6
    KIDJourney  
    OP
       2015-12-04 20:23:01 +08:00
    @wizardoz 不好意思。。再打扰一下。。。
    如果按照这个配置的话
    location /news {
    root /location/to/news/static/files;
    }
    在寻找资源的时候就会进入 /location/to/news/static/files/news 里面寻找吧。。。
    /location/to/news/static/files/news/index.php 获取的请求路径是 /news ,能不能让他变成 /呢?
    wizardoz
        7
    wizardoz  
       2015-12-05 14:46:01 +08:00   ❤️ 1
    @KIDJourney 将 root 换成 alias 就可以了。
    KIDJourney
        8
    KIDJourney  
    OP
       2015-12-06 11:28:59 +08:00
    @wizardoz 再次感谢!
    KIDJourney
        9
    KIDJourney  
    OP
       2015-12-06 15:08:48 +08:00
    @wizardoz
    还是不行呢。。。。
    应用接受到的请求路径还是 /news
    .....
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1098 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:54 · PVG 02:54 · LAX 10:54 · JFK 13:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.