1

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

次の応答ヘッダーを返します。

< 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

次に、macports をインストールした後、Mac に nginx をインストールしました。

$ sudo port -d selfupdate
$ sudo port install nginx

3 番目に、次のように 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;
      }
  }

これが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] /opt/local/etc/nginx/nginx.conf:6 の不明なディレクティブ「mail」

ウェブ上でそのエラーについて言及しただけで、ロシア語で議論が持ち上がります...

私の質問:

  1. この不明なディレクティブが表示されるのはなぜですか?

  2. 私の設定は一見正しいように見えますか、それともメール プロキシがhttp://wiki.nginx.org/NginxMailCoreModuleで説明されている認証アプローチを使用して動作するための重要なコンポーネントが不足していますか?

4

1 に答える 1

5

メールプロキシが機能するようになったので、今後の参考のために自分の質問に答えます。

  1. nginx はデフォルトでメールのサポートをインストールしません

    nginx がメール ディレクティブを処理するには、以下が必要です。

    $ sudo ポート編集 nginx

    ==> 設定パラメータの最後に --with-mail を追加

    次に、nginxを(再)インストールします

  2. 私が含めた構成では、イベントがありませんでした:

    イベント {
    worker_connections 1024;
    }

  3. しばらくの間私を悩ませた重要な説明: 認証サービス (auth_http で指定) は、ホスト名ではなく、IP アドレスとして表現されたメール サーバーを返す必要があります。

  4. nginx がインバウンド トラフィックとアウトバウンド トラフィックの両方でプロキシするようにするには、smtp リスナーを追加する必要があります。pop3 構成と同様のアプローチ。私の場合、ポート 2525 を使用したので、

    サーバー{
    リッスン2525;
    プロトコル SMTP;
    }

于 2012-10-24T14:54:17.783 に答える