Nginxメールサーバー。 プロキシメール用にNGINXを設定します。 CAへの近くのプロキシ

ゴロフナ / 作業の最適化

Nginx-世界の外では小さく、よりスウェーデン語で、機能的なWebサーバーとメールプロキシサーバー、小売業者のIgor Sisoev(rambler.ru)。 小さなリソース節約の弧、システムのセキュリティとロボット工学、および構成の柔軟性、インターネットを通じて nginxサーバー多くの場合、次のようなより重要なサーバーのフロントエンドとして勝利します。 Apache、野心の高いプロジェクトで。 古典的なオプションはzv'yazuvannyaです。 Nginx - Apache - FastCGI。 そのようなスキームで練習し、 nginxサーバー、HTTP経由でアクセスできるすべてのリクエストを受け入れ、構成とリクエスト自体のフォールバックで、リクエストを自分で処理して、リクエストを送信する準備ができていることをクライアントに指示するか、またはリクエストを提供するかを確認します。処理、バックエンドの1つ( Apacheまた FastCGI).

どうやら、Apacheサーバー、スキンはokremuプロセス(スレッド)で処理されます。言う必要があるかのように、多数のシステムリソースで処理する必要があります。たとえば、このようなプロセスは10〜20個あります。 、それほど多くはありません。100〜500以上ある場合、システムは面白くありません。

そのような状況を特定してみましょう。 と言いましょう Apacheクライアントから300のHTTP要求が来て、150のクライアントがモバイルビデオ回線に接続され、同じ数のインターネットチャネルにある別の150のクライアントがモデムに接続されません。 この状況についてどう思いますか? そして次のステップであるApacheWebサーバーは、300日間処理し、プロセス(フロー)によってスキン上に作成します。ワインのコンテンツは迅速に生成され、150人の迅速なクライアントが要求の結果をすぐに受け取ります。それらのサービスのプロセスはリソースで強制終了され、さらに150が殺され、リクエストの結果は狭いインターネットチャネルを介して正しく収集されます。その後、システムには150のプロセスがあります。 Apache、何をチェックするか、クライアントがWebサーバーによって生成されたコンテンツを奪い、多くのシステムリソースを消費するかどうか。 当然、状況は架空のものですが、本質は理解できたと思います。 上記の状況を修正し、コミュニケーションを助けます。 クライアントからのリクエスト全体を読んだ後、ワインは処理に転送されます Apache、コンテンツを独自のペースで生成し、可能な限り迅速に処理し、Nginxをサポートする準備ができています。可能であれば、落ち着いた良心でプロセスを強制終了し、ワインを借りるなどのシステムリソースを要求します。 Nginx Webサーバー、otrimavshiリクエストの結果vіd Apache、それをバッファに書き込むか、ディスク上のファイルに書き込み、適切なクライアントに提供するために、おそらくもう少し長い間、それを実行している間、ワークプロセスは非常に少ないリソースを使用するので..それについて話す」©。 :)このようなスキームは、システムリソースを節約するために繰り返しますが、Nginxの作業プロセスは少量のリソースを節約します。これは、優れたプロジェクトにとってより重要です。

そして、Nginxサーバーがその中にあるという事実のほんの一部ですが、データとロボットをキャッシュする機能を忘れないでください memcached。 NginxWebサーバーの主な機能をリストします。

HTTPサーバーとしてのNginxサーバー機能

  • 静的コンテンツ、インデックスファイル、ディレクトリのリスト、開いているファイルの記述子のキャッシュの処理。
  • 加速されたproksuvannyazkashuvannya、vіdmovostіykіstyuのrozpodіlnavantazhennya;
  • 加速されたpidtrimka FastCGI現金用サーバー、rozpodіlnavantazhennyaおよびvіdmovostіykіstyu;
  • モジュール構造、さまざまなフィルター(SSI、XSLT、GZIP、ダウンロード、チャンク出力)のサポート。
  • SSLサポートとTLSSNI拡張。
  • IPベースまた 名前ベース仮想サーバー;
  • キープアライブを備え、z'ednannamiによってパイプライン化されたロボット。
  • タイムアウトとバッファの数を同じように設定する可能性 Apacheサーバー;
  • Vikonannyaraznomanіtnyhdіyzalezhnoがクライアントのアドレスを確認しました。
  • 追加の通常のウイルスのURIを変更します。
  • 4xxと5xxの恩赦の特別な側面。
  • クライアントのアドレスまたはパスワードに基づくアクセスの交換。
  • ログファイル形式の調整。 ログローテーション;
  • クライアントのセキュリティの交換。
  • 1時間の接続と飲み物の交換。
  • PUT、DELETE、MKCOL、COPY、およびMOVEメソッドのサポート。
  • ロボットの歯なしでサーバーの更新を変更する。
  • 目を覚ます Perl;

メールプロキシサーバーとしてのNginxサーバーの機能

  • IMAP / POP3バックエンド、強力なHTTP認証サーバーへの転送。
  • 外部HTTPサーバー認証へのSMTP転送、および内部SMTPサーバーへの転送。
  • 認証における不快な方法のヒント:
    • POP3-USER / PASS、APOP、AUTH LOGIN / PLAIN / CRAM-MD5;
    • IMAP-LOGIN、AUTH LOGIN / PLAIN / CRAM-MD5;
    • SMTP-AUTH LOGI / PLAIN / CRAM-MD5;
  • SSLサポート;
  • STARTTLSとSTLSをトリミングします。

NginxWebサーバーでサポートされているプラ​​ットフォームのオペレーティングシステム

  • FreeBSD、3から8-プラットフォーム、i386およびamd64;
  • Linux、2.2から2.6まで-i386プラットフォーム; Linux 2.6-amd64;
  • Solaris9-i386およびsun4uプラットフォーム。 Solaris 10-i386、amd64、およびsun4vプラットフォーム。
  • MacOS Xプラットフォームppc、i386;
  • Windows XP、Windows Server 2003; (現在、ベータテスト段階です)

Nginxサーバーのアーキテクチャとスケーラビリティ

  • メイン(マスター)プロセス、非特権コアの下で動作するための動作プロセスのスプラット(構成ファイルに含まれる)。
  • z'ednanを処理する攻撃的な方法のサポート:
    • 選択する-標準的な方法。 このプラットフォームでは効率的な方法が見つからなかったため、デフォルトのNginxモジュールが自動的に取得されます。 primusを有効にするか、構成--with-select_moduleまたは--without-select_moduleの追加パラメーターのモジュールの選択を無効にすることができます。
    • 投票-標準的な方法。 このプラットフォームでは効率的な方法が見つからなかったため、デフォルトのNginxモジュールが自動的に取得されます。 primusを有効にするか、構成--with-poll_moduleまたは--without-poll_moduleの追加パラメーターのモジュールの選択を無効にすることができます。
    • kqueue-FreeBSD 4.1以降、OpenBSD 2.9以降、NetBSD 2.0、およびMacOSXオペレーティングシステムでトリガーできる効果的な方法。
    • epoll Linux2.6以降で機能する効率的な方法です。 SuSE 8.2などの一部のディストリビューションには、2.4カーネルでepollをサポートするパッチがあります。
    • rtsig-リアルタイム信号、Linux2.2.19以降で勝利を収めている効率的な方法。 システム全体をロックインする場合、1024を超える信号はありません。 これは、野心の高いサーバーには十分ではありません。追加のカーネルパラメーター/ proc / sys / kernel/rtsig-maxのカーネル数を増やす必要があります。 ただし、Linux 2.6.6-mm2以降、このパラメーターは毎日であり、スキンプロセスの性質には多くの信号があり、その拡張はRLIMIT_SIGPENDINGの助けによるものです。
    • perepovnennyチェリーの場合、 nginxサーバー投票方法dotiの助けを借りて請求書を破棄して処理すると、状況は通常に戻りません。
    • / dev / poll-Solaris 7 11/99以降、HP / UX 11.22以降(イベントポート)、IRIX 6.5.15以降、およびTru64 UNIX5.1A+オペレーティングシステムでサポートされている効果的な方法。
    • eventport-イベントポート、Solaris 10でパッチを適用できる効果的な方法。パッチを適用する前に、カーネルパニックを取り除くためにパッチをインストールする必要があります。
  • EV_CLEAR、EV_DISABLE(期間限定の引き出し用)、NOTE_LOWAT、EV_EOF、使用可能なデータの数、恩赦のコードなど、kqueueメソッドの複数の可能性。
  • sendfile(FreeBSD 3.1以降、Linux 2.2。以降、Mac OS X 10.5以降)、sendfile64(Linux 2.4.21以降)、およびsendfilev(Solaris 8 7/01以降)の操作。
  • Accept-filter tweak(FreeBSD 4.1+)およびTCP_DEFER_ACCEPT(Linux 2.4+);
  • 10,000の非アクティブなHTTPキープアライブの場合、約2.5Mのメモリが消費されます。
  • データをコピーするための最小操作数。

