admin管理员组

文章数量:1642360

一,使用rewrite指令

server {
    listen 80;
    server_name domain;
    rewrite ^(.*) https://$server_name$1 permanent;
}
server {
    listen 443 ssl;
    server_name domain;
    ssl on;
    ssl_certificate     /etc/nginx/ssl/domain.crt;
    ssl_certificate_key /etc/nginx/ssl/domain.crt;
    # other
}

如果此时nginx作为Tomcat的前端反向代理的话,需要将相应配置放在配置ssl的server块中。

二,使用return指令

server {
    listen 80;
    server_name domain;
    return 301 https://$server_name$request_uri;
}
server {
    listen 443 ssl;
    server_name domain;
    ssl on;
    ssl_certificate     /etc/nginx/ssl/domain.crt;
    ssl_certificate_key /etc/nginx/ssl/domain.crt;
    # other
}

如果此时nginx作为Tomcat的前端反向代理的话,需要将相应配置放在配置ssl的server块中。

三,使用error_page指令

只允许HTTP来访问时,用HTTP访问会让Nginx报497错误,然后利用error_page将链接重定向至HTTPS上。

server {
    listen 80;
    listen 443 ssl;
    server_name domain;
    ssl on;
    ssl_certificate     /etc/nginx/ssl/domain.crt; 
    ssl_certificate_key /etc/nginx/ssl/domain.crt;
    # other
    error_page 497 https://$server_name$request_uri;
}

使用error_page指令时,将http和https的监听配置写在同一个server块中,对应的其他配置也需要在该server配置块中完成。
需要注意的是,此时需要将error_page指令语句写在最后,否则不能生效。

本文标签: 三种跳转方法Nginxhttp