Nginx安装|Nginx反向|Nginx支持HTTPS
Linux命令
Nginx安装|Nginx反向|Nginx支持HTTPS
2025-03-20 00:03
? Nginx全栈实战指南(2024最新版) 一、Nginx安装与基础配置 1. 主流安装方式
? Nginx全栈实战指南(2024最新版)
一、Nginx安装与基础配置
1. 主流安装方式
# Ubuntu/Debian(APT源安装)
sudo apt install nginx-core=1.25.3-1~jammy -y
# CentOS/RHEL(EPEL源安装)
sudo dnf install nginx-1.25.3-1.el8
? 注意:2024年推荐使用1.25.x版本,支持HTTP/3协议
2. 源码编译安装
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_v3_module
make && sudo make install
? 核心参数说明:
--with-http_v3_module
:启用HTTP/3支持
--prefix
:指定安装路径
3. 服务管理命令
systemctl status nginx # 查看服务状态
nginx -t # 测试配置文件
nginx -s reload # 热重载配置
二、反向代理深度配置
1. 基础反向代理
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://127.0.0.1:8080; # 转发到本机8080端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_connect_timeout 60s; # 连接超时时间
}
}
? 重点参数:
<font color='red'>proxy_set_header</font>
:传递客户端真实信息
proxy_connect_timeout
:避免后端服务无响应
2. 负载均衡配置
upstream backend {
least_conn; # 最小连接数算法
server 10.0.1.10:8000 weight=5; # 权重分配
server 10.0.1.11:8000;
keepalive 32; # 长连接复用
}
server {
location / {
proxy_pass http://backend;
proxy_http_version 1.1; # 必须1.1以上支持keepalive
}
}
⚖️ 负载策略对比:
round-robin
:轮询(默认)ip_hash
:会话保持least_conn
:动态最优分配
三、HTTPS全站加密方案
1. 证书申请(Let's Encrypt示例)
sudo snap install --classic certbot
sudo certbot certonly --nginx -d example.com -d www.example.com
? 证书存储路径:/etc/letsencrypt/live/example.com/
2. SSL基础配置
server {
listen 443 ssl http2; # 启用HTTP/2
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3; # 禁用老旧协议
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m; # 会话缓存优化
ssl_session_timeout 10m;
# 强制HSTS
add_header Strict-Transport-Security "max-age=63072000" always;
}
? 安全强化建议:
- 每90天更新证书(
certbot renew --quiet
) - 使用OCSP装订提升性能
3. HTTP自动跳转HTTPS
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri; # 永久重定向
}
四、重定向高阶应用
1. 路径重写规则
# 旧版URL重定向
rewrite ^/old-page/(.*)$ /new-page/$1 permanent;
# 带参数重定向
rewrite ^/search/(.*)$ /result?keyword=$1? last;
? 标识符说明:
permanent
:返回301永久重定向(SEO友好)last
:终止当前匹配,继续后续规则
2. 多域名统一跳转
server {
listen 80;
server_name www.example.com example.net;
return 301 https://example.com$request_uri;
}
3. 复杂条件判断
# 根据设备类型跳转
if ($http_user_agent ~* "(iPhone|Android)") {
rewrite ^(.*)$ /mobile$1 break;
}
# 根据语言首选项跳转
map $http_accept_language $lang {
default en;
~zh-CN zh;
}
server {
rewrite ^/$ /$lang/ redirect;
}
五、性能调优参数
http {
# 连接优化
keepalive_timeout 75s; # 保持连接时间
keepalive_requests 1000; # 单连接最大请求数
# 缓冲区设置
client_body_buffer_size 128k;
client_header_buffer_size 4k;
# 文件传输优化
sendfile on;
tcp_nopush on;
tcp_nodelay on;
}
? 调优效果:
- 静态文件传输速度提升40%+
- 减少30%的TCP握手次数
六、排错指南
1. 常见错误码处理
502 Bad Gateway
:检查后端服务端口和防火墙413 Request Entity Too Large
:调整标签:
- Nginx
- HTTPS