Redirect 使用nginx:http到https,并且只有一些到http的路径具有不同的端口
我希望所有http到https,并且只有一些到http的路径具有不同的端口:Redirect 使用nginx:http到https,并且只有一些到http的路径具有不同的端口,redirect,nginx,Redirect,Nginx,我希望所有http到https,并且只有一些到http的路径具有不同的端口: server { listen 80; servername _; return 301 https://$host$requesturi; location /bamboo { rewrite ^/bamboo(.*)$ http://mydomainname:8085/$1 last; } location /api { rewrite ^/api(.*)$
server {
listen 80;
servername _;
return 301 https://$host$requesturi;
location /bamboo {
rewrite ^/bamboo(.*)$ http://mydomainname:8085/$1 last;
}
location /api {
rewrite ^/api(.*)$ http://mydomainname:8080/$1 last;
}
return 403;
}
上述方法不起作用,
此外,这也不起作用:
#Redirect paths
server {
listen 443;
server_name _;
location /bamboo {
rewrite ^/bamboo(.*)$ http://mydomainname:8085/$1 last;
}
location /api {
rewrite ^/api(.*)$ http://mydomainname:8080/$1 last;
}
return 403;
}
#Redirect http -> https
server {
listen 80;
servername _;
return 301 https://$host$requesturi;
return 403;
}
除了这两条路径之外,还有其他方法可以让所有http发送到https吗?我会利用nginx的声明性质在http服务器上路由所有流量。将选择最具体的位置:
server {
listen 80 default_server;
server_name _;
location / {
return 301 https://$host$request_uri;
}
location /bamboo/ {
proxy_pass http://mydomainname:8085/;
}
location /api/ {
proxy_pass http://mydomainname:8080/;
}
}
请注意端口8085和8080的proxy_pass参数中的尾随/in。它将导致从URI中删除bambol和api部分,如中所述。我将利用nginx的声明性特性在http服务器上路由所有流量。将选择最具体的位置:
server {
listen 80 default_server;
server_name _;
location / {
return 301 https://$host$request_uri;
}
location /bamboo/ {
proxy_pass http://mydomainname:8085/;
}
location /api/ {
proxy_pass http://mydomainname:8080/;
}
}
请注意端口8085和8080的proxy_pass参数中的尾随/in。它将导致从URI中删除竹子和api部分,如中所述