我有相同的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的path前缀/foo所有stream量定向到127.0.0.1:3002并从服务器中删除example.net 。
到example.net/bar旧链接应该redirect到状态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
有什么build议么?
您可以像这样修改nginx代理服务器configuration:
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; }