NGINXは、Webサーバーとしてだけでなく、httpプロキシとしても使用できますが、SMTP、IMAP、POP3プロトコルを介したプロキシにも使用できます。 Tseはnalashtuvatiを許可します:

  • スケーリングされたメールシステムの単一のエントリポイント。
  • メールサーバー間のバニティのバランスを取ります。

この記事はLinuxオペレーティングシステムにインストールされています。 リクエストが送信されるメールサービスとして、postfix、exim、dovecot、exchange、iredmailなどを使用できます。

ロボットの原理

NGINXは、Webサーバーから認証を受け入れて取得します。 ログインとパスワードの再確認の結果に応じて、プロキシはヘッダーの反転を有効にしました。

成功したとき:

したがって、サーバーとメールサーバーのポートは認証に基づいて決定されます。 これにより、movプログラミングの高度な知識を得る機会がたくさんあります。

失敗した場合:

ヘッダーの認証結果に応じて、クライアントは必要なメールサーバーにリダイレクトされます。

サーバーの準備

サーバーのセキュリティにいくつかの変更を加えましょう。

SELinux

SELinuxを含み、CentOSを修正するか、Ubuntuのセキュリティシステムを修正する可能性があります。

vi / etc / selinux / config

SELINUX=無効

ファイアウォール

Firewalldの使い方(CentOSからのロック用):

Firewall-cmd --permanent --add-port = 25 / tcp --add-port = 110 / tcp --add-port = 143 / tcp

Firewall-cmd --reload

iptablesの使い方(Ubuntuでのロック用):

iptables -A INPUT -p tcp --dport 25-j ACCEPT

iptables -A INPUT -p tcp --dport 110 -j ACCEPT

iptables -A INPUT -p tcp --dport 143 -j ACCEPT

apt-get installiptables-persistent

iptables-保存>/etc/iptables/rules.v4

*このアプリケーションではSMTP(25)、POP3(110)、IMAP(143)が許可されていました。

NGINXのインストール

オペレーティングシステムに陥って、NGINXのインストールはトロシックです。

またはLinux CentOS:

yum install nginx

またはLinux ubuntu:

apt install nginx

サービスの自動開始とヨガの開始が許可されています。

systemctl enable nginx

systemctl start nginx

NGINXがすでにシステムにインストールされている場合は、次のモジュールで確認できます。

私たちはオプションのリストを受け入れ、それを使ってWebサーバーを選択します-それらの中から選択できます --with-mail。 必要なモジュールがないため、nginxを更新する必要があります

NGINXのカスタマイズ

nginx構成ファイルを開き、オプションを追加します 郵便物:

vi /etc/nginx/nginx.conf

郵便物 (

auth_http localhost:80 / auth.php;

サーバ(
25を聞く;
プロトコルSMTP;
smtp_authログインプレーンcram-md5;
}

サーバ(
110を聞く;
プロトコルpop3;

}

サーバ(
聞く143;
protocolimap;
}
}

* de:

  • サーバー名-メールサーバーの名前。SMTPの民営化の時間と想定されています。
  • auth_http-認証を要求するためのWebサーバーとURL。
  • proxy_pass_error_message-認証からそれほど遠くない1時間、通知の通知を許可または禁止します。
  • 聞く-飲み物を聞くことができる港。
  • プロトコル-ポートがリッスンされているプログラムのプロトコル。
  • smtp_auth—SMTPで使用可能な認証方法。
  • pop3_auth—利用可能なPOP3認証方法。

http-serverセクションに以下を追加します。

