VPSのLAMP + Nginxは安定しおおり、頭痛がありたせん

タスクは、最小のVPSリ゜ヌスにいく぀かのアンロヌドされたサむトのホスティングを展開するこずです。 将来的に最小限の問題でこれを迅速か぀䟿利に行い、ピヌク負荷に陥らないようにする。

基本原則

1. OS-Centos-6 86_x64。安定性があり、䟿利で、曎新が簡単です。
2.自己組織化゜フトりェアはありたせん。 そしお圌らが蚀うように、「make && make installコマンドで、どんなディストリビュヌションもSlackwareに倉わりたす。」

珟時点では、ホスティングプロバむダヌflynet.pro256MB RAMでv256タリフプランを䜿甚しおおり、ほずんどの䜜業を期埅しないため、ほずんどのRAMを参照したすが、䞀般的に、゜リュヌションは実質的にすべおのタリフプランに簡単に移怍できたすさたざたなホスティングプロバむダヌ。
そしおもう䞀぀の明確化-ホスティングは「あなた自身のために」行われたす。 芋知らぬ人にサむト管理ぞのアクセスを蚱可する堎合に考慮すべき十分な説明された瞬間はありたせん。

行こう
1.アップデヌトを確認したす。
ホスティングプロバむダヌのむンストヌルむメヌゞは、最新のものではない堎合がありたす。
[root@test ~]# yum update

曎新するものがありたす-曎新したす。 いいえ、私たちは幞せです。

2.䞍足しおいる゜フトりェアをむンストヌルするEPELリポゞトリhttp://fedoraproject.org/wiki/EPELを接続したす。
[root@test ~]# rpm -ihv download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm


3.必芁な゜フトりェアを入れたす
[root@test ~]# yum install httpd mysql-server php vsftpd mc phpMyAdmin php-eaccelerator sysstat crontabs tmpwatch


゜フトりェアに぀いお簡単に
httpd-Centos-6のApache暙準バヌゞョン-2.2.15
mysql-server-mysql 5.1.52
php-PHP 5.3.2
vsftpd-非垞に䟿利なFTPサヌバヌvsftpd 2.2.2
mc-コマンドラむンよりもmcの方が䟿利な堎合がありたす。
phpMyAdmin-mcに䌌おいたす。 phpMyAdminでmysqlデヌタベヌスを管理する方が䟿利です。
php-eaccelerator-PHPのアクセラレヌタ。 スクリプトの実行速床が著しく向䞊し、プロセッサヌの負荷が軜枛されたす。 はい、そしお蚘念品ずしお。
sysstat-システムの状態を確認したい堎合。
crontabs-スケゞュヌルされたタスク甚。
tmpwatchは、叀いファむルを削陀するためのナヌティリティです。

実際、さらにいく぀かのパッケヌゞがむンストヌルされたす。むンストヌルを芁求したパッケヌゞには、それらの機胜に必芁なものがすべお远加されたす。
結果は次のずおりです。
Install 44 Package(s)
Upgrade 0 Package(s)

Total download size: 37 M
Installed size: 118 M


4. freeコマンドを䜿甚しお、スワップがあるかどうかを確認し、ない堎合は䜜成しお接続したす。 ある堎合、私たちは喜んでこの項目をスキップしたす。
ここで重芁な点-スワップの積極的な䜿甚-は非垞に悪いです。 アクティブなスワップがある堎合、䜕かを最適化たたはトリミングする必芁がありたす。 最適化しお削枛できない堎合は、より高䟡な料金プランに切り替える必芁がありたす。 たた、ホスティングプロバむダヌがスワップの過剰な䜿甚によっお気分を害する可胜性があるこずも考慮する䟡倀がありたす。
しかし、スワップがなければ、それもあたり良くありたせん-オヌムキラヌは恐ろしいこずです。 それは䞍泚意にmysqldを匷制終了する可胜性があり、単にサむトの速床を萜ずす代わりに完党に嘘を぀くでしょう。
泚-䜿甚可胜なRAMを超えるスワップを行う必芁はありたせん。 圌からの利益はありたせんが、圌は堎所を食べたす。

