Apache HTTP Server, Π² ΠΏΡΠΎΡΡΠΎΡΠ΅ΡΠΈΠΈ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Apache, β ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΈ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΠΌΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π΄Π»Ρ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΠ².
ΠΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² HTTP.
ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΏΠΎ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ GET ΠΈ POST.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Apache Π½Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² GET ΠΈ POST.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» Apache, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΠΈΠ±ΠΎ httpd.conf, Π»ΠΈΠ±ΠΎ apache2.conf, Π»ΠΈΠ±ΠΎ ΡΠ°ΠΉΠ» .htaccess, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Ρ Π²Π΅Π±-ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΡΠΈΡΡ.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΠΉ ΡΠ΅ΡΠ²Π΅Ρ Apache.
ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ, ΡΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Apache.
Π¨Π°Π³ΠΈ ΠΏΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² GET ΠΈ POST Π½Π° Apache:
- ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ»
Π Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Apache Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /etc/apache2/ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ Ubuntu/Debian ΠΈ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /etc/httpd/ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌ CentOS/RHEL.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
/etc/apache2/apache2.conf # Ubuntu/Debian /etc/httpd/conf/httpd.conf # CentOS/RHEL
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» .htaccess.
ΠΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅Ρ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π΅Π³ΠΎ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΡΠΈΡΠΈΡΡ.
- Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, nano, vi, emacs) ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΈ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ°
Π§ΡΠΎΠ±Ρ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ GET ΠΈ POST, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π² ΡΠ°ΠΉΠ» ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ.
ΠΡΠΎΡ Π±Π»ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ Π²Π½ΡΡΡΠΈ ΡΠ΅Π³Π° Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, ΠΈΠ»ΠΈ Π²Π½ΡΡΡΠΈ ΡΠ΅Π³Π° Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ Π΄Π»Ρ ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
<Directory "/var/www/html"> <LimitExcept GET POST> Β Β Β Deny from all </LimitExcept> </Directory>
Π ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ Π²ΠΌΠ΅ΡΡΠΎ /var/www/html Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ ΠΏΡΡΡ ΠΊ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ.
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° <LimitExcept> ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ (GET, POST) ΠΈ Π·Π°ΠΏΡΠ΅ΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅.
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π²ΡΠΉΡΠΈ
ΠΠΎΡΠ»Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ Π²ΡΠΉΠ΄ΠΈΡΠ΅ ΠΈΠ· ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ nano, ΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, Π½Π°ΠΆΠ°Π² Ctrl+X, Π·Π°ΡΠ΅ΠΌ Y Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Enter Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ.
- ΠΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ Apache
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π³ β ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊ Apache Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄:
Π’Π΅ΠΏΠ΅ΡΡ Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ Apache Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ HTTP-Π·Π°ΠΏΡΠΎΡΡ GET ΠΈ POST ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ.
ΠΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ HTTP-ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ PUT, DELETE, OPTIONS ΠΈ Ρ.Π΄., Π±ΡΠ΄ΡΡ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Ρ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ ΠΏΠΎΠ»Π½ΡΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ ΠΈ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠ°ΠΉΠ»Π°ΠΌ.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ°ΡΠΈΡΠ½ΡΠΉ ΠΏΠ»Π°Π½ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΡΠΈΠ½Π³Π°, ΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ Π²Π°Ρ Π½Π΅Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ Π·Π° ΠΏΠΎΠΌΠΎΡΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ Ρ ΠΎΡΡΠΈΠ½Π³-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ ΠΈΠ»ΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΌΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ.
ΡΠΌ. ΡΠ°ΠΊΠΆΠ΅:
- πΒ ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠ°ΠΉΠ» htaccess Π² Apache Π½Π° CentOS/RHEL
- πΒ ΠΠ°ΡΡΠΈΠ½Π³ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈΠ· Π»ΠΎΠ³ΠΎΠ² ΡΠ΅ΡΠ²Π΅ΡΠ° Apache Ρ ΠΏΠΎΠΌΠΎΡΡΡ awk
- πΒ ΠΠ°ΠΊ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ETags Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Apache
- πΒ ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ URL-Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈΠ· ProxyPass Π½Π° Apache
- πΒ ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ HTTP Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ Nginx / Apache
- π³Β Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ModSecurity 3 Ρ Apache Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ΅ Docker
Β