我需要使用nginx作为邮件代理.我是nginx的新手,需要一些配置方面的帮助.
这是我做的:
首先,我构建了一个服务来模拟此处描述的身份验证服务:http://wiki.nginx.org/NginxMailCoreModule.例如,
curl -v -H "Host:auth.server.hostname" -H "Auth-Method:plain" -H "Auth-User:user" -H "Auth-pass:123" -H "Auth-Protocol:imap" -H "Auth-Login-Attempt:1" -H "Client-IP: 192.168.1.1" http://localhost:8080/authorize
Run Code Online (Sandbox Code Playgroud)
返回以下响应头:
< HTTP/1.1 200 OK
< Content-Type: text/html;charset=ISO-8859-1
< Auth-Status: OK
< Auth-Server: 192.168.1.10
< Auth-Port: 110
Run Code Online (Sandbox Code Playgroud)
其次我在安装macports后在我的mac上安装了nginx:
$ sudo port -d selfupdate
$ sudo port install nginx
Run Code Online (Sandbox Code Playgroud)
第三,我用以下内容创建了一个nginx.conf:
worker_processes 1;
error_log /var/log/nginx/error.log info;
mail {
server_name <my mail server here>;
auth_http http://localhost:8080/authorize;
pop3_auth plain apop cram-md5;
pop3_capabilities "LAST" "TOP" "USER" "PIPELINING" "UIDL";
xclient off;
server {
listen 110;
protocol pop3;
proxy on;
proxy_pass_error_message on;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我运行nginx的原因:
$ nginx -V nginx版本:nginx/1.2.4配置参数: - prefix =/opt/local --with-cc-opt =' - I/opt/local/include -O2'--with-ld-opt = -L/opt/local/lib --conf-path =/opt/local/etc/nginx/nginx.conf --error-log-path =/opt/local/var/log/nginx/error.log - -http-log-path =/opt/local/var/log/nginx/access.log --pid-path =/opt/local/var/run/nginx/nginx.pid --lock-path =/opt/local/var/run/nginx/nginx.lock --http-client-body-temp-path =/opt/local/var/run/nginx/client_body_temp --http-proxy-temp-path =/opt/local/var/run/nginx/proxy_temp --http-fastcgi-temp-path =/opt/local/var/run/nginx/fastcgi_temp --http-uwsgi-temp-path =/opt/local/var/run/nginx/uwsgi_temp --with-ipv6
$ nginx nginx:[emerg]未知指令"mail"在/opt/local/etc/nginx/nginx.conf:6
在网上唯一提到的那个错误引起了俄语的讨论......
我的问题:
为什么我得到这个unknow指令?
我的配置一眼就看起来是正确的还是我错过了一些关键组件,邮件代理使用此处描述的身份验证方法工作:http://wiki.nginx.org/NginxMailCoreModule?
我的邮件代理工作正常,所以我将回答我自己的问题以供将来参考:
默认情况下,nginx不会安装邮件支持
nginx处理mail指令需要以下内容:
$ sudo port edit nginx
==>在配置参数的末尾添加--with-mail
然后(重新)安装nginx
在我包含的配置中,我错过了这些事件:
events {
worker_connections 1024;
}
一个重要的澄清让我陷入了一段时间:身份验证服务(使用auth_http指定)需要返回表示为IP地址的邮件服务器,而不是主机名.
显然,对于nginx在入站和出站流量上进行代理,需要添加smtp侦听器.与pop3配置类似的方法.在我的情况下,我使用端口2525,所以我有
服务器{
listen 2525;
协议smtp;
}
| 归档时间: |
|
| 查看次数: |
8838 次 |
| 最近记录: |