Nginx Proxy Manager (NPM) 是一款基于Nginx的图形化管理工具,为现代网络架构提供:
docker run -d \
--name=npm \
-p 80:80 \
-p 443:443 \
-p 81:81 \
-v npm-data:/data \
-v npm-letsencrypt:/etc/letsencrypt \
--restart unless-stopped \
jc21/nginx-proxy-manager:latest
参数 | 作用 | 安全建议 |
---|---|---|
80/tcp | HTTP流量 | 应配置自动跳转HTTPS |
443/tcp | HTTPS流量 | 强制TLS 1.2+ |
81/tcp | 管理界面 | 应限制访问IP范围 |
/data卷 | 配置存储 | 定期备份 |
/etc/letsencrypt卷 | 证书存储 | 保持持久化 |
# 通过NPM自定义配置添加
location /admin {
allow 192.168.1.0/24;
allow 10.0.0.1;
deny all;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
推荐配置模板: - TLS 1.2/1.3 only - ECDHE密钥交换 - AES-256-GCM/SHA384加密套件 - OCSP Stapling启用 - HSTS预加载
limit_req_zone $binary_remote_addr zone=api:10m rate=100r/m;
# docker-compose片段示例
services:
npm:
image: jc21/nginx-proxy-manager
ports:
- "80:80"
- "443:443"
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "securepassword"
DB_MYSQL_NAME: "npm"
depends_on:
- db
连接数监控:
nginx.active_connections
nginx.accepts_handled
性能指标:
nginx.request_time
nginx.upstream_response_time
安全事件:
# 高频错误分析
cat /var/log/nginx/access.log | awk '$9 >= 400 {print $7,$9}' | sort | uniq -c | sort -nr
[CDN]
|
-------------------------
| |
[主NPM集群] [备NPM集群]
| |
[后端服务A-Z] [后端服务A-Z]
实现要点: 1. VIP漂移技术 2. 配置同步机制 3. 会话持久化存储
通过以上专业配置和管理策略,Nginx Proxy Manager可成为企业级网络架构中安全、高效的反向代理解决方案,显著降低运维复杂度同时提升整体安全性。