![使用 Nginx 重写来从 IP 更改显示的 URL?](https://linux22.com/image/1483659/%E4%BD%BF%E7%94%A8%20Nginx%20%E9%87%8D%E5%86%99%E6%9D%A5%E4%BB%8E%20IP%20%E6%9B%B4%E6%94%B9%E6%98%BE%E7%A4%BA%E7%9A%84%20URL%EF%BC%9F.png)
我找不到有关此的任何信息,所以我不知道这是否可能,但我想知道:我可以使用 NGINX 的重写模块将显示的 URL 从例如 123.123.123.123:6000/some/path 更改为类似 my.domain.com/some/path 的内容吗?
现在的情况是,我为该服务器注册了一个子域,其中 domainFactory 只是重定向到该服务器。
也许我应该换一种方式来解决这个问题?
答案1
我认为有两种方法可以解释你的问题:
1) 您可能指的是重定向,而不是“重写”(Web 服务器术语)。您希望向客户端显示域,而不是 IP。这就是重定向。
server {
listen 123.123.123.123:6000;
return 301 https://my.domain.com$request_uri;
}
2) 您的意思是来自那里的流量会流向特定的后端服务器。同样,我认为您不是在说重写。
server {
listen 123.123.123.123:6000;
location / {
proxy_pass http://my.domain.com;
proxy_http_version 1.1;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}
}
为了更完整,也许您已经有了 / 的内容,并且您只希望其他服务器提供某些/路径:
server {
listen 123.123.123.123:6000;
location ~ /some/path {
proxy_pass http://my.domain.com;
proxy_http_version 1.1;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}
location / {
proxy_pass http://123.123.123.123:80;
proxy_http_version 1.1;
proxy_set_header Connection "Keep-Alive";
proxy_set_header Proxy-Connection "Keep-Alive";
}
}
最后一种是将多个微服务系统作为一个系统公开的常用技术,从而统一域并简化 SSL。就我而言,我经常将带有 _ 的任何内容映射到我的 Elasticsearch 集群。