Как присоединиться к multiplte node.js экземпляры к единственному домену?

У меня есть на том же IP несколько node.js экземпляров. Каждый экземпляр, работающий на различном домене через nginx, инвертирует прокси.

Например:

map_hash_bucket_size 128;

map $host $backend_servers {
  hostnames;
  default       127.0.0.1:3000;

  example.com   127.0.0.1:3001;
  example.net   127.0.0.1:3002;
  example.org   127.0.0.1:3003;
}

server {
    listen 1.2.3.4:80 default_server;
    server_name  _;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://$backend_servers; # upstream here
        proxy_redirect off;
    }
}

Я хочу направить весь трафик от example.com с префиксом пути /foo кому: 127.0.0.1:3002 и удалите example.net с сервера.

Старые ссылки на example.net/bar должно быть перенаправление с состоянием 301 Перемещенный Постоянно в example.com/foo/bar.

Это - моя заключительная цель:

example.com      >> 127.0.0.1:3001
example.com/foo  >> 127.0.0.1:3002
example.net      >> example.com/foo  # 301 redirect
example.org      >> 127.0.0.1:3003   # no change

Какие-либо предложения?

1
задан 22 April 2015 в 14:02
1 ответ

Вы можете изменить конфигурацию прокси-сервера nginx следующим образом:

server {
    server_name example.com;
    listen 80;
    location / {
        proxy_pass http://127.0.0.1:3001;
                }
    location /foo {
        proxy_pass http://127.0.0.1:3002;
    }
} 
server {
    server_name example.org;
    listen 80;
    location / {
        proxy_pass http://127.0.0.1:3003;
    }
}
server {
    server_name example.net;
    listen 80;
    return 301 http://example.com/foo;
}
3
ответ дан 3 December 2019 в 18:40

Теги

Похожие вопросы