1) 下面是将所有的http请求通过rewrite重写到https上。
例如将所有的dev.域名的http访问强制跳转到https。
下面配置均可以实现:
配置1:
server {
listen 80;
server_name dev.;
index index.html index.php index.htm;
access_log
/usr/local/nginx/logs/8080-access
.log main;
error_log
/usr/local/nginx/logs/8080-error
.log;
rewrite ^(.*)$ https:
//
$host$1 permanent;
//
这是ngixn早前的写法,现在还可以使用。
location ~ / {
root
/var/www/html/8080
;
index index.html index.php index.htm;
}
}
-------------------------------------------------------
上面的跳转配置rewrite ^(.*)$ https:
//
$host$1 permanent;
也可以改为下面
rewrite ^/(.*)$ http:
//dev
./$1 permanent;
或者
rewrite ^ http:
//dev
.$request_uri? permanent;
-------------------------------------------------------
配置2:
server {
listen 80;
server_name dev.;
index index.html index.php index.htm;
access_log
/usr/local/nginx/logs/8080-access
.log main;
error_log
/usr/local/nginx/logs/8080-error
.log;
return
301 https:
//
$server_name$request_uri;
//
这是nginx最新支持的写法
location ~ / {
root
/var/www/html/8080
;
index index.html index.php index.htm;
}
}
配置3:这种方式适用于多域名的时候,即访问的http也会强制跳转到https:
//dev
.上面
server {
listen 80;
server_name dev. *.;
index index.html index.php index.htm;
access_log
/usr/local/nginx/logs/8080-access
.log main;
error_log
/usr/local/nginx/logs/8080-error
.log;
if
($host ~*
"^$"
) {
rewrite ^/(.*)$ https:
//dev
./ permanent;
}
location ~ / {
root
/var/www/html/8080
;
index index.html index.php index.htm;
}
}
配置4:下面是最简单的一种配置
server {
listen 80;
server_name dev.;
index index.html index.php index.htm;
access_log
/usr/local/nginx/logs/8080-access
.log main;
error_log
/usr/local/nginx/logs/8080-error
.log;
if
($host =
"dev."
) {
rewrite ^/(.*)$ http:
//dev
. permanent;
}
location ~ / {
root
/var/www/html/8080
;
index index.html index.php index.htm;
}
}