directadmin + nginxとそれらを友達にする方法

ご存知のように、Apacheは良いことですが、その重さは可能性を大きく制限します。

問題を解決するために、フロントエンドとバックエンドの束が使用されます。 Apacheはバックエンドサーバーとして機能し、その他はフロントエンドサーバーとして軽量です。 この記事では、nginxがフロントエンドサーバーとして機能する束を考えます。

インターネットには、nginxの設定方法に関する記事がたくさんありますが、nginxをdirectadminコントロールパネルで動作させる方法には触れていません。





どうだった。



タスクはそうでしたが、解決策はすぐに思い浮かびませんでした。 少しグーグルで、いくつかのソリューションオプションが登場しました。

1)ポート80でリッスンしている他のデバイスにラップし、すでにnginxをリッスンします。 特定のゲームプレイを課しているという事実のため、このソリューションはあまり好きではありませんでした。

2)何らかの方法で、Apacheが別のポート(80ではない)をリッスンするようにします。



通常の状況で、ホスティングコントロールパネルがない場合は、すべてが簡単です-appache configのハンドルを修正して、コントロールパネルを使用すると、機能しません。 直接管理によってサイトの設定が少し変更されるたびに、変更されたサイトに関連するappache構成のセクション全体が上書きされます。



啓発



directadminがインストールされているディレクトリに少し登ったところ、/ usr / local / directadminで、仮想ホストを作成するためのテンプレートがあることがわかりました。 出来上がり...幸福は限りないものでした。 すべてがそれよりも簡単であることが判明しました!



実装



仮想ホストに関連する$ DIRECTADMIN_HOME / data / templates /ディレクトリから$ DIRECTADMIN_HOME / data / templates / customディレクトリにファイルをコピーする必要があります。

これは、directminバージョンを更新するときに、変更したテンプレートが標準のテンプレートで上書きされないようにするために行われます。



#cd $ DIRECTADMIN_HOME / data / templates /

#cp virtual_host.conf custom / virtual_host.conf

#cp virtual_host2.conf custom / virtual_host2.conf

#cp virtual_host_sub.conf custom / virtual_host_sub.conf

#cp virtual_host2_sub.conf custom / virtual_host2_sub.conf



コピーしたファイルで、ポートを修正する必要があります。 各ファイルでは、次の行:

<VirtualHost | IP |:80>

に置き換えます:

<VirtualHost | IP |: 8181 >

これで、apacheはポート8181で仮想ホストをリッスンします。 そして、トラフィックが配信されたように、私たちは世話をします。 より正確には、nginxがこれを処理します。



Nginxのインストール



これは基本的に行われます。

リポジトリからインストールできます(ただし、これはお勧めしません)。

#apt-get install nginx

リポジトリからインストールすることをお勧めしませんか? 新しい安定バージョンのリリースは非常に頻繁に行われるため、開発者のサイトから新しいバージョンをダウンロードすることをお勧めします。

執筆時点では、最新の安定バージョンは0.6.35で、最新の最新バージョン0.7.42およびバージョン0.4.13は、リポジトリでの比較に利用できます。



それでは、インストールを始めましょう。 プロセスを簡単に説明するか、コマンドでのみ言うこともできます。 次のリンクでより詳細な説明を見つけることができます。



#mkdir / root / nginxsrcs && cd / root / nginxsrcs

#wget http://sysoev.ru/nginx/nginx-0.7.42.tar.gz

#tar zxf nginx-0.7.42.tar.gz

#cd nginx-0.7.42

#。/設定

#make

#make install

#cd / usr / local / nginx / conf

#vim nginx.conf



キャッシュプロキシサーバーとしてnginxを構成する必要があります。

あなたは、Apacheなしで静的(画像、JSファイル、html)を配ってみませんか? それは簡単です-nginxは ".htaccess"の操作方法を知りません(正直なところ、私はそれについて嬉しいだけです)。 ただし、必要に応じて構成できます。



次は重要な場所でマークされた設定です:



worker_processes 3;

pid logs/nginx.pid;

events {

worker_connections 1024;

}



http {

access_log off;

error_log off;

include mime.types;

default_type application/octet-stream;



log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent"';

server {

access_log off;

error_log off;

listen 1.2.3.4:80; # IP:port

server_name *.*; # - . apache



charset windows-1251;



location /

{

proxy_pass h ttp://1.2.3.4:8181/; # apache.

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_for;



client_max_body_size 10m;

client_body_buffer_size 8k; #128k



proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;



proxy_buffer_size 4k;

proxy_buffers 4 32k;

proxy_busy_buffers_size 64k;

proxy_temp_file_write_size 64k;

}

}









設定を保存し、nginxを実行してみてください。

すでにapacheを実行している場合、ポート80はapacheによって占有されているため、nginxは起動しない可能性があります。



ファイル/etc/httpd/conf/httpd.confを修正する必要があります。

文字列「Listen 80」を「Listen 8181」に置き換えます。

「NameVirtualHost 1.2.3.4:8181」の「NameVirtualHost 1.2.3.4:80」

Apacheを再起動します。 nginxを起動します。

出来上がり! すべてが機能します。 任意の仮想ホストを使用できます。



リアルIP



クライアントIPは1.2.3.4であることがわかります。

これは、クライアントの実際のIPがnginxによって受信され、Apacheによってトラフィックが転送されるときに、すでに内部IPから送信されているという事実により発生します。

しかし、これは問題ではありません。 Apache用の優れたmod_rpafモジュールがあります。

基本的にインストールされます。



#cd / root / nginxsrcs

#wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz

#tar xzf mod_rpaf-0.6.tar.gz

#cd mod_rpaf-0.6

#apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c



mod_rpaf.conf構成ファイルを作成します。

LoadModule rpaf_module /usr/lib/apache/mod_rpaf-2.0.so

RPAFenable On

RPAFsethostname Off

RPAFproxy_ips 127.0.0.1 1.2.3.4

RPAFheader X-Real-IP









Apacheを再起動します。



以上で、nginx + apache + directadminが完全に機能するようになりました。



All Articles