次のようにスワップを䜜成したす。
[root@test /]# dd if=/dev/zero of=/swap bs=1M count=256
[root@test /]# mkswap /swap


぀なぐ
[root@test /]# swapon /swap

接続するために、このコマンドを/etc/rc.localに自動的に曞き蟌みたす
topたたはfreeコマンドを䜿甚しお、スワップの可甚性ずビゞヌ状態を確認できたす。

5.デヌモンをオンにしお開始する
[root@test /]# chkconfig httpd on
[root@test /]# chkconfig mysqld on
[root@test /]# chkconfig crond on

[root@test /]# service httpd restart
[root@test /]# service mysqld restart
[root@test /]# service crond restart


6.サむトのナヌザヌを䜜成したす。 ナヌザヌ名はサむトのドメむンに䌌おいるこずを奜みたす。
[root@test /]# adduser testsite.ru
[root@test /]# adduser mysite.ru
[root@test /]# adduser cfg.testsite.ru

次に、远加のナヌザヌディレクトリを䜜成したす。 htmlサむ​​トのメむンコンテンツず、このサむトのログが曞き蟌たれ、暩限を蚭定するログ。 暩限を蚭定したすナヌザヌ-フルアクセス、Apacheグルヌプの読み取りずディレクトリのリスト、残り-むチゞク。
暩限は手動で蚭定するか、小さなスクリプトを䜿甚できたす。
cd /home
for dir in `ls -1 `; do
mkdir /home/$dir/log
mkdir /home/$dir/html
chown -R $dir:apache $dir
chmod ug+rX $dir
done;


7. Webサヌバヌを構成したす。 /etc/httpd/conf/httpd.confを線集したす
本圓に必芁な倉曎のうち、preforkモゞュヌルを構成しお、最初に消費するメモリを枛らし、食欲を制限したす。
実際には、Apacheは最初に最倧256個のワヌクプロセスを実行するように構成されおいたしたが、1぀のワヌクプロセスは20〜40 MB256 * 20 = 5 GBを簡単に消費したすが、これは特に256 MBのRAMしかない控えめなVPSで問題を匕き起こす可胜性がありたす
したがっお、䜿甚可胜なRAMに基づいお、その数を適切な数に制限したす。 たずえば、平均サむズが30 MBの5぀のApacheプロセスには玄150 MBがかかりたすが、これはすでに耐えられたす。
それは
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000


次のようになりたした
<IfModule prefork.c>
StartServers 2
MinSpareServers 2
MaxSpareServers 3
ServerLimit 5
MaxClients 5
MaxRequestsPerChild 1000


このような蚭定では、Apacheがメゞャヌを超えお拡匵し、すべおのRAMを消費するこずはできたせん。 実際の負荷によっおは、パラメヌタを修正する䟡倀がありたす。
さお、行のコメントを倖したす
NameVirtualHost *:80

同じIPアドレスに倚くのサむトを配眮するため。

次に、/ etc / httpd / conf.d /ディレクトリに移動し、サむトを構成したす。
そこでむンデックスを無効にし、代わりにApache 2テストペヌゞペヌゞを衚瀺するwelcome.confを削陀できたす。
このディレクトリ内の仮想ホスト蚭定は、アルファベット順に順番に適甚されるこずに泚意しおください。
ナヌザヌがいずれかのサむトにIPアドレスでアクセスし、完党に異なるリストの最初に衚瀺されるようにしないために、conf.dディレクトリを、たずえば000-default.confなどの名前のファむルに配眮する必芁がありたす。
<VirtualHost *:80>
ServerName localhost.local
DocumentRoot "/var/www/html"


ディレクトリ/ var / www / html / index.htmlファむルに垌望を入れたす。

次に、仮想ホストごずに、おおよそ次のテンプレヌトに埓っお構成ファむルを䜜成したす。
<VirtualHost *:80>

ServerName testsite.ru
ServerAlias www.testsite.ru
ServerAdmin webmaster@testsite.ru
ErrorLog /home/testsite.ru/log/error.log
CustomLog /home/testsite.ru/log/access.log combined
DocumentRoot /home/testsite.ru/html/

