首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
V2EX  ›  问与答

请教一个 nginx 的问题, nginx 可以根据 url 前缀的不同来重定向到不同的端口吗?

  •  
  •   zhanglintc · 2017-03-13 11:26:10 +08:00 · 1833 次点击
    这是一个创建于 954 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如 abc.example.comxyz.example.com 分别用 nginx 定向到服务器的 3000 端口和 3001 端口?
    第 1 条附言  ·  2017-03-13 14:42:52 +08:00

    我想了一下, 既然我解决了我的问题, 还是总结下写出来, 万一还有人需要看呢.

    目前我是这样写的:

    server {
        listen          80;
        server_name     abc.example.com;
        location / {
            proxy_pass  http://127.0.0.1:3000;
        }
    }
    
    server {
        listen          80;
        server_name     xyz.example.com;
        location / {
            proxy_pass  http://127.0.0.1:3001;
        }
    }
    
    5 回复  |  直到 2017-03-13 12:48:04 +08:00
        1
    predator   2017-03-13 11:38:32 +08:00
    一般情况下 abc.example.comxyz.example.com 在 nginx 中是两个不同的 server 段
    也就是:

    server {
    listen 80;
    server_name abc.example.com;
    ……
    }

    如果只有少量需要“定向”,那么先每个域名来一套配置

    如果是要重定向,用:
    return 301 http://abc.example.com:3000$request_uri;

    如果是转发给监听在 3000 端口的另一个服务器处理,那么用:
    proxy_pass http://127.0.0.1:3000;
        2
    powergx   2017-03-13 11:45:37 +08:00
    就是反向代理啊, nginx 拿手活
        3
    zhanglintc   2017-03-13 11:54:42 +08:00 via iPhone
    @predator @powergx

    我的需求就是我有两个服务,分别用了两个端口,比如 3000 和 3001 。我只有一个域名,所以我想根据 abc 和 xyz 来分别导向这两个端口,就感觉两个服务各自有了一个域名。

    然后不知道怎么写这个配置。 @predator 写的内容没太看明白。😂
        4
    Citrus   2017-03-13 12:36:41 +08:00 via iPhone
    @zhanglintc 如果你没看明白一楼的回答,建议你要不认真读一下 Nginx 入门相关文档,要不直接让别人帮你配置了吧。。。
        5
    zhanglintc   2017-03-13 12:48:04 +08:00
    @Citrus #4 的确是才入门. 后来回味儿了一阵一楼的话, 差不多明白了. 现在成功了.
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2698 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 13:11 · PVG 21:11 · LAX 06:11 · JFK 09:11
    ♥ Do have faith in what you're doing.