nginx做邮件系统的负载均衡,无法使用pop3+ssl连接后端邮件服务器

woshixinge 2013-04-24 09:53:44
如题,我的nginx配置就是常规的pop+ssl配置,没有做太多的设置,认证使用的也是网络上的php认证文件例子,只是端口是995,使用wireshark抓包发现nginx与后端邮件服务器进行了tcp三次握手,之后没有发送clent hello数据包,邮件服务器等待一段时间后超时断开连接,请教各位大虾是不是我nginx哪里没有配置或者php认证文件没有设置正确?

nginx.conf

#user nobody;
worker_processes 1;
error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
multi_accept on;
}
mail {
auth_http 192.168.1.121:80/auth.php;
pop3_capabilities "TOP" "USER";
imap_capabilities "IMAP4rev1" "UIDPLUS";

server {
listen 110;
protocol pop3;
proxy on;
starttls on;
ssl_certificate 1.crt;
ssl_certificate_key 1.key;
}

server {
listen 25;
protocol smtp;
proxy on;
xclient off;
}

server
{
listen 995;
protocol pop3;
proxy on;
ssl on;
ssl_certificate 1.crt;
ssl_certificate_key 1.key;
}
}


auth.php

<?php
/**
* @see xiabaibai.net
*/
if(!isset($_SERVER ["HTTP_AUTH_USER"] ) || ! isset($_SERVER ["HTTP_AUTH_PASS"] )) {
fail(0);
}
$username = $_SERVER ["HTTP_AUTH_USER"];
$userpass = $_SERVER ["HTTP_AUTH_PASS"];
$protocol = $_SERVER ["HTTP_AUTH_PROTOCOL"];


$protocol = "pop3";
$backend_port = 995;

list($uid, $domain) = explode("@", $username);

$auth = authuser($username, $userpass);
if(!$auth) fail (-2);

$popserver = "192.168.1.220";
pass($popserver, $backend_port);


//自定义认证,sql查询或者api
function authuser($user, $pass) {
return true;
}

function fail($code) {
switch($code){
case 0: header("Auth-Status: Parameter lost"); break;
case -1: header("Auth-Status: No Back-end Server"); break;
case -2: header("Auth-Status: Invalid login or password" ); break;
}
exit();
}

function pass($server, $port) {
header("Auth-Status: OK" );
header("Auth-Server: $server" );
header("Auth-Port: $port" );
exit();
}

?>
...全文
297 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gq2010 2014-05-07
  • 打赏
  • 举报
回复

我的报上面这个错误怎么回事啊?
gq2010 2014-05-07
  • 打赏
  • 举报
回复

认证服务器的作用是干吗的?使用outlook测试时出现了上面的错误是怎么回事啊?
MT 2014-03-28
  • 打赏
  • 举报
回复
请问你解决了吗?

10,606

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 其他
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