サーバ(
80default_serverをリッスンします。
リッスン[::]:80 default_server;
...

場所〜\ .php $(
$ root_path / usr / share / nginx/htmlを設定します;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $ root_path $ fastcgi_script_name;
fastcgi_paramsを含める;
fastcgi_param DOCUMENT_ROOT $ root_path;
}
...

nginxサーバーを再起動します。

systemctl restart nginx

PHPのインストールとカスタマイズ

PHPヘルプの認証を行うには、次のパッケージをシステムにインストールする必要があります。

Yakscho CentOS:

yum install php php-fpm

Yakscho ubuntu:

apt-get install php php-fpm

PHP-FPMを実行します。

systemctl enable php-fpm

systemctl start php-fpm

認証

ログインとパスワードの再確認は、auth_httpオプションで設定されたパスであるスクリプトによって変更されます。 このアプリケーションにはPHPスクリプトがあります。

ログインとパスワードを確認するためのスクリプトの公式ブランクの例:

vi /usr/share/nginx/html/auth.php

*このスクリプトは、ログインとパスワードのどちらであるかを受け入れ、リクエストをサーバーにリダイレクトします 192.168.1.22 і 192.168.1.33 。 認証アルゴリズムを設定するには、行61〜64を編集します。サーバーターンの場合、リダイレクトルートの行73〜77-このアプリケーションでは、ログインは記号に基づいています。 「a」、「c」、「f」、「g」、その後、サーバーにリダイレクトされます mailhost01、それ以外の場合、 mailhost02。 IPアドレスを使用したサーバー名の設定は行31、32で設定できます。設定しない場合は、ドメイン名で行います。

メールサーバーの設定

NGINXプロキシ間でデータを交換し、サーバーを送信してオープンソースに移動します。 PLAINメカニズムの背後で認証を有効にする機能を追加する必要があります。 たとえば、鳩小屋のラッシングの場合、robimoは次のようになります。

vi /etc/dovecot/conf.d/10-auth.conf

行を追加します:

リモート192.168.1.11(
disable_plaintext_auth = no
}

*サーバーからの認証要求をPLAINすることを許可されたアプリケーション 192.168.1.11 .

また、再検証されます。

*yakscho ssl matimeの意味 必要、何も再チェックせず、クリーンアップし、oscillki weide、一方の側からサーバーがクリアビューで飲むことができるようにするだけでなく、SSL暗号化も可能にします。

Dovecotサービスを再起動します。

systemctl restart dovecot

クライアントのカスタマイズ

プロキシ設定の再確認に進むことができます。 IMAP / POP2 / SMTPなどのクライアント設定で、nginxサーバーのアドレスまたは名前を指定します。次に例を示します。

*このアプリケーションでは、メールクライアントはサーバーに接続するように設定されています 192.168.1.11 開いているポート経由 143 (IMAP)および 25 (SMTP)。

暗号化

これでSSL接続ができました。 Nginxはモジュールと一緒に注文できます mail_ssl_module-チームによる改訂:

必要なモジュールが存在する場合、nginxが並べ替えられます。

次に、構成ファイルを編集します。

vi /etc/nginx/nginx.conf

郵便物 (
server_name mail.domain.local;
auth_http localhost / auth.php;

proxy_pass_error_message on;

SSLオン;
ssl_certificate /etc/ssl/nginx/public.crt;
ssl_certificate_key /etc/ssl/nginx/private.key;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;

サーバ(
110を聞く;
プロトコルpop3;
pop3_auth plain apop cram-md5;
}

サーバ(
聞く143;
protocolimap;
}

その理由はSELinuxセキュリティシステムです。

解決策:SELinuxを無効にするか設定します。

Nginxは急速に人気を博しており、Apacheの統計を単に押しつぶすだけでなく、完全に機能し、Webサーバーを再び開くようになり、ますます停滞しています。 この記事では、ウェブサーバーからの最大アクセスを可能にするnginxバージョンのcicaシナリオと非標準シナリオについて説明します。

ポストプロキシ

最も明白なものから始めましょう-メールプロキシとしてのnginxの役割。 この関数は背面のnginxにあり、軸は本番環境で勝利を収めています。 それがどのようなものであったとしても、nginxはSSLやStartTLSなどのさまざまな認証方法でPOP3、IMAP、SMTPプロトコルのプロキシをサポートしており、作業は簡単です。

必要ですか? Є少なくとも2つのzastosuvannyatsієї機能をヤクします。 まず、迷惑なスパマーに対するシールドとしてnginxを獲得し、SMTPサーバーを介してスマックリストを送信してみてください。 サウンドスパマーは多くの問題を引き起こさず、シャードは認証段階で簡単に有効になりますが、シャードがリッチになりすぎると、nginxはプロセッサリソースの節約に役立ちます。 フレンド:pingをPOP3/IMAPメールサーバーにリダイレクトするためにnginxにpingを実行します。 Zimは、明らかに次のポストプロキシが有効になりますが、たとえば、HTTPスタティックを処理するためにnginxがフロントエンドにすでにインストールされているため、サーバーの街はフェンスで囲まれています。

Nginxのメールプロキシサーバーはデフォルトでは認識されていません。 Vіnvikoristovydodatkovyballauthentifikatsії、HTTPによる実装、そしてそれはバーを通過することしかできません、vinは遠くを通り過ぎました。 この機能は、サイドバー/スクリプトを作成する方法によって保証されます。これは、nginxがcoristuvachaのデータをチェックし、標準のOKの前でそれを確認/勝ち取るか、変更(無効なログインやパスワードなど)を引き起こします。 スクリプトは、次のヘッダーで起動されます。

認証スクリプト入力データHTTP_AUTH_USER:パスワードHTTP_AUTH_PASS:パスワードHTTP_AUTH_PROTOCOL:メールプロトコル(IMAP、POP3またはSMTP)

そしてそれをこのように回します:

HTTP_AUTH_STATUS:OKまたは理由を変更しますHTTP_AUTH_SERVER:リダイレクトする実際のメールサーバーHTTP_AUTH_PORT:サーバーポート

Chudova実際には、このようなpіdhodu、osoblivіstスコー余呉mozhna vikoristovuvatizovsіmないsamoїautentifіkatsіїと住人rozkidatikoristuvachіvrіznihvnutrіshnіhサーバー上で、休耕ODіmenіkoristuvacha、リリーフラウンドロビンのためvzagalіorganіzuvavshinayprostіshebalansuvannya navantazhennya ABOposhtovі専用サーバー上のpotochnіのnavantazhennyaについてdanih。 Vtim、コアを内部メールサーバーに転送する必要があるため、実際のスクリプトをnginx自体によって実装されたスタブに置き換えることができます。 たとえば、nginx構成の最も単純なSMTPおよびIMAPプロキシは次のようになります。

#vi /etc/nginx/nginx.conf mail(#認証スクリプトアドレスauth_http localhost:8080 / auth;#XCLIENTコマンドをオンにしてメールサーバーとxclientを無効にします;#IMAPサーバーサーバー(listen 143; protocol imap; proxy on;)#SMTPサーバーサーバー(listen 25; protocol smtp; proxy on;))

#vi /etc/nginx/nginx.conf http(#メールサーバーの必要なポートへのマッピングは、HTTP_AUTH_PROTOCOLヘッダーマップで設定されたポートに格納されます$ http_auth_protocol $ mailport(デフォルト25; smtp 25; imap 143;)#実装"-[OK]をオンにして、発信者を内部メールサーバーにリダイレクトし、マップされたサーバーに加えて必要なポートを設定します(listen 8080; location / auth(add_header "Auth-Status" "OK"; add_header "Auth-Server" "192.168 .0。;add_header"Auth -Port" $ mailport; return 200;)))

それで全部です。 この構成により、下品に見えるスクリプトを作成することなく、メッセージを内部メールサーバーに透過的にリダイレクトできます。 スクリプトをインストールすると、この構成を大幅に拡張できます。バニティのバランスを調整し、LDAPベースのファイルを書き直し、その他の操作を変更します。 スクリプトの記述はこの記事の範囲を超えており、PHPとPythonについてのより表面的な知識を得るために、スクリプトを実装するのはさらに簡単です。

ストリーミングビデオ

Nginxに基づく優れたビデオホスティングの設定は簡単です。 サーバーにアクセス可能なディレクトリにビデオをトランスコードし、構成に登録して、そのディレクトリからビデオを取得するようにフラッシュまたはHTML5プログラマーを調整するだけで十分です。 ただし、ある種のリモートdzherelまたはWebカメラからビデオの連続ストリームを作成する必要があります。このようなスキームは機能せず、特別なストリーミングプロトコルのビーコンに驚かされる可能性があります。

Єk_lkaprotocolіv、schovyrіshuyuttsezavdannya、最も効率的でRTMPをサポートします。 すべてのRTMPサーバーの実装に問題が発生することはそれほど悪くありません。 公式のAdobeFlashMediaServerは有料です。 Red5とWowzaはJavaで記述されているため、必要な生産性が得られません。別の実装であるErlyvideoはErlangで記述されています。これはクラスターのセットアップには適していますが、単一サーバーではそれほど効率的ではありません。

さて、私は別のpidhidを伝播します-nginxのRTMPモジュールを高速化します。 奇跡的な製品であり、その前に、1台のサーバーでサイトのWebインターフェイスとビデオストリームの両方を提供できるようにします。 唯一の問題は、このモジュールが非公式であるため、nginxが独自にそれを取得できることです。 幸い、折りたたみは標準的な方法で行われます。

$ sudo apt-get remove nginx $ cd / tmp $ wget http://bit.ly/VyK0lU -O nginx-rtmp.zip $ unzip nginx-rtmp.zip $ wget http://nginx.org/download/nginx- 1.2.6.tar.gz $ tar -xzf nginx-1.2.6.tar.gz $ cd nginx-1.2.6 $ ./ configure --add-module = / tmp / nginx-rtmp-module-master $ make $ sudo make install

次に、モジュールを構成する必要があります。 いつものように、nginx configを介して戦うには:

Rtmp(#サイト/ rtmpサーバーの背後にあるポート1935でライブサーバーを有効にする(listen 1935; application rtmp(live on;)))

RTMPモジュールはリッチストリーミング構成では機能しないため、nginxの作業プロセスの数は1の速度に達します(この問題を回避するために、後で説明します)。

worker_processes 1;

これで、ファイルを保存してnginx構成を再読み込みできます。 nginxのインストールは完了しましたが、ビデオストリーム自体はまだ可能ではないため、ここで取得する必要があります。 たとえば、video.aviファイルをストリームディレクトリに配置しましょう。 ヨガをその場で回してRTMPムーバーでラップするには、古き良きFFmpegをスピードアップしましょう。

#ffmpeg -re -i〜/ video.avi -c copy -f flv rtmp:// localhost / rtmp / stream

ビュービデオファイルがH264形式でない場合は、再エンコードする必要があります。 Tseは同じFFmpegの助けを借りてたくさんのrobitiになることができます:

#ffmpeg -re -i〜/ video.avi -c:v libx264 -c:a libfaac -ar 44100 -ac 2 -f flv rtmp:// localhost / rtmp / stream

Potikはウェブカメラから直接注文できます:

#ffmpeg -f video4linux2 -i / dev / video0 -c:v libx264 -an -f flv rtmp:// localhost / rtmp / stream

クライアント側のストリームを確認するために、それが一種のRTMPサポーターであるかどうかをスピードアップできます(例:mplayer:

$ mplayer rmtp://example.com/rtmp/stream

それ以外の場合は、同じnginx(公式ドキュメントの例)のように見えるため、Webページから直接プログラムを入手できます。

最も単純なWebRTMPプログラム

重要な行は2つだけです。RTMPストリームを示す「file: "stream"」と、RTMPストリーマーのアドレスを指定する「streamer: "rtmp:// localhost/rtmp"」です。 さらに、そのようなnalashtuvansのタスクで十分です。 1つのアドレスに対して、いくつかの異なるストリームを実行でき、nginxはそれらをクライアント間で効果的に多重化します。 Aleceは、RTMPモジュールを構築するすべてのものからはほど遠いです。 このヘルプを使用すると、たとえば、別のサーバーからのビデオストリームの再送信を整理できます。 この目的にはFFmpegサーバーは必要ありません。次の行を構成に追加するだけで十分です。

#vi /etc/nginx/nginx.conf application rtmp(live on; pull rtmp://rtmp.example.com;)

さまざまな容量で多数のストリームを作成する必要があるため、nginxから直接FFmpegリコーダーを呼び出すことができます。

#vi /etc/nginx/nginx.conf application rtmp(live on; exec ffmpeg -i rtmp:// localhost / rtmp / $ name -c:v flv -c:a -s 320x240 -f flv rtmp:// localhost / rtmp-320x240 / $ name;)アプリケーションrtmp-320x240(ライブオン;)

このような構成を支援するために、2つのブラウザーを使用します。1つはアドレスrtmp:// site / rtmpで使用でき、もう1つはアドレスrtmp:// site/rtmpで320x240のように機能します。 –320x240。 次に、フラッシュプレーヤーをサイトに追加し、ボタンを使用して強度を選択します。これにより、プレーヤーがブラウザーのアドレスに送信されます。

さて、そして最後に、ある意味での音楽の動きの尻:

真実である間; do ffmpeg -re -i `` find / var / music -type f -name "* .mp3" | sort -R | head -n 1` "-vn -c:a libfaac -ar 44100 -ac 2 -f flv rtmp:// localhost / rtmp / stream; done

Gitプロキシ

Gitバージョン管理システムは、GitおよびSSHプロトコルだけでなく、HTTPのリポジトリへのアクセスを保護するように設計されています。 HTTPアクセスの実装が原始的で無料の場合、リポジトリで完全な作業を提供します。 バージョン1.6.6以降、状況は変化し、現在、プロトコルを逆にすることができます。たとえば、ファイアウォールファイアウォールをバイパスしたり、ファイアウォールの反対側から行ったり、Webインターフェイスを使用してホストされたGitホスティングを作成したりできます。

残念ですが、公式ドキュメントにはApache WebサーバーによるGitへのアクセスの構成についてのみ記載されていますが、実装自体は標準のCGIインターフェイスを備えた古いプログラムであり、lighttpdを含む他のサーバーに実際にねじ込むことができます。そしてもちろん、nginx。 サーバー自体を除いて何も必要ありませんが、nginxは仲介なしではCGIと連携できないため、Gitと小さなFastCGIサーバーfcgiwrapをインストールしましたが、FastCGIプロトコルの助けを借りてスクリプトを呼び出すことができます。

ロボットの全体のスキームは次のようになります。 fcgiwrapサーバーはバックグラウンドにあり、CGI補遺にチェックタイムが要求されます。 Nginxは、最高の状態で、指定したアドレスに移動するために、FastCGIインターフェイスを介してgit-http-backendCGIバイナリを要求するように強制されます。 入力を取得した後、fcgiwrapはGITクライアントから渡されたCGI引数のセットからgit-http-backendを監視し、結果をローテーションします。

このようなスキームを実装するために、最初にfcgiwrapを追加します。

$ sudo apt-get install fcgiwrap

設定する必要はありません。すべてのパラメータはFastCGIプロトコルによって渡されます。 VINの起動も自動的に行われます。 そのため、nginxを修正するには多すぎます。 このために、ファイル/ etc / nginx / sites-enabled / gitを作成し(そのようなディレクトリがないため、メイン構成に書き込むことができます)、次のステップの前に書き込みます。

#vi / etc / nginx / sites-enabled / git server(#ポート8080によって異なりますlisten 8080;#サーバーのアドレス(DNSエントリを追加することを忘れないでください)server_name git.example.ru;#ログaccess_log / var / log / nginx /git-http-backend.access.log; error_log /var/log/nginx/git-http-backend.error.log; arg_service〜* "git-receive-pack")(rewrite ^ / private $ uri最後;)include / etc / nginx / fastcgi_params; #git-http-backendのアドレスfastcgi_param SCRIPT_FILENAME / usr / lib / git-core / git-http-backend; #Gitリポジトリアドレスfastcgi_param GIT_PROJECT_ROOT / srv / git; #Fastcgi_paramファイルアドレスPATH_INFO $ uri; #サーバーアドレスfcgiwrap fastcgi_pass 127.0.0.1:9001; )#書き込みアクセス用のアドレス。 )$(#更新されたauth_basic「gitanonymous読み取り専用、認証済み書き込み」;#htpasswdに基づくHTTP認証auth_basic_user_file / etc / nginx / htpasswd;#カスタマイズされたFastCGIおよびnclude / etc / nginx / fastcgi_params; fastcgi_param SCRIPT_FILENAME / usr lib / git -core / git-http-backend; fastcgi_param GIT_PROJECT_ROOT / srv / git; fastcgi_param PATH_INFO $ 1; fastcgi_pass 127.0.0.1:9001;)

この構成は、3つの重要な単語を送信します。

  1. リポジトリアドレスは/srv/ gitになり、適切なアクセス権を設定できます。$ sudo chown -R www-data:www-data / srv / git
  2. リポジトリ自体は、匿名ユーザーによって読み取られず、HTTP経由でのアップロードを許可したことのせいです。$ cd / srv / git $ git config core.sharedrepository true
  3. htpasswdヘルプファイルには認証が必要です。認証を作成して新しいコードに追加する必要があります。$sudoapt-get install apache2-utils $ htpasswd -c / etc / nginx / htpasswd user1

今のところこれですべてです。nginxをリロードします。

マイクロキャッシュ

ダイナミックで頻繁に更新されるサイトの状況に気づきました。このサイトはさらに大きな野心を抱き始め(まあ、ニュースの最大のサイトの1つでワインを使いました)、コンテンツへの対処をやめました。 適切なキャッシングスキームの適切な最適化と実装には長い時間がかかり、問題はすぐに解決する必要があります。 何に影響を与えることができますか?

fennb.comのFennBaileyは、最小限の費用でこの状況から抜け出すためのいくつかの方法のアイデアを広めました。 アイデアは、単にnginxサーバーの前に置き、送信されているすべてのコンテンツをキャッシュすることです。キャッシュだけでなく、1秒間だけです。 ここでのRodzinkaは、1秒間にサイトを数百、数千回表示するためのものであり、実際には、バックエンドに1回だけ戻り、キャッシュされた最大の側を取り除きます。 この価格では、1秒は動的なサイトでは何の意味もないため、覚えておく価値はほとんどありません。

アイデアの実装からの構成はそれほどきれいに見えません:

#vi / etc / nginx / sites-enabled / cache-proxy#キャッシュを設定proxy_cache_path / var / cache / nginxlevels = 1:2 keys_zone = microcache:5m max_size = 1000m; server(listen 80; server_name example.com;#アドレスキャッシュ場所/(#プロモーションのキャッシュを有効にするset $ no_cache "";#すべてのメソッドのキャッシュを有効にするif($ request_method!〜^(GET | HEAD) )$)(set $ no_cache "1";)#クライアントがコンテンツをサイトに取得できるようにするため(no_cache = 1)、提供されたデータが2回キャッシュされないようにするのが安全です。秒、グラブの結果を獲得if($ no_cache = "1")(add_header Set-Cookie "_mcnc = 1; Max-Age = 2; Path = /"; add_header X-Microcachable "0";)if($ http_cookie〜* "_mcnc")(set $ no_cache "1";)#将来の古いキャッシュを有効/無効にするno_cache proxy_no_cache $ no_cache; proxy_cache_bypass $ no_cache;#実サーバーへのプロキシproxy_pass http://appserver.example。 ru; proxy_cache microcache; pro $ y_ $ request_uri; proxy_cache_valid 200 1s;#問題の検出Thundering herd proxy_cache_use_stale update;#標準ヘッダーを追加proxy_set_hヘッダーHost $ host; proxy_set_he ader X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; #1Mbを超えるファイルをキャッシュすることはできませんproxy_max_temp_file_size1M; )。

特に、この構成では、「proxy_cache_use_staleupdateing;」行を占有します。これがないと、キャッシュの更新の1時間ごとに発生するリクエストを通じて、バックエンドサーバーへのトラフィックの定期的なバーストが発生します。 それ以外の場合は、すべてが標準であり、説明なしで理解できます。

CAへの近くのプロキシ

インターネットセキュリティの世界的な増加に関係なく、ターゲットオーディエンスまでのサーバーの物理的な距離は依然としてその役割を果たしています。 これは、ロシアのサイトがここアメリカに設置されたサーバー上で回転していることを意味します。新しいサイトへのアクセスは、同じチャネル幅のロシアのサーバーよりも低く、アプリオリに優れています(まあ、それはあなたの目を平らにするようなものです他のすべての要因)。 さらに、サービスプランに含まれるサーバーを含め、サーバーをコードンの外部に展開する可能性が最も高くなります。 それに対して、otrimannyaがvіddachіのより高速を見ることから利益を得るために、それは狡猾になります。

可能なオプションの1つ:Zahodіでメインの生産的なサーバーをホストし、統計を可能にするフロントエンドのリソースに対してさらに強力ではなく、ロシアの領土に広がること。 Tseは、深刻な硝子体なしでshvidkostで勝つことを許可します。 フロントエンドのnginxconfig。この場合、私たちは許し、プロキシの実装を知っています。

#vi / etc / nginx / sites-enabled / proxy#100GBのストレージで30日間キャッシュを保存proxy_cache_path/ var / cache / nginxlevels = 1:2 keys_zone = static:32m active = 30d max_size = 100g; server(listen 80; server_name example.com;#プロキシの場所〜*。(jpg | jpeg | gif | png | ico | css | midi | wav | bmp | js | swf | flv | avi | djvu | mp3) $(#バックエンドアドレスproxy_pass back.example.com:80; proxy_redirect off; proxy_set_header Host $ host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_x; proxy_cache_valid 30d; proxy_ignore_headers "Cache-Control" Expires "; proxy_cache_key" $ uri $ is_args $ args "; proxy_cache_lock on;))

ヴィスノフキ

今日、nginxの助けを借りて、名前のないタスクを壊すことができます。その多くはWebサーバーやHTTPプロトコルに関連していません。 メールプロキシ、ストリーミングサーバー、Gitインターフェースは、これらのタスクのほんの一部です。

iRedMail-有効な終了コードでメールサーバーを保存する準備ができました。 ウェアハウスはPostfixSMTPサーバー(メール転送エージェント、略してMTA)に基づいています。 コレクションには、Dovecot、SpamAssassin、Greylist、ClamAV、SOGo Roundcube、NetData、NGINXも含まれます。

Dovecot-IMAP/POP3サーバー。

Spamassassin-スパムフィルタリング。

グレイリスト--Zasіbはsіrihリストに基づいてスパムと戦います。

ClamAV-アンチウイルス。

Roundcubeі SOGo-電子メールを使用するロボット用のWebクライアント。

NetData-サーバーロボットをリアルタイムで監視するためのプログラム。

Nginx-Webサーバー。

サポートするオペレーティングシステム: CentOS 7, Debian 9, Ubuntu 16.04 / 18.04, FreeBSD 11/12і OpenBSD 6.4.

iRedMailには、有料版と非コピー版の両方があります。これらは、iRedAdminメールフォルダ自体のWebインターフェイスと同じ機能の1つです。 非コピーバージョンでは、ドメインを作成したり、coristuvachsや管理者の画面を投稿したりすることはできなくなりました。 エイリアスを作成する必要がある場合、iRedAdminを介してコードレスバージョンを作成することはできません。 幸いなことに、これはPostfixAdminと呼ばれるため、コストのかからないソリューションであり、実装することができます。 PostfixAdminはiRedMailに簡単にアクセスでき、驚異的に機能します。

インストール済み

インストールには、より大きなオペレーティングシステムの1つが必要です。 UbuntuServer18.04をツイートします。 また、ドメイン名を購入してDNSゾーンを設定することもできます。 ドメインレジストラのDNSサーバーを獲得するには、ドメインゾーンを管理するためにAとMXの2つのレコードを分離する必要があります。 ドメイン名レジストラの特別なオフィスに委任を設定することで、独自のDNSを微調整することもできます。

ドメインゾーンの調整pіdhourvikoristannyaDNSレジストラ

尊敬を! 1つのtizhnyaまでの数年間の時間nabuttyanalashtuvanDNS。 注文が完了するまで、メールサーバーは正しく機能しません。

インストールするには、iRedMailサイトから現在のバージョンをダウンロードします。 今日0.9.9。

#wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.9.tar.bz2

アーカイブを解凍しましょう。

#tar xjf iRedMail-0.9.9.tar.bz2

アーカイブの解凍

І作成したフォルダに移動します。

#cdiRedMail-0.9.9

iRedMailインストーラーのあるフォルダー

フォルダをチェックインする

フォルダスペース

ІiRedMailインストールスクリプトを実行します。

#bash iRedMail.sh

メールシステムのインストールが開始されます。 インストールプロセスには低電力が必要です。 インストールを待ちましょう。

コブvstanovlennya

インストールディレクトリを選択します

次に、Webサーバーを選択する必要があります。 選択肢が少ないので、NGINXを選択してください。

Webサーバーを選択します

ここで、データベースサーバーを選択する必要があります。データベースサーバーは、メールシステムを使用してロボットにインストールおよび更新されます。 MariaDBを選択します。

データベースサーバーを選択します

データベースのrootパスワードを設定します。

データベースのパスワードパスワードを作成する

次に、メールドメインを指定します。

メールドメインの作成

管理者の画面でパスワードを作成しましょう [メール保護] domain.ru。

メール管理者パスワードの作成

Webコンポーネントを選択します

修正により確認されました。

確認の確認

インストールが実行されています。

インストール済み

インストールが完了すると、ルールが確認されます iptablesにとって SSHファイアウォールを再起動します。 iRedMailは機能します iptables。 Ubuntuでは、ファイアウォール管理ユーティリティを微調整するのが最も一般的です UVW。 そのような必要がある場合は、インストールしてください UVW (apt install ufw)そして次のルールを追加しますb UVW(お尻: ufwは「nginxfull」を許可しますまた ufwはPostfixを許可します)メールサーバーロボットをブロックせずに。 次のコマンドを使用して、使用可能なルールのリストを確認できます。 ufwアプリリスト。 気づきましょう UVW: ufw enable.

iptablesルールの作成

ファイアウォールの再起動

iRedMailのインストールが完了した場所。 システムは、Webインターフェースのアドレスとログイン用のデータを提供してくれました。 メールシステムのすべてのコンポーネントをアップグレードするには、サーバーを再構成する必要があります。

インストールの完了

再エンゲージしましょう。

#再起動

Nalashtuvannya

穂軸については、すべてが機能することをperekonatsyaする必要があります。 アドレスのiReadAdminログインパネルに移動してみましょう https:// domain / iredadmin。 ログイン [メール保護] domain.ru、パスワードはインストール時に作成されました。 Єロシアのインターフェース。

ヤクバチモ、すべてがうまくいきます。 iRedAdminに入るとき、あなたは、何よりも、証明書と結びついた安全の恩赦を取り除いた。 これは、iRedMailが、ブラウザがインストールされている自己署名証明書を縫い付けることができるという事実に依存します。 この問題を解決するには、有効なSSL証明書をインストールする必要があります。 єを購入した場合は、ヨガをインストールできます。 アプリケーションには、Let'sEncryptのようなコストのかからないSSLをインストールします。

Let'sEncryptSSL証明書のインストール

追加のcertbotユーティリティの証明書をインストールします。 その場でDodamoリポジトリ。

#add-apt-repository ppa:certbot / certbot

必要なコンポーネントを使用してcertboot自体をインストールしましょう。

#apt install python-certbot-nginx

証明書を取ります。

#certbot --nginx -d domain.ru

コマンドを実行すると、システムは電子メールアドレスを入力するように要求します。 このため、証明書が生成されるサーバーブロックを知ることは不可能であるため、すべてを許してください。 この状況では、これは正常であり、サーバーブロックのシャードはありません。 私たちにとって、証明書を取得するのはスマットです。

証明書の撤回

Bachimoと同様に、証明書は正常に取り消され、システムは証明書自体とキーへのパスを表示しました。 私たちにヤクラズを悪臭を放ち、私たちは必要です。 「/etc/letsencrypt / live/domain」フォルダに保存されている4つのファイルを削除しました。 ここで、縫い付けられた証明書を私が持ち去った証明書と交換するために、Webサーバーに証明書について通知する必要があります。 1つのファイルのみを編集する必要があります。

#nano /etc/nginx/templates/ssl.tmpl

新しい残りの2行を変更します。

SSL証明書を置き換える

証明書が取り消されたときにシステムが通知したように、パスをファイルからパスに変更します。

SSL証明書の置き換え

ІNGINXを再起動します。

#service nginx restart

もう一度ログインしてみてください iRedAdmin.

SSL証明書の再検証

証明書には許しはありません。 証明書は有効です。 あなたは城を押して、力のヨガに驚嘆することができます。 certboot証明書の期間を終了すると、自動的に更新できます。

それでは、Dovecot証明書とPostfix証明書について説明しましょう。 wreeditableの2つの構成ファイルがあります。 ヴィコヌエモ:

#nano /etc/dovecot/dovecot.conf

私たちはブロックを知っています:

#SSL:グローバル設定。

Іminyaєmoは私たちの証明書を処方します。

Dovecotの証明書を置き換える

「ssl_protocols」行にも注意してください。 Dovecotを再起動するときは、ssl_protocolsから削除することを検討してください。

#nano /etc/postfix/main.cf

私たちはブロックを知っています:

#SSLキー、証明書、CA

І新しい方法で証明書のファイルに変更します。

Postfixの証明書を変更する

証明書のインストールが完了した人。 DovecotとPostfixを再起動する必要があります。さらに良いのは、サーバーを再起動することです。

#service dovecot restart

#再起動

PHPMyAdminのインストール

この点はあまり明確ではありませんが、データベースを手動で操作するには、vikonatiヨガを使用してPHPMyAdminをインストールすることをお勧めします。

#apt install phpmyadmin

NGINXはリストにないため、インストーラーはロボットに何らかのWebサーバーをフィードしてPHPMyAdminをセットアップします。Tabキーを押して移動します。

PHPMyAdminのインストール

インストールが完了した後、phpmyadminが何らかのロックを使用してディレクトリにシンボリックリンクを作成する必要性を獲得するために、NGINXは機能します。

#ln -s / usr / share / phpmyadmin / var / www / html

私はに行こうとします https:// domain / phpmyadmin /

PHPMyAdminは機能します。 接続は証明書によって保護されており、毎年の恩赦はありません。 さあ行こう。 MySQLデータベース管理者(MariaDB)を作成しましょう。

#mysql

ІMariaDB管理コンソールによって消費されます。 次のrobimoコマンドを実行します。

MariaDB> CREATE USER "admin" @ "localhost" IDENTIFIED BY "password";
MariaDB>GRANTオプションを使用して*。*のすべての特権を"admin"@"localhost"に付与します。
MariaDB> FLUSH PRIVILEGES;

MySQLKoristuvachの作成

УсіOK、viconsのエントリ。 PHPMyAdminの準備が整いました。

PostfixAdminのインストール

PHPMyAdminのようなPostfixAdminの原則はインストールされない場合があります。 メールサーバーは奇跡的に実用的で、コンポーネントはありません。 ただし、メールエイリアスを作成することはできません。 何も必要ない場合は、大胆にスキップできます。 それでもエイリアスが必要な場合は、有料版のiReaAdminを購入するか、PostfixAdminをインストールするかの2つのオプションがあります。 明らかに、データベースにエイリアスを手動で書き込むことにより、追加のソフトウェアなしで作業することは可能ですが、手動ではなく、すべての人のためではありません。 一目でiRedMailにインストールされ統合されているPostfixAdminをハッキングすることをお勧めします。 インストールを開始しましょう:

#apt install postfixadmin

待って、プログラムのシステムデータベースのパスワードを作成しましょう。

PostfixAdminのインストール

PostfixAdminのインストール

PHPMyAdminをインストールする前の類推のためのRobimoシンボリックリンク。

#ln -s / usr / share / postfixadmin / var / www / html

Robimo Koristuvacha、Webサーバーはカタログマネージャーによって起動されます。 このモードでは、NGINXはwww-dataという名前で起動されます。

#chown -R www-data / usr / share / postfixadmin

次に、PostfixAdmin構成ファイルを編集し、iRedAdminなどのデータベースに関する新しい情報を追加する必要があります。 昇進のために、このデータベースはvmailと呼ばれます。 PHPMyAdminにアクセスすると、そこでチャットできます。 したがって、PostfixAdminがデータベースに即座に変更を加えるために、PostfixAdmin構成に書き込まれます。

#nano /etc/postfixadmin/config.inc.php

私たちは行を知っています:

$ CONF ["database_type"] = $ dbtype;
$ CONF ["database_host"] = $ dbserver;
$ CONF ["database_user"] = $ dbuser;
$ CONF ["database_password"] = $ dbpass;
$ CONF ["database_name"] = $ dbname;

І一目で:

$ CONF ["database_type"] = "mysqli"; #データベースタイプ
$ CONF ["database_host"] = "localhost"; #データベースサーバーホスト
$ CONF ["database_user"] = "admin"; #vmailデータベースへの書き込みアクセス権でログインします。 あなたは創造物の管理者の前に邪魔することができます
$ CONF ["database_password"]="パスワード"; #指定したパスワードのパスワード
$ CONF ["database_name"] = "vmail"; #データベース名iRedMail

データベースに関する情報を入力する

SOGoメールWebクライアントを獲得することを計画している場合は、もう1つの補遺を作成し、段落のPostfixAdmin暗号化を覚えておく必要があります。 $ CONF ["encrypt"] h 「md5crypt」「dovecot:SHA512-CRYPT」。 よろしければ、SOGoで認証しようとすると、PostfixAdminで作成されます。間違ったログインまたはパスワードはご容赦ください。

暗号化タイプの変更

さて、インストールを正常に完了し、許しを受け取らないためには、データベースまで待つ必要があります。 PHPMyAdminを介して手動でzrobiti。 vmailデータベースを選択し、[SQL]タブに移動します。 vіkniで私たちは入ります:

メールボックスのDROPINDEXドメイン。
エイリアスのDROPINDEXドメイン。
ALTERTABLEエイリアスADDCOLUMN`goto` text NOT NULL;

データベースまで尋ねる

「進む」を押します。 これですべての設定が完了しました。PostfixAdminWebインターフェイスに移動して、インストールを完了することができます。 入力する必要のあるブラウザ: https://domain/postfixadmin/setup.php.

このように見える罪:

PostfixAdminのインストール

指示のためにすべてが壊れている場合、恩赦は無罪です。 それでも存在する場合は、それらを削除する必要があります。そうしないと、システムは続行できません。 インストールパスワードを設定し、「 パスワードハッシュを生成するシステムはパスワードのハッシュを生成します。これはパラメータに挿入する必要があります $ CONF ["setup_password"].

PostfixAdminのインストールを完了します

構成ファイルのパラメーターの変更

次に、新しいパスワードを入力して、PostfixAdmin管理者を作成します。 ポストマスターログインで管理者を作成しないでください。シャードでiRedAdmin管理パネルへのログインに問題が発生する可能性があります。

PostfixAdmin管理者によって作成されました

管理者、すべてが完了しました。 あなたはエントリーに勝つことができます。

安全上の理由から、postfixadminディレクトリのsetup.phpファイルの名前を変更するか削除することをお勧めします。

次へ移りましょう: https:// domain / postfixadmin /斜めデータの作成を紹介します。 PostfixAdminは、iRedAdminと同様に、ロシア語を使用できます。 承認時間を取り消すことができます。

coristuvachの郵便スクリーンショットを作成してみましょう。

iRedMailモジュールの通知/通知

iRedMailモジュールの背後でiRedAPDをサポートします。 動作中のモジュールが登録されている構成ファイルを参照してください。 別のモジュールが必要ない場合は、構成ファイルからそのモジュールを削除して、使用を停止できます。 ヴィコヌエモ:

#nano /opt/iredapd/settings.py

私たちは行を知っています" プラグインそして、どうやらあなたはどのコンポーネントも必要としません。 コンポーネントを取ります 「グレーリスト」。 Vіnzvichaynodositはスパムから効果的に保護しますが、多くの場合、到達せず、葉が必要です。

グレイリスト(サーリスト)は、メールマネージャーのサーバーの動作の分析に基づいた自動スパム保護のテクノロジーです。 「グレイリスト」が有効になっている場合、サーバーは最初に不明なアドレスからのリストの受け入れを開始し、許しについて通知します。 そのようなとき、サーバーは再び力を繰り返すことで罪を犯します。 スパマープログラムはこれを恥ずかしがらないように呼びます。 シートが再び重ねられるとすぐに、ワインは30日間リストに追加され、交換が最初に送信されます。 Vykoristovuvattseyモジュールchinіvіrіshuyteあなた自身。

送信されたモジュールの通知/警告

変更後、再起動する必要があります iRedAPD.

#service iredapd restart

メールサーバーのテスト

iRedMailメールサーバーのインストールが完了した相手。 最終段階であるテストに進むことができます。 2つの郵便スクリーンショットを作成します。 perevіrkaの場合、1つはiRedAdminを介して、もう1つはPostfixAdminを介して、リストを1つのメールボックスから次のメールボックスに変更します。 iRedAdminにはスクリーンショットがあります [メール保護] domain.ru。 PostfixAdmin- [メール保護] domain.ru

iRedAdminでのkoristuvachの作成

PostfixAdminでのkoristuvachの作成

coristuvachiが起こったとは信じがたいです。

PostfixAdminメールボックスの「宛先」列を尊重する場合は、iRedAdminとPostfixAdminで作成されたメールボックスの違いをマークできます。 iRedAdminで作成されたスクリーンショットは「 転送のみ"、ただしPostfixAdminで-"として作成 メールボックスなぜそんなに違うのか、どういう違いがあるのか​​、長い間理解できず、一節に出くわしました。 iRedAdminのボックスはエイリアスなしで作成され、PostfixAdminのボックスはエイリアス付きで作成されます。

エイリアスが表示されている場合、メールボックスはiRedAdminで作成されたかのように表示されます。 転送のみ".

Vydalennya aliasiv

エイリアスが削除されました。 PostfixAdminを確認してください。

ヤクバチモ号はすべて「フォワードのみ」になりました。 したがって、iRedAdminエイリアスで作成されたボックス内に作成するだけで、「メールボックス」になります。 原則として、実用性は気にしません。 PostfixAdminで作成されたメールボックスにエイリアスを作成することはできません。 エイリアスを作成するための置換は、すでに再ドラフトする必要があります。 エイリアスについて説明する前に、新しいバージョンのiRedMailでは、Postfixカードの1つを、エイリアスであるかのように変更する必要があります。 他に何かを作成しない場合、エイリアスの作成は機能しません。 ファイルが必要な人 /etc/postfix/mysql/virtual_alias_maps.cf正しい:

ヴィコヌエモ:

#nano /etc/postfix/mysql/virtual_alias_maps.cf

私が直します。

Nalashtuvannya aliasiv

Postfixを再起動します:

#service postfix restart

どちらかといえば、すべてを行うことができます。

それでは、メールの再確認に進みましょう。 引き出しをする user1 Roundcubeを通過してボックスに入ります user2-SOGoを使用して、画面からシートを修正します user1user2戻ってきました。

Roundcubeでシートを強化する

SOGoから葉を取る

SOGoへのシートの強化

Roundcubeからの葉の除去

すべてが問題なく動作します。 シートの配達には2〜5秒かかります。 そのため、葉自体が奇跡的にYandexサーバーとmail.ru(書き直されたもの)に配信されます。

これで、エイリアスを変更できます。 箱を作ろう user3スクリーンショットからのzrobimoエイリアス user1ボックスに user2。 Іスクリーンショットから修正されたシート user3ボックスに user1。 どのシートで画面に表示できますか user2.

作成エイリアス

user3のスクリーンショットからuser1のスクリーンショットへのシートの強化

画面上のシートを削除するuser2

Zロボットaliasivtezh口ひげハラズド。

ローカルメールクライアントを介してメールサーバーのロボットに抗議します。 お尻には、MozillaThunderbirdが見えます。 さらに2つのcoristuvachivを作成しましょう。 client1і client2。 IMAPまたはPOP3を介して1つの画面を追加でき、1秒あたり1つのスクリーンショットのリストを追加できます。

IMAP接続

POP3経由の接続

クライアント1からクライアント2にシートを強制します。

クライアント1によって発行された

クライアント2のOtrimanya

私は逆の順序です。

クライアント2によって発行されました

クライアント1のOtrimanya

すべてが機能します。

アドレスに行く方法: https:// domain / netdata、posterigatiグラフィックがシステムになります。

ヴィスノヴォク

このインストールで、iRedMailメールシステムのセットアップとテストが完了します。 その結果、強力なSSL証明書、2つの異なるメールWebクライアント、2つのコントロールパネル、およびメールにインストールされているスパム対策とウイルス対策を備えた、完全に費用のかからない完全なメールサーバーを削除しました。 必要に応じて、WebメールクライアントをMicrosoftOutlookやMozillaThunderbirdなどのローカルメールクライアントに置き換えることができます。 メールWebクライアントをインストールする予定がない場合はインストールできないため、サーバーはインストールしませんが、必要な方をインストールします。 私は特にSOGoが好きです。これは、モバイルデバイス向けの最適化のインターフェイスであるため、スマートフォンから手動でメールを確認することをお勧めします。 NetDataとiRedAdminでも同じことを行う必要があります。修正する予定がない場合は、インストールしないでください。 Tsyaの郵便システムは、リソースに対してそれほど強力ではありません。 すべては、1024MBのRAMと1つの仮想プロセッサを備えたVPSサーバーで実行されます。 与えられた郵便制度に従って食べ物を失ったので、コメントに書いてください。

P.S. 1 GBのRAMを搭載したさまざまなオペレーティングシステム(Ubuntu、Debian、CentOS)で製品をテストしたところ、ClamAVロボットには1GBでは不十分であることがわかりました。 Mayzhe zavzhd with vikoristanny1GBのメモリアンチウイルスposilavsyaforMercypov'yazanuzデータベース。 場合によっては、DebianおよびUbuntuオペレーティングシステムでは、アンチウイルスがサーバーを通過したメールをスキャンしなかっただけで、それ以外の場合はすべて正常に機能しました。 CentOSでは、状況は多少異なりました。 clamdサービスはシステムを再びハングアップさせると同時に、サーバーの通常の動作を無効にしました。 Webインターフェイスにログインしようとすると、NGINXは定期的に502と504の恩赦を確認しました。 郵便局は一度にtezhを壊しました。 最大2GBのRAMを追加すると、ウイルス対策ロボットとサーバーからのあらゆる種類の日常的な問題が発生しなくなりました。 ClamAVがメールサーバーをスキャンし、メールサーバーを通過する方法、ログへの書き込みについて。 テストしたところ、ウイルスは貸金庫でブロックされました。 メモリリカバリは約1.2〜1.7GBでした。

この記事は、メールサーバーまたは外部メールサービスのプロキシとして、構成NGINXPlusまたはNGINXオープンソースとして表示されます。

序章

NGINXは、IMAP、POP3、およびSMTPプロトコルをメールアカウントをホストするアップストリームメールサーバーの1つまでプロキシできるため、電子メールクライアントでは逆にすることができます。 Thayは、次のような多くの利点をもたらす可能性があります。

  • メールサーバーの数を簡単にスケーリング
  • さまざまなルールに基づいてメールサーバーを選択し、クライアントのIPアドレスに基づいて最も近いサーバーを選択します
  • メールサーバー間で負荷を分散する

前提条件

    NGINX Plus(プロキシ電子メールトラフィックに必要な高度な電子メールの有効化)またはNGINXオープンソースは、電子メールプロキシ機能の--with-mailパラメーターとSSL/TLSサポートの--with-mail_ssl_moduleパラメーターを使用してメールモジュールをコンパイルしました。

    $ ./configure --with-mail --with-mail_ssl_module --with-openssl = [DIR] /openssl-1.1.1

    IMAP、POP3および/またはSMTPメールサーバーまたは外部メールサービス

SMTP / IMAP/POP3メールプロキシサーバーの構成

NGINX構成ファイル:

    郵便物(#...)

    メール(server_name mail.example.com;#...)

    メール(server_name mail.example.com; auth_http localhost:9000 /cgi-bin/nginxauth.cgi;#...)

    特に、認証サーバーのような恩赦についてバガーに伝えることができる場合は、proxy_pass_error_messageディレクティブを指定します。 これは、メールボックスのメモリが不足している場合に便利です。

    mail(server_name mail.example.com; auth_http localhost:9000 /cgi-bin/nginxauth.cgi; proxy_pass_error_message on;#...)

    Nalashtuvatiは、サーバーブロックを備えたSMTP、IMAP、またはPOP3サーバーです。 スキンサーバーの場合、次のように指定します。

    • the ポート番号 listenディレクティブは特別なプロトコルに準拠するために何が必要ですか
    • the プロトコルプロトコルディレクティブを使用する(指定されていない場合は、listenディレクティブで指定されたポートから自動的に検出されます)
    • 許可 認証方法 imap_auth、pop3_auth、およびsmtp_authディレクティブを使用する場合:

    server(listen 25; protocol smtp; smtp_auth login plain cram-md5;)server(listen 110; protocol pop3; pop3_auth plain apop cram-md5;)server(listen 143; protocol imap;)

メールプロキシの認証の設定

POP3 / IMAP / SMTPは、最初に外部HTTP認証サーバーを認証するか、認証スクリプトによってクライアントに認証を要求します。 NGINXメールサーバープロキシでは、認証サーバーが必須です。 サーバーは、HTTPプロトコルに基づくNGINX認証プロトコルのようなフォールバックで役立つように作成できます。

認証が成功すると、認証サーバーはアップストリームサーバーを選択し、リクエストをリダイレクトします。 あなたの意見では、サーバーの変更は前進するラインから形成されます:

HTTP / 1.0 200 OK Auth-Status:OK Auth-Server: #メール処理に使用されるアップストリームサーバーのサーバー名またはIPアドレス認証ポート: #アップストリームサーバーのポート

認証が失敗した場合、認証サーバーはエラーメッセージを返します。 あなたの意見では、サーバーの変更は前進するラインから形成されます:

HTTP / 1.0 200 OK認証-ステータス: #「無効なログインまたはパスワード」など、クライアントに返されるエラーメッセージ Auth-待機: #接続が閉じられるまでの残りの認証試行回数

どちらの場合も、応答には次のものが含まれることに注意してください HTTP / 1.0 200 OK混乱するかもしれません。

認証サーバーの認証サーバーの詳細については、NGINXリファレンスドキュメントのngx_mail_auth_http_moduleを参照してください。

メールプロキシ用のSSL/TLSの設定

POP3 / SMTP / IMAP over SSL / TLSを使用すると、クライアントと電子メールサーバー間でデータがどのように渡されるかを確認できます。

電子メールのSSL/TLSを有効にするには:

    コマンドラインでnginx-Vコマンドを入力し、出力でwith -mail_ssl_module行を探して、NGINXがSSL/TLSサポートで構成されていることを確認します。

    $ nginx -V設定引数:... with-mail_ssl_module

    サーバー証明書と秘密鍵を持っていることを確認し、それらをサーバーに配置します。 証明書は、信頼できる認証局(CA)から取得するか、OpenSSLなどの追加のSSLライブラリによって生成することができます。

    ssl on;

    びっくりする;

    追加のSSL証明書:ssl_certificateディレクティブから証明書(PEM形式のもの)へのパスを指定し、ssl_certificate_keyディレクティブで秘密鍵へのパスを指定します。

    メール(#... ssl_certificate /etc/ssl/certs/server.crt; ssl_certificate_key /etc/ssl/certs/server.key;)

    テキストssl_processおよびssl_ciphersディレクティブを使用してSSL/TLSから強力なバージョンと暗号のみをツイートするか、または適切なプロトコルと暗号をインストールできます。

    メール(#... ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5;)

メールプロキシ用のSSL/TLSの最適化

これらのヒントは、NGINXメールプロキシをより速く、より安全にするのに役立ちます。

    メールコンテキストと同じレベルに設定されたプロセッサの数worker_processesディレクティブに表示されるダイヤルワーカープロセス番号:

    worker_processes auto; 郵便物(#...)

    共有セッションキャッシュを有効にし、自動で組み込みセッションキャッシュを無効にします。 mail(server_name mail.example.com; auth_http localhost:9000 /cgi-bin/nginxauth.cgi; proxy_pass_error_message on; ssl on; ssl_certificate /etc/ssl/certs/server.crt; ssl_certificate_server key; ssl_protocols 2; ssl_ciphers HIGH:!aNULL:!MD5;; protocol pop3; pop3_auth plain apop cram-md5;)server(listen 143; protocol imap;))

    私の意見では、SMTP、POP3、IMAPの3つの電子プロキシサーバーがあります。 SSLおよびSTARTTLSをサポートするように構成されたすべてのサーバー。 SSLセッションパラメータがキャッシュされます。

    ホイッププロキシサーバーHTTP認証サーバー–この構成はこの記事の範囲を超えています。 サーバーに報告されたすべてのアラームは、クライアントに通知されます。

©2022androidas.ru-Androidのすべて