auth http 服务器 127.0.0.1:9000 在 http auth 状态下未发送服务器或端口 - 邮件代理 nginx

auth http 服务器 127.0.0.1:9000 在 http auth 状态下未发送服务器或端口 - 邮件代理 nginx

我对 nginx 完全是新手,我想做的是:

  1. 在 AWS 上设置和配置 nginx(来自源 v1.16.1)(nginx 作为邮件代理)-*服务器状态正常..
  2. 使用 stunnel(v5.56)上游到 G-Suit API,在从邮件客户端(例如 Thunderbird)登录验证期间,服务器断开连接并显示错误消息。

/nginx/error.log:错误日志:“auth http 服务器 127.0.0.1:9000 在 http auth 状态下未发送服务器或端口,客户端:xxx.xxx.xxx.xxx,服务器:0.0.0.0:993,登录:”[电子邮件保护]

这是/nginx.conf

user nginx;
worker_processes 1;
pid /var/run/nginx.pid;
load_module /usr/lib/nginx/modules/ngx_mail_module.so;
error_log  /var/log/nginx/error.log  info;
events {
    worker_connections 1024;
    multi_accept on;
}

mail {
server_name  example.com;
auth_http localhost:9000/api/mail/proxyauth;

    #ssl                 on;
    ssl_prefer_server_ciphers  on;
    ssl_certificate     /etc/ssl/certs/server.crt;
    ssl_certificate_key /etc/ssl/certs/server.key;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ssl_session_cache   shared:SSL:10m;
    ssl_session_timeout 10m;

  server {
    listen     995 ssl;
    protocol   pop3;
    proxy      on;
    proxy_pass_error_message on;
  }
   server {
    listen    993 ssl;
    protocol   imap;
    proxy      on;
    proxy_pass_error_message on;
    imap_auth login plain;
  }
    server {
    listen     465 ssl;
    protocol   smtp;
    proxy      on;
    proxy_pass_error_message on;
    xclient    off;
    smtp_auth  login;
 }
}

/stunnel.conf

[https]
accept  = 9000
connect = gsuit1domain.com:443
delay = yes

造成该错误的可能原因是什么?

答案1

auth_http指令是一个 HTTP 服务器,其唯一作用是验证登录凭据。它不是建立连接的地方(它不是邮件服务的端点)。

如果我理解正确的话,你不需要 Stunnel,只需将其替换server_name example.comserver_name gsuit1domain.com,然后在端口 9000 上设置一个实现的 HTTP 服务器本议定书

相关内容