多服务 Nginx 反向代理配置与细节总结

在复杂的多服务服务器环境中,通过子域名和 Nginx 反向代理将不同内网服务安全、高效地发布到公网,是一种常见且实用的架构方案。以下是一份详细的配置总结,涵盖了常用服务(如 Nextcloud、Rocket.Chat、WordPress、PVE、PBS、Webmin、Stirling PDF、phpMyAdmin、Portainer、Plex 等)在 Nginx 上的实践配置与要点。 ✅ 核心思路 ✅ 通用配置结构 server { listen 80; server_name example.com; return 301 https://$host$request_uri;}server { listen 443 ssl http2; server_name example.com; client_max_body_size 200M; ssl_certificate /path/to/fullchain.pem; ssl_certificate_key /path/to/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; location / { proxy_pass http://192.168.x.x:port/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “upgrade”; …

Nginx 多服务反向代理方案对比与最佳实践

在自建服务器或私有云环境中,常常需要将多个 Web 服务整合到同一个公网 IP 上对外提供访问。常见的服务如 Rocket.Chat、Nextcloud、Proxmox VE、Mailcow 等,如何设计访问方式成为系统架构中一项重要决策。本文详细总结三种典型方案,并进行全面对比,帮助选择最适合的部署方式。 💡 三种典型方案 方案一:不同端口访问 思路每个服务占用一个独立的端口,用户通过域名加端口号访问,如: 优点 缺点 方案二:同域名 + 路径前缀 思路多个服务共享同一个域名,通过路径前缀区分,如: 优点 缺点 方案三:子域名 思路为每个服务配置一个独立子域名,如: 优点 缺点 ⚖️ 总体对比总结 不同端口访问 同域名 + 路径前缀 子域名 域名数量 1 1 多个子域名 端口体验 差(需手动输入) 好 好 兼容性 中 差 最好 用户体验 差 一般 最佳 配置复杂度 最简单 复杂 …

使用反向代理实现 Apache 服务的域名切换与 HTTPS 加密(含 Certbot 与 FRP 配置)🌐

在构建个人服务时,我们常常需要将 Apache 提供的本地服务通过公网访问,并启用 HTTPS 进行加密通信。本文记录了如何: 🧱 架构概览 本次部署采用了以下结构: arduinoCopyEdit公网用户 ↓ VPS(运行 FRP Server,负责公网端口) ↓ FRP 客户端 → 反向代理服务器(Nginx + Certbot,TLS 终结) ↓ 内网 Apache 主机,仅提供 HTTP 服务(80端口) 🛰️ FRP 配置 FRP 客户端(运行在反代服务器) 配置如下(已脱敏): iniCopyEdit[web_https] type = tcp local_ip = 127.0.0.1 local_port = 443 remote_port = xxxx # 例如 VPS 映射的 …

nginx.service: Failed to parse PID from file /var/run/nginx.pid: Invalid argument bugs

原文:https://medium.com/@parsher/nginx-service-failed-to-parse-pid-from-file-var-run-nginx-pid-invalid-argument-bugs-fda95eeeda73 # Fix for Nginx PID problem in Ubuntu 16.04 in an EC2 instance sudo systemctl stop nginx sudo mkdir /etc/systemd/system/nginx.service.d # build the file in root where no sudo is needed printf “[Service]\nExecStartPost=/bin/sleep 0.1\n” > override.conf sudo cp override.conf /etc/systemd/system/nginx.service.d/override.conf sudo systemctl daemon-reload sudo systemctl start nginx