许多时候,你将内容拷贝到剪贴板后,最终因某人或某物导致的分心而清空剪贴板,而找不回来。如果出现这种情况,确实很烦人。那么,你如何杜绝这种令人沮丧的局面?这正是我们在本文中所要解答的问题。 这里不妨看一下可以帮助你管理并跟踪剪贴板内容的几款剪贴板管理器。 什么是剪贴板管理器? 剪贴板管理器是一种实用程序或工具,它在你Linux系统的后台运行,为你保存到系统剪贴板的所有内容保存一份历史记录。 为什么需要剪贴板管理器? 剪贴板管理器的一个重要用途就是,你没必要为清空或覆盖剪贴板内容而操心,如果你是程序员或作家,经常进行大量的拷贝剪贴操作,更是如此。 市面上有许多工具可以帮助你管理Linux剪贴板,它们包括: 1.CopyQ 这种高级的剪贴板管理器适用于大多数平台上。它有编辑和脚本功能,包括下面的一些功能:…
如何设置和使用 NGINX 作为反向代理, 如何在 Nginx 中将 HTTP 重定向到 HTTPS, How to Set up & Use NGINX as a Reverse Proxy, How to Redirect HTTP to HTTPS in Nginx
什么是反向代理?
标准代理服务器代表客户端工作,通常通过提供隐私或过滤内容。反向代理代表服务器工作,拦截流量并将其路由到单独的服务器。
您可能想要安装反向代理有几个原因。主要原因之一是隐私。
如果您有多个服务器,反向代理可以帮助平衡服务器之间的负载并提高性能。由于反向代理为客户端提供单点联系,它可以跨多个服务器集中记录和报告。
Nginx 可以通过快速提供静态内容并将动态内容请求传递给 Apache 服务器来提高性能。
本指南将帮助您在系统上安装和配置 Nginx 反向代理。
先决条件
- 带有 Apache、PHP 和防火墙的 Linux 服务器
- 使用sudo访问root 用户
- Linux 命令行或终端(Ctrl – Alt – T用于 Ubuntu,Alt – F2用于 CentOS)
- 包管理器(例如 APT)
设置 Nginx 反向代理
第 1 步:从默认存储库安装 Nginx
打开终端窗口并输入以下内容:
sudo apt-get update
让包管理器完成刷新软件列表,然后输入以下内容:
sudo apt-get install nginx
允许该过程完成。
第 2 步(可选):从官方存储库安装 Nginx
添加安全密钥
在终端窗口中,输入以下内容:
sudo wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
这会下载 Nginx 的签名密钥,以验证您正在下载正版软件。
打开sources.list文件进行编辑
在终端中,输入以下内容:
sudo vi /etc/apt/sources.list
将 Nginx 源添加到存储库列表
/etc/apt/sources.list
在刚刚打开的文件中输入以下行:
deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
替换<CODENAME>
为您的 Debian 发行版的代号。
保存文件并退出。
注意: Nginx 开发人员为不同的 Linux 发行版维护不同的目录。本指南建议安装主线支持的版本。与大多数软件一样,还有更新但未经测试的软件包。请参阅适用于您的发行版的特定软件包的文档。
安装最新版本的 Nginx
要安装最新版本的 Nginx,请使用以下命令:
sudo apt-get remove nginx-common
sudo apt-get update
sudo apt-get install nginx
第 3 步:启动 Nginx 并配置为在重启时启动
启动 Nginx:
sudo systemctl start nginx
要启用 Nginx:
sudo systemctl enable nginx
要检查 Nginx 是否正在运行:
sudo systemctl status nginx
输出应显示服务处于活动状态(正在运行),如下图所示:
第 4 步:取消链接默认配置文件
在终端中,输入以下内容:
sudo unlink /etc/nginx/sites-enabled/default
第 5 步:创建新的配置文件
要创建新的配置文件,请输入:
cd /etc/nginx/sites-available/
sudo vi custom_server.conf
替换custom_server
为对您有意义的名称。在新文件中,输入:
server { listen 80; location / { proxy_pass http://my_server; } }
这是一个非常基本的 Nginx 反向代理示例。Nginx 设置为侦听端口 80 上的所有流量以获取所有流量。
该proxy_pass
命令将端口 80 上的所有流量定向到http://my_server
. 只需更改http://my_server
您选择的位置,Nginx 就会拦截客户端请求并将它们路由到您指定的位置。完成后,保存文件并退出。
第 6 步:链接并激活配置文件
要激活新的 Nginx 文件,请输入:
ln -s /etc/nginx/sites-available/custom_server.conf /etc/nginx/sites-enabled/custom_server.conf
像往常一样,替换custom_server
为您在步骤 5 中创建的配置文件的名称。
第 7 步:测试并重启 Nginx
测试 Nginx:
sudo service nginx configtest
重启Nginx :
sudo service nginx restart
可选的 Nginx 配置选项
代理缓冲区
默认情况下,Nginx 为其代理的服务器缓冲流量。缓冲区提高了服务器性能,因为在客户端完成发送完整响应之前不会发送服务器响应。
要关闭缓冲区,请打开步骤 5 中的配置文件。在location/section下,添加以下内容:
proxy_buffering off;
请求标头
标头提供有关所发出请求或客户端的服务器信息。
Nginx 重新定义了两个标头字段:host
配置为$proxy_host
,connection
配置为close
。如果您使用这些标头,请务必更改配置文件中的行为。
如果任何标头字符串为空,Nginx 会简单地删除这些字段。
要更改 Nginx 处理石南花的方式,请在配置文件中使用以下命令:
location / { proxy_set_header Host $host; }
这个例子告诉 Nginx 设置host
变量$host
。
要防止将标头字段传递给代理服务器,请使用空字符串,如下所示:
location / { proxy_set_header header-variable ""; }
负载均衡
您可以使用配置文件将流量路由到多个服务器。要使用此配置,您的配置文件将类似于此示例:
http { server { proxy_pass http://my_server } }
换句话说,HTTP 配置超出了步骤 5 的服务器配置。
要为一组服务器创建名称,请使用以下upstream
命令:
http { upstream server_group { server my.server1.com weight=3; server my.server2.com; } server { location / { proxy_pass http://server_group; } } }
这个名称需要两台服务器 –my.server1.com
并且my.server2.com
– 并将它们捆绑在一起。Nginx 在 name 下代理那组服务器http://server_group
。您可以随意重命名它们。
此示例使用weight
命令将三个请求路由到my.server1.com
,然后将 1 个请求路由到my.server2.com
。这是在服务器之间手动平衡客户端负载的一种选择。另一种方法是简单地省略任何指定,其中 Nginx 将在列出的服务器之间均匀地循环请求。
注意:了解有关负载平衡及其工作原理的更多信息。
结论
现在您知道如何设置 Nginx 反向代理了。
它是用于多服务器环境的出色工具,可创建统一的客户端体验。它也可以用于更简单的任务,例如保持单个服务器匿名。
介绍
Nginx(发音为“Engine-X”)是一个基于 Linux 的 Web 服务器和代理应用程序。Nginx 是用于重定向和管理网络流量的强大工具。它可以轻松配置为将未加密的 HTTP Web 流量重定向到加密的 HTTPS 服务器。
本指南将向您展示如何使用 Nginx 将 HTTP 重定向到 HTTPS。
先决条件
- 运行 Nginx 的 Linux 服务器
- 具有 sudo 权限的用户帐户
- 远程登录到 Web 服务器(可选,仅当您不直接在 Web 服务器上工作时才需要)
- 访问终端/命令行(Ctrl-Alt-T 或 Ctrl-Alt-F2)
HTTP 到 HTTPS 重定向
要强制执行 HTTP 到 HTTPS 重定向,您需要编辑 Nginx 配置文件。
在大多数情况下,您可以在/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
将位置替换为配置文件的实际位置和名称。
注意:如果您是远程连接,请确保您首先通过 SSL 登录。此外,如果您使用图形界面,则可以浏览到文件位置,而不是使用终端命令。
打开配置文件进行编辑后,插入下面的代码块之一。完成编辑后,保存文件并退出。然后,使用以下命令重启 Nginx 服务:
sudo service nginx restart
Nginx 将所有 HTTP 流量重定向到 HTTPS
打开 Nginx 配置文件进行编辑,然后插入以下代码:
server { listen 80 default_server; server_name _; return 301 https://$host$request_uri; }
以下是命令的细分:
Listen 80
:这指示系统捕获端口 80 上的所有 HTTP 流量Server_name _;
:这将匹配任何主机名Return 301
:这告诉浏览器(和搜索引擎)这是一个永久重定向https://$host$request_uri
:这是一个短代码,用于指定用户输入的任何内容的 HTTPS 版本
编辑后,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; }
此代码块将设置两个网站my_app.com和my_website.com以仅接受 SSL 连接。您可以使用其他服务器块添加其他站点。
注意: Let’s Encrypt 是一个免费的证书颁发机构,允许您在 NGINX 服务器上设置 SSL/TLS 加密。查看我们关于如何设置 Let’s Encrypt 以保护您的 Nginx 服务器的文章。
Nginx 页面重定向
您可以使用重写代码快速管理 301(永久)或 302(临时)重定向:
Location /index.html { rewrite ^/oldURL$ https://www.your_domain.com/newURL redirect; }
大多数情况下,位置将是index.html,但您可以指定任何路径/模式。
请注意,该rewrite
命令只能用于 301 或 302 重定向。
如何使用 Nginx 重定向域
如果您已从虚名扩展名(如 .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
命令优于 rewrite 命令。
从 www 网站重定向到非 www 网站
此过程类似于标准页面重定向:
server { server_name www.new_company.com; return 301 $scheme://new_company.com$request_uri; }
重定向流量的原因
将 HTTP 流量重定向到 HTTPS 有几个原因。您可能需要:
- 强制建立更安全的加密连接。
- 保留具有良好 SEO 排名的页面,但将其流量发送到新页面。
- 通知并临时将流量发送到“维护中”页面。
- 永久地将流量从一个网站发送到另一个网站,即在公司合并之后。
注意:如果您在浏览器中看到错误 ERR_TOO_MANY_REDIRECTS,则表示浏览器卡在重定向循环中。阅读我们的指南如何排除 ERR_TOO_MANY_REDIRECTS以了解更多信息。
结论
现在您知道如何在 Nginx 中将 HTTP 重定向到 HTTPS。通过编辑配置文件,您可以将流量从特定目的地发送到不同的站点并强制使用Nginx SSL 证书。这有助于您在不影响用户体验的情况下安全地管理对网站的更改。