背景:
本文以ubuntu服务器为例来说明几种设置域名跳转的情况

设置域名301跳转的几种途径:

1、域名解析处设置显性URL

比如解析处可设置a.com显性解析到b.com

2、nginx配置文件处跳转

a、proxy跳转
/etc/nginx/conf.d下面设置跳转

server { listen 80; server_name a.com;

location / { proxy_pass http://127.0.0.1:9081; autoindex on; include conf.d/proxy.conf; deny all; } }


b、rewrite跳转
/etc/nginx/sites-enabled路径下设置

server { listen 80; server_name a.com c.com; …….. rewrite ^(.*) https://b.com$1 permanent; }

尤其注意:如果此处server处的域名有别名,那么也会跳转;比如上述c.com也会跳转到b.com,即使没有配置其他的跳转。

3、程序中设置跳转

比如PHP程序中就可以设置这种域名跳转。

扩展:阿里云SLB端口转发
阿里云SLB端口转发

如果服务只是一个后端接口,没有nginx配置前端项目,可以通过阿里云的SLB做端口的转发

比如一个java接口端口是9900,可以配置http和https域名访问
设置域名跳转的几种方式 - 图1
上述端口80转发到9900端口,这么访问时只需要使用a.test.com访问项目即可

如果需要配置https,则可以使用443转发到9900,注意https中健康检查的路径一定要是一个能够返回2XX或者3XX的URL。如果健康检查通过,那么直接访问https://a.test.com即可