NGINX基础2

清夏晚风

简介

Nginx(发音为engine x)是一个高性能的HTTP和反向代理服务器,同时也提供了IMAP/POP3代理的服务器功能。它由俄罗斯程序员Igor Sysoev开发,最初是作为针对高性能的Web服务解决方案而开发的。

以下是Nginx的一些主要特点:

  1. 高并发处理能力:Nginx采用事件驱动的非阻塞架构,使其能高效地处理大量的并发连接。

  2. 模块化设计:Nginx支持各种模块,以实现不同的功能和性能优化。

  3. 反向代理服务器:Nginx可以作为反向代理服务器,将HTTP请求转发到后端的服务器群组,实现负载均衡。

  4. 缓存机制:Nginx提供了强大的缓存功能,可以极大地提高静态内容的加载速度。

  5. 安全性:Nginx具有许多安全特性,如SSL/TLS支持、防止DDoS攻击等。

  6. 配置简单:Nginx的配置文件易于理解和使用,可以快速部署和优化。

  7. 跨平台:Nginx可以在各种Unix类操作系统上运行,也可以在Windows系统上运行。

安装Nginx

首先,您需要确保已安装Nginx。在大多数Linux发行版中,可以通过包管理器进行安装。例如,在基于Debian的系统上,可以使用以下命令:

1
sudo apt install nginx

配置反向代理

编辑/etc/nginx/nginx.conf文件或相应的站点配置文件,添加或修改反向代理的配置。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   server {
listen 80;
# 在Nginx配置中,`listen`指令用于指定监听的端口。
server_name example.com;
# 在Nginx配置中,`server_name`指令用于指定虚拟主机的域名。

location / {
proxy_pass http://localhost:3000;
# 在Nginx配置中,`proxy_pass`指令用于将请求转发到后端的服务器。
proxy_set_header Host $host;
# 设置`Host`头,其中`$host`变量包含了原始请求的HTTP主机头的值。这通常用于将原始的主机名或域名信息传递给后端服务器。
proxy_set_header X-Real-IP $remote_addr;
# 设置`X-Real-IP`头,其中`$remote_addr`变量包含了客户端的实际IP地址。这通常用于在后端服务器上获取原始客户端的IP地址。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 设置`X-Forwarded-For`头,其中`$proxy_add_x_forwarded_for`变量包含了所有通过Nginx代理的客户端的IP地址列表。这通常用于在后端服务器上获取所有经过
Nginx代理的客户端的IP地址。
proxy_set_header X-Forwarded-Proto $scheme;
# 在Nginx的反向代理设置中,`proxy_set_header X-Forwarded-Proto $scheme;`这条指令用于设置HTTP请求头,以便将原始请求的协议(HTTP或HTTPS)传递给后端服务器。
}
}

负载均衡

Nginx的负载均衡功能可以让您在多个后端服务器之间分配传入的请求。这可以提高应用的可用性和扩展性,因为如果某个后端服务器出现故障,其他服务器可以接管工作。

以下是使用Nginx作为负载均衡器的基本设置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
http {
upstream backend_servers {
server backend1.example.com;
server backend2.example.com;
# 可以添加更多的后端服务器
}

server {
listen 80;

location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
  • Title: NGINX基础2
  • Author: 清夏晚风
  • Created at : 2026-01-13 16:48:23
  • Updated at : 2026-01-13 16:48:23
  • Link: https://blog.kimikkorow.eu.org/网站服务器/NGINX/NGINX基础2/
  • License: This work is licensed under CC BY-NC-SA 4.0.