Nginx地址重定向使用
来源:互联网 发布:天猫旗舰店的流量数据 编辑:程序博客网 时间:2024/05/22 13:58
Nginx地址重定向使用
在使用Nginx作为服务器时,经常遇到的需求就是对地址进行重定向(301重定向),而重定向可以解决很多服务器应用需求,而且Nginx实现这一切都比较简单。那么,我们常见的重定向有哪些?这里我就罗列几个常见的需求:http重定向到https、www自动补全、redirect对https的支持。当然,也有很多人在使用rewrite重写地址实现重定向,但在这里并不推荐,因为它在不同的Nginx版本是有缺别的,而301是推荐使用的,因为它是http/https通信协议的标准,与服务器本身无直接关系。
l http到https
l www自动补全
l 跳转对https支持
一、http到https
Https在Nginx的配置,读者可以查看文章《Nginx的CA证书使用总结》,这里有它详细的实现过程。其中,如何实现http到https的切换,就用到了Nginx的301重定向实现,具体如下样子(放在nginx.conf的Server区域):
if ($scheme = http) {
return 301https://$server_name$request_uri;
}
二、www自动补全
www自动补全,指的是不需要输入www,仅输入一级域名即可自动在前面添加www,比如:xxx.com为一级域名,www.xxx.com为二级域名,那么输入xxx.com就可以自动切换为www.xxx.com访问。上面的情况是同一个域名的自动定位,其实我们可以直接在域名管理平台,如:阿里云上直接添加一个xxx.com记录值,将主机值设为@即可(推荐),并不是必须通过配置Nginx实现。
另外一种情况,就是在www.xxx.com中重定向到yyy.com一级域名,并实现自动定位到www.yyy.com二级域名,那么同样可以先在域名管理平台添加yyy.com一级域名,遇上面类似操作。然后,在Nginx添加如下配置即可:
server_name yyy.com
if ($host =’yyy.com’) {
return 301 http://www.yyy.com$request_uri;
}
如果想同时跳转到https,仅需要如下配置:
server_name yyy.com
if ($host =’yyy.com’) {
return 301 https://www.yyy.com$request_uri;
}
三、跳转对https支持
很多时候,我们所部署的应用程序,通过其本身提供的redirect实现跳转功能时,如果跳转前为https方式请求,跳转后,则协议默认改为http了,结果引发了很多需要https才能访问的操作都不能进行。那么,此时我们就需要配置nginx.conf,使其在跳转时,支持自动从http跳转到https,其实配置较简单,具体如下:
location /xxx {
proxy_set_header Host$host;
proxy_set_headerX-Forwarded-For $remote_addr;
proxy_pass https://www.yyy.com:port;
index index.htmlindex.htm index.php;
proxy_redirect http://$scheme://;
}
正如上面所示,该配置情况是使用nginx作为代理服务器,通过proxy_pass中转到tomcat服务器(这是较常见的使用)。那么,通过proxy_redirect配置,就可以完美实现应用程序使用redirect跳转时,做到保留对https的切换,因为大部分应用程序的redirect仅支持默认的http协议方式。
实际上,Nginx的301重定向可以解决很多需求,需要读者灵活使用即可。
- Nginx地址重定向使用
- nginx地址重定向
- 使用Nginx实现301重定向详解
- nginx重定向规则
- nginx 301重定向
- nginx虚拟主机重定向
- nginx 301重定向
- nginx 重定向例子
- nginx 域名重定向
- nginx实现重定向
- 获取重定向地址
- IP地址重定向
- nodejs地址重定向
- nginx rewrite arg 带问号的地址转发参数处理?Nginx重定向的参数问题
- [nginx] 怎么配置nginx rewrite,才不会引起浏览器url地址重定向?
- nginx 此页面重定向不正确(检测到该服务器正在将此地址的请求循环重定向)
- [urlrewrite]使用urlrewrite进行地址自动重定向
- Nginx 301重定向域名
- MySQL Distinct 去掉查询结果重复记录
- 微信公众号自定义二维码关注后自动为粉丝分组
- Android Studio 配置release的签名
- 关于二叉树一些算法
- 深度学习tips-搭建深度学习模型,不知如何下手?
- Nginx地址重定向使用
- Gradle编译时下载依赖失败解决方法
- 存储过程 连表 更新 注意
- 2017微软秋季校园招聘在线编程笔试-#1401 : Registration Day
- 常见的SQL操作
- ios面试题收录
- 导航条
- JavaScript学习(一)将实例状态存储在实例对象中,方法存储在原型中
- AIDL简介