Nginx 是一款高性能的开源 Web 服务器和反向代理服务器,常用于负载均衡、HTTP 缓存和静态内容服务。
1.00¥ 原价为:1.00¥。0.00¥当前价格为:0.00¥。
Nginx (发音同 “engine-x”) 是一款高性能的开源 Web 服务器、反向代理服务器、负载均衡器和 HTTP 缓存。其以高并发、低内存消耗和丰富的特性而闻名,是现代 Web 架构中不可或缺的组件。
主要特点:
核心功能:
本部分描述在 Nginx 服务已经成功安装并运行的前提下,用户进行基本配置和管理 Nginx 的流程。
查找 Nginx 配置文件: Nginx 的主要配置文件通常位于 /etc/nginx/nginx.conf
。其他的站点配置通常放在 /etc/nginx/conf.d/
或 /etc/nginx/sites-available/
目录下,并通过符号链接到 /etc/nginx/sites-enabled/
目录启用。
编辑 Nginx 配置文件: 使用文本编辑器(如 nano
、vim
)打开 Nginx 的配置文件。您将看到类似以下的结构:
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
events {
worker_connections 1024;
}
配置虚拟主机 (Server Blocks): 要托管多个网站或配置特定的网站行为,您需要在 http
块中定义 server
块(虚拟主机)。通常的做法是在 /etc/nginx/sites-available/
目录下创建每个站点的配置文件,例如 mywebsite.conf
:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
listen 80;
: 监听 80 端口(HTTP)。server_name example.com www.example.com;
: 定义该虚拟主机处理的域名。root /var/www/example.com/html;
: 指定网站的根目录。index index.html index.htm;
: 指定默认的索引文件。location / { ... }
: 定义根路径 /
的处理规则。try_files
指令尝试按顺序查找文件,如果找不到则返回 404 错误。启用虚拟主机: 创建配置文件后,需要将其符号链接到 /etc/nginx/sites-enabled/
目录以启用该虚拟主机:
sudo ln -s /etc/nginx/sites-available/mywebsite.conf /etc/nginx/sites-enabled/
测试 Nginx 配置: 在重新加载 Nginx 配置之前,务必测试配置文件的语法是否正确:
sudo nginx -t
如果配置正确,您将看到类似 syntax is ok
和 test is successful
的输出。
重新加载 Nginx 配置: 如果配置测试通过,重新加载 Nginx 服务以使更改生效:
sudo systemctl reload nginx
# 或者
sudo service nginx reload
配置反向代理: 要将 Nginx 配置为反向代理,您需要在 location
块中使用 proxy_pass
指令,指向后端服务器的地址和端口:
server {
listen 80;
server_name myapp.example.com;
location / {
proxy_pass http://backend-server:8080;
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;
}
}
配置负载均衡: 要在多个后端服务器之间进行负载均衡,您需要在 http
块中定义 upstream
块,并在 proxy_pass
指令中引用该 upstream
:
http {
upstream mybackends {
server backend1.example.com:8080;
server backend2.example.com:8080;
# 可以添加更多的后端服务器
}
server {
listen 80;
server_name myapp.example.com;
location / {
proxy_pass http://mybackends;
# 其他 proxy_set_header 指令
}
}
}
假设我们希望使用 Nginx 提供一个简单的静态 HTML 页面。
创建网站根目录:
sudo mkdir -p /var/www/mywebsite/html
创建 HTML 文件 (/var/www/mywebsite/html/index.html
):
<!DOCTYPE html>
<html>
<head>
<title>Welcome to My Website!</title>
</head>
<body>
<h1>Hello from Nginx!</h1>
<p>This is a simple static HTML page served by Nginx.</p>
</body>
</html>
创建 Nginx 虚拟主机配置文件 (/etc/nginx/sites-available/mywebsite.conf
):
server {
listen 80;
server_name mywebsite.local;
root /var/www/mywebsite/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
启用虚拟主机:
sudo ln -s /etc/nginx/sites-available/mywebsite.conf /etc/nginx/sites-enabled/
配置本地 DNS (用于测试): 编辑您的 hosts 文件 (/etc/hosts
on Linux/macOS, C:\Windows\System32\drivers\etc\hosts
on Windows) 并添加一行:
127.0.0.1 mywebsite.local
测试 Nginx 配置并重新加载:
sudo nginx -t
sudo systemctl reload nginx
在浏览器中访问: 在您的 Web 浏览器中输入 http://mywebsite.local
。您应该能够看到 “Welcome to My Website!” 的内容。