Nginx,是一种广泛使用的开源网络服务器软件,是一个 Web 服务器,但通常用作反向代理,于 2004 年 10 月正式发布。
Nginx 是如何工作的?
在进一步了解 Nginx 之前,让我们先了解一下 Web 服务器的工作原理。
当有人请求打开网页时,浏览器会联系该网站的网络服务器。
然后,Web 服务器查找页面的请求文件并将其发送到浏览器,这种是最简单的一种请求。
上面的例子也被认为是一个单线程,传统的 Web 服务器为每个请求创建一个线程,但 Nginx 不是这样工作的。Nginx 使用异步的、事件驱动的架构执行,这意味着类似的线程在一个工作进程下管理,每个工作进程包含称为工作连接的较小单元。然后整个单元负责处理并发请求,工作连接将请求传递给工作进程,工作进程也将其发送到主进程。最后,主进程提供这些请求的结果。
NGINX 可以非常轻松地处理数千个请求,这也是 NGINX 成为最快的 Web 服务器的原因,它非常适合电子商务、搜索引擎和云存储等高流量网站。
什么是 Nginx 反向代理?
反向代理位于 Web 服务器前面,并在所有请求到达源服务器之前接收它们。它的工作方式类似于转发代理,除了在这种情况下它是使用代理的 Web 服务器而不是用户或客户端。反向代理通常用于增强 Web 服务器的性能、安全性和可靠性。
反向代理服务器充当源服务器的前端,以保持匿名性并增强安全性,就像用户/客户端如何使用正向代理来实现相同目的一样。它确保没有用户或客户端直接与源服务器通信。
Nginx 反向代理的好处
1、负载平衡
反向代理可以执行负载平衡,这有助于在后端服务器之间平均分配客户端请求。此过程极大地有助于避免由于请求突然激增而导致特定服务器过载的情况。负载平衡还提高了冗余,就像一台服务器出现故障一样,反向代理将简单地将请求重新路由到另一台服务器。
2、提高安全性
反向代理还充当后端服务器的一道防线,配置反向代理可确保您的后端服务器的身份保持未知,这可以极大地帮助保护您的服务器免受攻击,例如DDoS。
3、更好的性能
众所周知,Nginx 在通过 Apache 提供静态内容方面表现更好。因此,使用 Nginx 反向代理,所有客户端请求都可以由 Nginx 处理,而所有对动态内容的请求都可以传递到后端 Apache 服务器,这有助于通过根据资产类型优化资产交付来提高性能。此外,反向代理还可用于提供缓存内容并执行 SSL 加密以减轻 Web 服务器的负载。
4、轻松的日志记录和审计
由于实施反向代理时只有一个访问点,这使得记录和审计变得更加简单,使用此方法,您可以轻松监控通过反向代理进出的内容。
Nginx反向代理的配置
以Ubuntu系统为例。
1、安装Nginx
切换到root用户,执行命令:
apt install Nginx
2、防火墙放开Nginx
sudo ufw allow 'Nginx HTTP'
3、配置Nginx server
推荐的做法是为您的新服务器块添加创建自定义配置文件,而不是直接编辑默认配置:
vim /etc/Nginx/sites-available/bianchengshe.conf
然后填入以下内容:
server {
listen 80;
listen [::]:80;
server_name bianchengshe www.bianchengshe.com;
}
暂无评论内容