Nginx 是一个高性能的 HTTP 服务器和反向代理服务器,广泛应用于负载均衡和 URL 重写等场景。以下是关于 Nginx 负载均衡和 URL 重写的基本信息和示例。
Nginx 支持多种负载均衡方法,包括轮询、最少连接、IP 哈希等。以下是一个简单的配置示例:
http {
upstream backend {
# 定义后端服务器
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
server {
listen 80;
location / {
# 使用负载均衡
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
在这个例子中,Nginx 会在 backend1.example.com、backend2.example.com 和 backend3.example.com 三台后端服务器之间进行轮询。
Nginx 提供了强大的 URL 重写功能,可以通过 rewrite 指令来实现 URL 的重定向和重写。以下是一些示例:
server {
listen 80;
server_name example.com;
# 将 /old-path 重定向到 /new-path
rewrite ^/old-path$ /new-path permanent;
}
server {
listen 80;
server_name example.com;
# 将所有以 .html 结尾的请求重写为 .php
rewrite ^/(.*)\.html$ /$1.php last;
}
server {
listen 80;
server_name example.com;
location / {
# 如果请求的文件不存在,则重写到 /index.php
try_files $uri $uri/ /index.php?$args;
}
}
Nginx 的负载均衡和 URL 重写功能非常强大,可以根据不同的需求进行灵活配置。在实际应用中,可以根据具体的业务需求调整配置,确保性能和可用性。请确保在配置 Nginx 之前备份原有的配置文件,并在更改后进行测试。