介绍Nginx(发音为“Engine-X”)是一个基于 Linux 的 Web 服务器和代理应用程序。Nginx 是用于重定向和管理 Web 流量的强大工具。它可以轻松配置为将未加密的 HTTP Web 流量重定向到加密的 HTTPS 服务器。
如何在Nginx中将HTTP重定向到HTTPS?本指南将向你展示如何使用 Nginx 将 HTTP 重定向到 HTTPS,包括详细的Nginx将HTTP重定向到HTTPS示例。
先决条件
- 运行 Nginx 的 Linux 服务器
- 具有sudo 权限的用户帐户
- 远程登录 Web 服务器(可选,仅当你不直接在 Web 服务器上工作时才需要)
- 访问终端/命令行(Ctrl-Alt-T 或 Ctrl-Alt-F2)
大多数情况下,你可以在/etc/nginx/sites-available目录中找到该文件。如果未找到,请在此处搜索:/etc/nginx/nginx.conf、 /usr/local/nginx/conf或/usr/local/etc/nginx。
找到 Nginx 配置文件后,使用以下命令在文本编辑器中打开它:
sudo nano /etc/nginx/sites-available/server.conf
将该位置替换为配置文件的实际位置和名称。
【如何在Nginx中将HTTP重定向到HTTPS(分步指南)】注意:如果你是远程连接,请确保你首先通过 SSL 登录。此外,如果你使用图形界面,则可以浏览到文件位置而不是使用终端命令。
打开配置文件进行编辑后,插入下面的代码块之一。完成编辑后,保存文件并退出。然后,使用以下命令重新启动 Nginx 服务:
sudo service nginx restart
Nginx 将所有 HTTP 流量重定向到 HTTPS
如何在Nginx中将HTTP重定向到HTTPS?打开Nginx配置文件进行编辑,然后插入如下代码:
server {listen 80 default_server;
server_name _;
return 301 https://$host$request_uri;
}
在以上的Nginx将HTTP重定向到HTTPS示例中,以下是命令的细分:
Listen 80
:这会指示系统捕获端口 80 上的所有 HTTP 流量Server_name _;
: 这将匹配任何主机名Return 301
:这告诉浏览器(和搜索引擎)这是一个永久重定向https://$host$request_uri
:这是一个短代码,用于指定用户输入的任何内容的 HTTPS 版本
注:这应该是唯一的服务器模块上的80端口侦听(服务器块是在Nginx的配置代码单元它是由一个名字和大括号标记。)
重定向特定站点Nginx如何将HTTP重定向到HTTPS?你可能有多个服务器,但只有其中一些可能需要 HTTPS。在服务器块中指定服务器名称以重定向选定的流量:
server {listen 80 default_server;
server_name my_app.com;
return 301 https://my_app.com$request_uri;
}
将名称my_app.com替换为你要重定向的服务器的名称。你可能还想通过添加另一个服务器块来添加其他站点。只需复制代码,然后切换服务器名称即可。
仅接受 SSL 连接添加此代码以确保服务器仅接受端口 443 上的 SSL 连接:
server {listen 443 ssl default_server;
server_name my_app.com;
}server {listen 443 ssl;
server_name my_website.com;
}
Nginx将HTTP重定向到HTTPS示例?此代码块将设置两个网站my_app.com和my_website.com仅接受 SSL 连接。你可以使用其他服务器块来添加其他站点。
注意: Let's Encrypt 是一个免费的证书颁发机构,允许你在 NGINX 服务器上设置 SSL/TLS 加密。查看我们关于如何设置 Let's Encrypt 以保护你的 Nginx 服务器的文章。
Nginx 页面重定向
Nginx如何将HTTP重定向到HTTPS?你可以使用重写代码快速管理 301(永久)或 302(临时)重定向:
Location /index.html {rewrite ^/oldURL$ https://www.your_domain.com/newURL redirect;
}
大多数情况下,位置将是index.html,但你可以指定任何路径/模式。
请注意,该
rewrite
命令只能用于 301 或 302 重定向。如何使用 Nginx 重定向域
如何在Nginx中将HTTP重定向到HTTPS?如果你已从虚扩展名(如 .biz 或 .net)更改为标准的 .com 地址,这将非常有用。它还可以用于从旧域名重定向到新域名。
server {listen 80;
listen 443 ssl;
server_name www.old_company.com;
return 301 $scheme://www.new_company.com$request_uri;
}
在大多数情况下,该
return
命令优于重写命令。从 www 网站重定向到非 www 网站
此过程类似于标准页面重定向:
server {server_name www.new_company.com;
return 301 $scheme://new_company.com$request_uri;
}
重定向流量的原因
将 HTTP 流量重定向到 HTTPS 的原因有很多。你可能需要:
- 强制建立更安全的加密连接。
- 保留具有良好 SEO 排名的页面,但将其流量发送到新页面。
- 通知并临时将流量发送到“维护中”页面。
- 永久地将流量从一个网站发送到另一个网站,即在公司合并之后。
推荐阅读
- 17个Nmap命令以及Linux网络和系统管理员的示例
- Tmux使用教程(如何安装和使用命令示例)
- 如何将CSV文件导入MySQL数据库(分步指南)
- APT与APT-GET有什么区别(哪个更好?)
- 如何在CentOS 8上安装KVM(详细分步指南)
- 深入浅出TCP之send与recv
- QoS 网络视频传输的服务质量
- 我们为啥要运用Vlan技术
- 为啥一起需要IP地址与MAC地址