<Directory "/home/testsite.ru/html">
Order allow,deny
Allow from all




これらのファむルでは、奜みに応じお、モゞュヌルの個々の蚭定を远加できたす。

Apacheを再起動し、すべおが機胜するかどうかを確認したす。
[root@test /]# service httpd restart


Apacheは正垞に起動するはずです。 ログサむトのディレクトリに、2぀のログファむルを䜜成する必芁がありたす。
IPアドレスでサヌバヌにアクセスする堎合、/ var / www / html /に配眮したファむルが衚瀺され、サむト名でアクセスする堎合、htmlディレクトリの内容ほずんどの堎合は空ず、察応するサむトのaccess.logファむルの゚ントリが衚瀺されたす。

8. mysqlを構成したす。 たず、テストデヌタベヌスを削陀し、mysqlのルヌトパスワヌドを蚭定したす。
[root@test /]# mysql


mysql> DROP DATABASE test;
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('MyMysqlPassword') WHERE user='root';
mysql> FLUSH PRIVILEGES;
mysql> quit


MySqlの問題は、Apacheの堎合ずほが同じです-VPSで非垞に高䟡なメモリ芁件。
サヌバヌが䜿甚するSQLメモリの量を枛らすには、次のように/etc/my.cnfを線集したす。
[mysqld]セクションに次を远加したす。
key_buffer = 16M
max_allowed_packet = 10M
table_cache = 400
sort_buffer_size = 1M
read_buffer_size = 4M
read_rnd_buffer_size = 2M
net_buffer_length = 20K
thread_stack = 640K
tmp_table_size = 10M
query_cache_limit = 1M
query_cache_size = 32M
skip-locking
skip-innodb
skip-networking


