You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx反向代理配置请求:添加webmail子域名指向MailEnable服务器

配置Nginx反向代理webmail子域名到MailEnable服务器

先理清楚整个流程的关键步骤,确保每一步都能顺利落地:

1. 确认DNS解析

首先得确保你的DNS服务商已经把webmail.nonprofitcloud.be的A记录指向Nginx服务器的IP 192.168.5.13——这是基础前提,不然域名根本找不到你的Nginx节点。

2. 扩展Let's Encrypt证书包含子域名

既然你已经用Let's Encrypt配置了主域名的SSL,现在需要把webmail.nonprofitcloud.be添加到现有证书里。假设你用的是certbot工具,执行下面的命令即可:

# 扩展现有证书,包含新子域名
certbot renew --expand -d nonprofitcloud.be -d www.nonprofitcloud.be -d webmail.nonprofitcloud.be
# 如果是首次生成包含子域名的证书,用这条
# certbot certonly --nginx -d nonprofitcloud.be -d www.nonprofitcloud.be -d webmail.nonprofitcloud.be

执行后certbot会自动完成域名验证,并更新证书文件。

3. 添加Nginx的Webmail子域名配置块

在你的Nginx配置目录(通常是/etc/nginx/sites-available/或/etc/nginx/conf.d/)里,新增以下两个server块:

3.1 HTTPS反向代理核心配置

这个块负责处理443端口的加密请求,反向代理到MailEnable的webmail地址:

server {
    listen 443 ssl;
    server_name webmail.nonprofitcloud.be;

    # 复用扩展后的Let's Encrypt证书(和主域名路径一致)
    ssl_certificate /etc/letsencrypt/live/nonprofitcloud.be/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/nonprofitcloud.be/privkey.pem;

    # 可以直接复制你主域名server块里的SSL优化参数,比如:
    # ssl_protocols TLSv1.2 TLSv1.3;
    # ssl_ciphers HIGH:!aNULL:!MD5;
    # ssl_prefer_server_ciphers on;

    location / {
        # 反向代理到MailEnable的mewebmail路径
        proxy_pass http://192.168.5.1/mewebmail;

        # 给IIS传递必要的请求头,确保后端能正确识别请求来源
        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;

        # 修正Cookie路径:后端返回的Cookie路径是/mewebmail,要映射到前端根路径
        proxy_cookie_path /mewebmail /;
    }
}

3.2 HTTP自动跳转HTTPS配置

添加这个块,把80端口的明文请求自动重定向到HTTPS:

server {
    listen 80;
    server_name webmail.nonprofitcloud.be;
    return 301 https://$server_name$request_uri;
}

4. 验证配置并重启Nginx

先检查配置文件是否有语法错误:

nginx -t

如果输出test is successful,就重启Nginx让配置生效:

# 针对systemd系统(如Ubuntu/Debian 18.0+、CentOS 7+)
systemctl restart nginx
# 针对sysvinit系统
service nginx restart

额外注意事项

  • 确保Windows Server上的IIS允许来自192.168.5.13的请求,MailEnable的mewebmail站点绑定正确(比如绑定到192.168.5.1的80端口,没有IP访问限制)。
  • 如果访问webmail时出现静态资源加载失败,可以检查Nginx的proxy_pass路径是否正确,或者是否需要调整location规则匹配静态资源路径。

内容的提问来源于stack exchange,提问作者Erwin Geuens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:16:44