Используя Nginx rewrite, чтобы изменить отображаемый URL с IP?

1527
Nico Weiss

Я не могу найти какую-либо информацию по этому вопросу, поэтому я не знаю, возможно ли это вообще, но мне было интересно: могу ли я использовать модуль перезаписи NGINX для изменения отображаемого URL, например, 123.123.123.123:6000/some/path, что-то вроде my.domain.com/some/path?

В настоящее время у меня есть поддомен, зарегистрированный для этого сервера, где domainFactory просто перенаправляет на этот сервер.

Может быть, я должен подходить к этому по-другому?

0
Я исправил это, правильно настроив свой DNS. Оглядываясь назад, я пытался сделать что-то глупое. Noobs на работе, извините за тратить время, ребята. Nico Weiss 8 лет назад 0

1 ответ на вопрос

0
David Betz

I see two potential ways to interpret your question:

1) You could mean a redirect instead of a "rewrite" (a web server term). You want to show the domain, not the IP to the client. That's a redirect.

server { listen 123.123.123.123:6000; return 301 https://my.domain.com$request_uri; } 

2) You could mean that traffic from there goes to a specific backend server. Again, I don't think you mean rewriting.

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"; } } 

To be more complete, perhaps you already have content for / and you only want some/path to be served by the other server:

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"; } } 

This last one is a common technique to expose multiple micro-service systems as one, thus unifying the domain and simplifying SSL. In my case, I often map anything with _ to my Elasticsearch cluster.

Я уже исправил свою проблему, исправив свою запись DNS. Я просто пытался позволить браузеру показывать другую строку вместо IP. Nico Weiss 8 лет назад 0
Это будет строка `server_name` в Nginx (совпадение по имени, а не по IP). Вы можете использовать Nginx для решения множества проблем с базовыми системами. Это довольно круто. David Betz 8 лет назад 0