【Nginx】转发HTPP到HTTPS

前言

一个常见的任务是将任何HTTP请求重定向到HTTPS,因此我们的应用程序和站点总是使用SSL证书。

在Nginx中,我们通常希望避免使用if语句。类似于我们如何在www和非www子域之间重定向,我们将使用服务器块将HTTP重定向到HTTPS请求

重定向所有HTTP

捕获所有端口80 (http)请求,并将它们重定向到端口443 (https)

nginx配置

server {
    listen 80 default_server;

    server_name _;

    return 301 https://$host$request_uri;
}
  • 它监听端口80。它也是端口80的默认服务器。假设它是侦听端口80的唯一服务器块。
  • server_name是_,它与所使用的任何主机名匹配。
  • 301重定向到后台

重定向到指定的网站或者后台

我们也可以只重定向特定的网站。如果你有多个应用程序/站点,并且不是所有的应用程序/站点都应该强制使用SSL证书,那么这样做会更好。

nginx配置

server {
    listen 80;

    server_name foo.com;
    return 301 https://foo.com$request_uri;
}
  • 这里我们在端口80上侦听http请求,但我们没有将其设置为默认服务器。相反,它只监听对主机名foo.com发出的请求(其中主机HTTP头被设置为foo.com)。
  • 它返回一个301重定向到给定URI的https版本,主机名(foo.com)。

应用配置

我们的站点/应用程序可以设置为仅侦听端口443的SSL连接。

nginx配置

server {
    listen 443 ssl default_server;
    server_name foo.com;
}

server {
    listen 443 ssl;
    server_name bar.com;
}

# and so on...

 至此所有的http请求都会分流到foo.com这个后台的https.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值