我对 nginx 完全是新手,我想做的是:
- 在 AWS 上设置和配置 nginx(来自源 v1.16.1)(nginx 作为邮件代理)-*服务器状态正常..
- 使用 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.com
为server_name gsuit1domain.com
,然后在端口 9000 上设置一个实现的 HTTP 服务器本议定书