配置文件server location匹配:
1、正则表达式匹配,其中:
* ~ 为区分大小写匹配
* ~* 为不区分大小写匹配
* !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
支持客户SLB中Http监听器重定向到Https监听器
1、客户必须先创建https的监听器及转发规则;
2、客户再创建http的监听器,有跳转选项(跳转已创建的Https监听器),并无须/不可创建Http监听器的转发规则;
3、客户已创建了Https和Http的监听器及转发规则,需要将Http监听器修改跳转至Https监听器,可选择跳转,但必须有确认项,确认后,后台改配,
跳转Https监听器,原Http监听器转发配置失效;
4、监听器跳转不限制端口,即http85可重定向到https446;
5、不支持不支持https重定向到http,这个可以在控制台限制,仅在http协议下支持重定向选择;
6、跳转状态码可选择301;
在server里配置,server_name为请求的http域名,如下配置会跳转到这个域名的https:
server{
listen 80;
server_name www.abc.com;
return 301 https://$server_name$request_uri;
location /test{
}
}
server{
listen 443 ssl;
server_name www.abc.com;
ssl_certificate "/root/tmp/server.cert";
ssl_certificate_key "/root/tmp/server.key";
ssl_session_timeout 10m;
location /test {
}
}
redirect 返回302临时重定向
permanent 返回301永久重定向
return 301 https://$host$request_uri;
server {
listen 80;
server_name abc.com;
rewrite ^/(.*) http://www.ab c.com/$1 permanent; # 跳转到www.abc.com网址上
}
rewrite ^/(.*) http://www.ab c.com/$1 permanent; # 跳转到www.abc.com网址上
rewrite ^(.*) http://www.baidu.com break;
server {
...
rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;
rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra last;
return 403; #没有匹配上,那就返回403咯
...
}
last 本条规则匹配完成后继续向下匹配新的location URI规则
break 本条规则匹配完成后终止,不在匹配任何规则
redirect 返回302临时重定向
permanent 返回301永久重定向
server {
listen 80;
server_name www.abc.com;
rewrite ^(.*)$ https://$server_name$1 permanent;
location /{
}
}
server {
listen 443 ssl;
server_name www.abc.com;
ssl on;
ssl_certificate /etc/nginx/ssl/domain.com.crt;
ssl_certificate_key /etc/nginx/ssl/domain.com.crt;
location /{
}
}
redirect 返回302临时重定向
permanent 返回301永久重定向