ファむルの最埌に次の行を远加したす。
[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 8M
sort_buffer_size = 8M

[myisamchk]
key_buffer = 8M
sort_buffer_size = 8M

[mysqlhotcopy]
interactive-timeout


mysqldを再起動しお、すべおが正垞であるこずを確認したす。
[root@test ]# service mysqld restart


たた、「skip-networking」オプションを䜿甚するず、ロヌカルマシンからのみ゜ケットを介しおサヌバヌにアクセスできるようになりたす。 ネットワヌクアクセスが必芁な堎合、このオプションを有効にする必芁はありたせん。
このような蚭定により、mysqlプロセスで䜿甚されるメモリが最小化され、アンロヌドされたサむトで正垞に動䜜したす。 しかし、もちろん、mysqlの統蚈を確認する必芁があり、必芁に応じお、ここでのデヌタ制限を増やす必芁がありたす。

mysqlのさらなる管理は、phpMyAdminを介しお行う方が䟿利です。
珟圚、1぀の譊告がありたす-デフォルトでは、phpMyAdminはすべおのサむトのpath / phpMyAdminで利甚可胜です。
これを回避するために、管理甚の特別なサむトcfg.testsite.ruなどを䜜成し、他のサむトず同様に構成したす。
次に、/ etc / httpd / conf.d / phpMyAdmin.confファむルの内容党䜓をこのサむトの構成に転送し、phpMyAdmin.confファむル自䜓を削陀するか、conf.dディレクトリからどこかに転送したす。
このようなアクションの埌、phpMyAdminはpath / phpMyAdmin /専甚サむトでのみ利甚可胜になりたす。
さお、サむト構成ファむルに入力できるように、倉曎したす
<Directory /usr/share/phpMyAdmin/>
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1


<ディレクトリ/ usr / share / phpMyAdmin / setup />
泚文拒吊、蚱可
すべおから拒吊
127.0.0.1から蚱可
から蚱可:: 1


に
<Directory /usr/share/phpMyAdmin/>
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ...
Allow from ::1


<ディレクトリ/ usr / share / phpMyAdmin / setup />
泚文拒吊、蚱可
すべおから拒吊
127.0.0.1から蚱可
メヌルアドレスから蚱可したす。
から蚱可:: 1


その埌、phpMyAdminがIPアドレスから利甚可胜になりたす。

蚭定したパスワヌドを䜿甚しお、rootナヌザヌずしおログむンしたす。
ナヌザヌを䜜成するには、「特暩」-「新しいナヌザヌの远加」に進みたす
ナヌザヌ名は任意です。混乱を避けるためにサむト名を䜿甚するこずを奜みたす。
ホストはロヌカルですそこでスピンするサむトのためにそれを行っおいたすか
パスワヌド-生成。 パスワヌドを忘れずにコピヌしおください
チェックマヌクを付けたす-「名前にナヌザヌ名を䜿甚しおデヌタベヌスを䜜成し、それに完党な暩限を提䟛したす」
適甚したす。
その結果、同じ名前のナヌザヌの名前、パスワヌド、および遞択したデヌタベヌスを取埗したす。

9.倚くの堎合、ftpを介しおファむルをホスティングにアップロヌドするず䟿利です。 このためにvsftpdをむンストヌルしたした
その構成を線集/etc/vsftpd/vsftpd.conf
匿名ログむンをオフにし、倉曎したす
anonymous_enable=YES

に
anonymous_enable=NO


コメント解陀
chroot_local_user=YES


特定のサむトのftpにアクセスできるようにするには、察応するナヌザヌがパスワヌドを蚭定する必芁がありたす
[root@test /]# passwd testsite.ru


デフォルトでは、パスワヌドを持぀このナヌザヌはSSH経由でログむンできるこずを忘れないでください。 この機胜を無効にする最も簡単な方法は、ナヌザヌのシェルを倉曎するこずです
[root@test etc]# chsh -s /sbin/nologin testsite.ru


vsftpdをオンにしお実行する
[root@test /]# chkconfig vsftpd on
[root@test /]# service vsftpd start


すべおが機胜するかどうかを確認したす。

そしお最埌に、非垞に単玔な「運甚バックアップ」。 「バックアップはあたり起こらない」ずいう原則によるず。
より正確なものを䜿甚するこずをお勧めしたすが、完党に䞍圚の堎合よりも、バックアップが䞍良である方が優れおいたす。
このようなバックアップは、ホスティングプロバむダヌでの仮想マシンのフルバックアップぞの適切な远加ずしお機胜したす。 しかし、決しおそれを眮き換えるものではありたせん。
サむトずデヌタベヌスのコンテンツ、および/ etc /ディレクトリの蚭定をバックアップしたす。
ディレクトリ/ backup /を䜜成し、その暩利を「700」に蚭定したす

[root@test /]# mkdir /backup/
[root@test /]# chmod 700 /backup/


/etc/cron.daily/ディレクトリで、backup.shファむルを䜜成し、「700」暩限も蚭定したす。
[root@test /]# touch /etc/cron.daily/backup.sh
[root@test /]# chmod 700 /etc/cron.daily/backup.sh


ファむルの内容は次のずおりです。

#!/bin/sh

# html
tar -cf - /home/*/html/ | gzip > /backup/sites-`date +%Y-%m-%d`.tar.gz

#
mysqldump -u root --password=MyMysqlPassword --all-databases | gzip > /backup/mysql-`date +%Y-%m-%d`.dump.gz

#
tar -cf - /etc/ | gzip > /backup/etc-`date +%Y-%m-%d`.tar.gz

# 7
tmpwatch -t -m 7d /backup/


原則ずしお、1぀のヒヌプだけでバックアップするのではなく、すべおを個別にバックアップする方がよい堎合がありたすが、䜕かのバックアップを構成するこずを忘れお、必芁なずきに埌悔するこずが可胜になりたす。
たあ、たたは「個別に」バックアップオプションでは、サむトのナヌザヌ名ずデヌタベヌス名が䞀臎する必芁がありたす。

#!/bin/sh
for dir in `ls -1 /home/ `; do
tar -cf - /home/$dir/html/ | gzip > /backup/sites-$dir-`date +%Y-%m-%d`.tar.gz
mysqldump -u root --password=MyMysqlPassword $dir | gzip > /backup/mysql-$dir-`date +%Y-%m-%d`.dump.gz
done;

#
tar -cf - /etc/ | gzip > /backup/etc-`date +%Y-%m-%d`.tar.gz

# 7
tmpwatch -t -m 7d /backup/


10.アップデヌト。
時々システムを曎新するこずを忘れないでください。
[root@test ~]# yum update

゜フトりェアに関するRHEL / Centosのポリシヌのおかげで、アップグレヌド埌の゜フトりェアバヌゞョンは同じたたであり、構成内で䜕かがほずんど倉曎されおいないずいう事実により、䞍泚意でサヌバヌを配眮したす。
このアプロヌチの真実もマむナスです。Centos-6では、3幎間で珟圚ず同じ゜フトりェアバヌゞョンが提䟛されたす。 しかし、目暙が安定性であれば、それは私たちに合っおいたす。

11.テスト。
蚭定埌にサむトをテストするこずを匷くお勧めしたす。
テストの最初のポむントは、サヌバヌを再起動し、必芁なすべおのデヌモンが起動し、すべおが期埅どおりに機胜するこずを確認するこずです。 通垞、皌働時間の数字を远いかけるのではなく、自動的に起動するサヌバヌ゜フトりェアのバヌゞョンをむンストヌルたたは倉曎した埌に再起動するこずをお勧めしたす。
ホスティング業者に問題があり、仮想マシンを再起動した結果、そのサむトがすでに半日皌働しおいるこずを確認するよりも、Apacheがスケゞュヌルされた独自の再起動埌に自動実行を開始しないこずを確認する方が適切です。
次は、abナヌティリティApache HTTPサヌバヌベンチマヌクツヌルを䜿甚した負荷テストです。
このテストでは、負荷のかかったサヌバヌの動䜜ほど、オりムの数には関心がありたせん。 それは死にかけおいるプロセスずアクティブなスワップを持たないはずです。
テストを行うには、皌働状態のこのサヌバヌでホストされおいるサむトが必芁です。 そしお、このサむトの「兞型的な」ペヌゞ。 たあ、たたは兞型的なものではなく、最も難しいものを䜿甚できたす。

たずえば、新しくむンストヌルしたDrupal 7.9でテストしおいたす

さたざたなコマンドラむンabから、必芁なパラメヌタヌは2぀だけです-n-http芁求の数-c-同時芁求スレッドの数
topを䜿甚した2番目のsshセッションでのテスト䞭に、サヌバヌの動䜜を芳察したす。

2スレッドで100リク゚スト。

[root@test ~]# ab -n 100 -c 2 testsite.ru


abの出力から、サヌバヌパフォヌマンスの䞀般的な抂念を瀺す「1秒あたりのリク゚スト数」、「リク゚ストあたりの時間」、「倱敗したリク゚スト」に特に興味がありたす。

Failed requests: 0
Requests per second: 6.20 [#/sec] (mean)
Time per request: 322.788 [ms] (mean)


サヌバヌは1秒あたり1ペニヌのリク゚ストで6を凊理し、1ペヌゞの生成に322ミリ秒を費やしおいるこずがわかりたす。

䞀番䞊の出力から、メモリの割り圓おずプロセッサのロヌドが興味深いです。

Tasks: 62 total, 3 running, 59 sleeping, 0 stopped, 0 zombie
Cpu(s): 19.9%us, 5.3%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.4%si, 74.5%st
Mem: 244856k total, 151624k used, 93232k free, 3752k buffers
Swap: 262136k total, 0k used, 262136k free, 76604k cached


スワップ0k䜿甚-すっごく良い。
93232kの空き+ 76604kのキャッシュは、実際には170 MBの空きメモリです。

100リク゚スト5スレッド。

[root@test ~]# ab -n 100 -c 5 testsite.ru


Failed requests: 0
Requests per second: 6.21 [#/sec] (mean)
Time per request: 804.513 [ms] (mean)

Tasks: 63 total, 5 running, 58 sleeping, 0 stopped, 0 zombie
Cpu(s): 17.5%us, 6.2%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 76.3%st
Mem: 244856k total, 159756k used, 85100k free, 3812k buffers
Swap: 262136k total, 0k used, 262136k free, 76660k cached


1秒あたりのリク゚スト数は同じたたでしたが、生成時間は2倍以䞊増加したした-プロセッサに到達したした。

そしお最埌に、habraeffectたたは䜕か近い:-)

[root@test ~]# ab -n 500 -c 50 testsite.ru


Failed requests: 0
Requests per second: 6.45 [#/sec] (mean)
Time per request: 7749.972 [ms] (mean)

Tasks: 63 total, 6 running, 57 sleeping, 0 stopped, 0 zombie
Cpu(s): 19.1%us, 5.3%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 75.6%st
Mem: 244856k total, 162740k used, 82116k free, 3884k buffers
Swap: 262136k total, 0k used, 262136k free, 76672k cached


繰り返したすが、1秒あたりのリク゚スト数は比范的安定しおいたすが、生成時間は非垞に悲しくなりたした。 ただし、同時に、倱敗したリク゚ストはれロです。 ぀たり、ゆっくりですが、すべおが機胜したす。
さお、メモリに぀いお-Swap0k used、82116k free、76672k cached-消費量はそれほど増えおおらず、原則ずしおいく぀かの制限を増やすこずができたすが、珟時点ではサむトコンテンツが䞍足しおいるため、これを行うべきではないず思いたす。 しかし、埌で完成したサむトでテストを実行する䟡倀があり、結果に応じお、すでに蚭定を調敎しおいたす。

12. nginxをフロント゚ンドずしおむンストヌルしたす。

なぜこれが必芁なのですか。
䞻な問題は、Apacheが着信接続を凊理する方法です。 着信接続ごずに、新しいプロセスが䜜成されるか、開始されたプロセスの1぀が取埗され、サヌビスのために接続が転送されたす。 接続が閉じられるたで、このプロセスはそれだけを扱いたす。
原則ずしお、倚くのRAMおよび/たたは非垞に高速なクラむアントロヌカルホストからこれらのオプションのいずれかを実行しおいるがある限り、すべおが芋栄えがしたすが、クラむアントが遅いチャンネルに座っおいるか、急いでいない堎合はすべおがより悲しくなりたす。 この堎合、芁求の収集時にプロセスの1぀を実際にブロックしたす。この時点では、サヌバヌからはオフになっおいたす。
したがっお、理論的には、100Mbitチャネルにサヌバヌがあり、リセット付きのダむダルアップに1぀の氞続的なクラむアントがあるず、DOSのようなものが埗られたす-いく぀かのスレッドのクラむアントは、RAMが少ないために考えおいるほがすべおのApacheプロセスをブロックしたす。
この問題は、フロント゚ンドの圢匏である皮の軜量のhttpサヌバヌをむンストヌルするこずで解決されたす。 フロント゚ンドがある堎合、すべおの着信接続は圌によっお受け入れられ、リク゚ストはapacheに送信され、応答がすぐに受信されるため、新しいリク゚ストに察しおapacheプロセスが解攟されたす。 フロント゚ンドは、䞍必芁なリ゜ヌスをゆっくりず無駄にせずに、既に芁求したクラむアントに受信した応答を提䟛したす。
フロント゚ンド自䜓が静的コンテンツに远加のボヌナスを提䟛できたす-たずえば、写真、CSSなど。 重いApacheの緩和。

[root@test ~]# rpm -ihv centos.alt.ru/pub/repository/centos/6/x86_64/centalt-release-6-1.noarch.rpm
[root@test ~]# yum install mod_realip2 nginx-stable


Apacheずリク゚スト内のスクリプトがフロント゚ンドアドレスではなく実際のクラむアントIPアドレスを確認するために、mod_realip2をむンストヌルしたす。
/etc/httpd/conf.d/mod_realip2.confの線集、コメント解陀
RealIP On
RealIPProxy 127.0.0.1
RealIPHeader X-Real-IP


httpd.confおよび/etc/httpd/conf.d/内のファむルを線集したす
ポヌト80のすべおの衚瀺をポヌト8080に倉曎したす
合蚈で、次の3぀のディレクティブを倉曎する必芁がありたす。
Listen 127.0.0.1:8080
NameVirtualHost *:8080
<VirtualHost *:8080>


/etc/nginx/nginx.confを線集したす
user apache;
worker_processes 2;


最初はすべおの暩利を期埅しお䞎えおいたため、apacheナヌザヌの䞋からnginxを起動したす。
二重ロギングを回避するために、nginx.confのaccess_logディレクティブをコメント化するこずも圹立ちたす。
error_logはそのたたにしおおくのが最善です-Apacheずnginxの゚ラヌはただ異なりたす。

サヌバヌセクションで、listenディレクティブを線集しお蚭定したす。
listen 80 default


倉曎
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

に
location / {
proxy_pass 127.0.0.1:8080/;
}


/etc/nginx/conf.d/ディレクトリで、次の内容のproxy.confファむルを䜜成したす
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 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;


Apacheずnginxを再起動したす
service httpd restart
service nginx restart

すべおが機胜するかどうかを確認したす。

䞀般的に、すべお。 珟圚、nginxはフロント゚ンドずしお機胜し、すべおの着信接続を受け入れ、Apacheがプロキシを凊理しおそれらを凊理し、すぐに応答をnginxに返し、新しいリク゚ストのためにプロセスを解攟したす。

パフォヌマンスを向䞊させ、リ゜ヌス消費を削枛するための次のステップは、nginxから盎接静的コンテンツを返すこずです。

これを行うには、Apache仮想ホストに加えお、nginx仮想ホストを䜜成し、配垃するものを指定する必芁がありたす。
これを行うには、/ etc / nginx / conf.d /ディレクトリに、サむトの名前ず拡匵子.confを持぀ファむルを䜜成し、次の内容を远加したす。
server {
listen 80;
server_name testsite.ru www.testsite.ru;
location / {
proxy_pass 127.0.0.1:8080/;
}

location ~ /\.ht {
deny all;
}

location /sites/default/files {
root /home/testsite.ru/html;
access_log /home/testsite.ru/log/access_static.log combined;
}
}


この䟋では、CMS Drupalのサむトの堎合、/ sites / default / filesディレクトリの静的コンテンツはnginxを介しお配垃されたすが、他のすべおに぀いおは、すでにApacheにアクセスしおいたす。
別のオプションは、locationディレクティブを次のものに眮き換えるこずです。
location ~ \.(jpg|gif|png|css|js|ico)$ {
root /home/testsite.ru/html;
access_log /home/testsite.ru/log/access_static.log combined;
}

この堎合、察応する拡匵子を持぀すべおのファむルはnginxによっお提䟛されたす。 しかし、このバヌゞョンには小さなマむナスがありたす-nginxは.htaccessファむルの操䜜方法を知らないため、.htaccessを衚瀺できないコンテンツがある堎合は、このオプションの䜿甚を控えおください。

この状況では、1぀のサむトで2぀のログを取埗するこずにも泚意しおください。 個別に、Apacheが動䜜したリク゚ストログず、nginxログの内容を個別に。
たたは、access_logディレクティブをlocationセクションからserverセクションに転送し、Apache仮想ホストでaccess_logを無効にしたす。 この堎合、nginxのみがログに蚘録したす。
しかし、「それがどのように機胜するか」を芋るために、二重ログは興味深いこずがありたす-圌らはすぐに負荷がどれだけ誰にかかっおいるかを瀺したす。

さらなる最適化に぀いおは、特定のコンポヌネントを既に最適化し、珟圚の状況を考慮しおそれを行うこずに関するマニュアルを読む䟡倀がありたす。

UPDいく぀かのタむプミスを修正
UPDスワップ接続を修正、 AngryAnonymousに感謝
UPD nginxのむンストヌルず蚭定に関する説明を远加したした。正しい方向ぞのキックにmasterboに感謝したす。
odmin4egのバックアップスクリプトの別のバヌゞョン habrahabr.ru/blogs/s_admin/132302/#comment_4391784

批刀を埅っおいたす。

Source: https://habr.com/ru/post/J132302/


All Articles