Co to jest Apache?
Apache jest niezwykłym oprogramowaniem aplikacyjnym. Jest to najczęściej używana aplikacja Serwerowa na świecie z ponad 50% udziałem w komercyjnym rynku serwerów internetowych. Apache jest najczęściej używanym serwerem WWW w systemach operacyjnych uniksopodobnych, ale może być używany na prawie wszystkich platformach, takich jak Windows, OS X, OS/2, itp., Słowo „Apacz” zostało zaczerpnięte od nazwy indiańskiego plemienia „Apacz”, słynącego z umiejętności w zakresie walki i tworzenia strategii.
jest to modułowa, procesowa aplikacja serwerowa, która tworzy nowy wątek przy każdym jednoczesnym połączeniu. Obsługuje wiele funkcji; wiele z nich jest kompilowanych jako oddzielne moduły i rozszerza swoją podstawową funkcjonalność i może zapewnić wszystko, od obsługi języka programowania po stronie serwera po mechanizm uwierzytelniania. Hosting wirtualny jest jedną z takich funkcji, która pozwala pojedynczemu serwerowi WWW Apache obsługiwać wiele różnych stron internetowych.,
Jak zainstalować Apache
istnieje wiele sposobów instalacji pakietu lub aplikacji. Poniżej znajdują się zapisy –
- jedną z cech tej aplikacji internetowej o otwartym kodzie źródłowym jest to, że każdy może wykonać Instalator zgodnie z własnym środowiskiem. Umożliwiło to różnym dostawcom, takim jak Debian, Red Hat, FreeBSD, Suse itp. aby dostosować lokalizację pliku i konfigurację apache z uwzględnieniem innych zainstalowanych aplikacji i podstawowego systemu operacyjnego.,
- Oprócz instalacji z instalatora opartego na dostawcach, zawsze istnieje możliwość zbudowania i zainstalowania go z kodu źródłowego. Instalacja Apache z pliku źródłowego jest niezależna od platformy & działa dla wszystkich systemów operacyjnych.
Apache web server jest aplikacją modułową, w której administrator może wybrać wymaganą funkcjonalność i zainstalować różne moduły zgodnie z jego wymaganiami.,
wszystkie moduły mogą być skompilowane jako dynamiczne Obiekty współdzielone (DSO to plik obiektowy, który może być współdzielony przez wiele aplikacji podczas ich wykonywania), który istnieje oddzielnie od głównego pliku apache. Podejście DSO jest wysoce zalecane, sprawia, że zadanie dodawania/usuwania / aktualizacji modułów z konfiguracji serwerów jest bardzo proste.
zainstaluj Apache:Linux Platform
Na systemach opartych na Red Hat Lub rpm
Jeśli używasz rpm (Menedżer pakietów RedHat jest narzędziem do instalacji aplikacji na systemach Linux) opartej na dystrybucji Linuksa tj., Red Hat, Fedora, CentOs, Suse, możesz zainstalować tę aplikację przez menedżera pakietów określonego przez dostawcę lub bezpośrednio budując plik rpm z dostępnego źródła.
możesz zainstalować Apache za pomocą domyślnego menedżera pakietów dostępnego we wszystkich dystrybucjach Red Hat, takich jak CentOs, Red Hat i Fedora.
# yum install httpd
plik źródłowy apache może być przekonwertowany do pliku rpm za pomocą następującego polecenia.
# rpmbuild -tb httpd-2.4.x.tar.bz2
wymagane jest zainstalowanie pakietu-devel na twoim serwerze w celu jego utworzenia .plik rpm ze źródła.,
po przekonwertowaniu pliku źródłowego do instalatora rpm, możesz użyć następującego polecenia, aby zainstalować Apache.
# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
Po instalacji serwer nie uruchamia się automatycznie, aby uruchomić usługę, musisz użyć jednej z poniższych komend na Fedorze, CentOs lub Red Hat.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
zainstaluj Apache ze źródła
instalacja apache ze źródła wymaga zainstalowania pakietu –devel na twoim serwerze. .Najnowszą dostępną wersję Apache ' a można pobrać tutaj ., Po pobraniu pliku źródłowego przenieś go do folderu/usr/local / src.
aby zobaczyć wszystkie opcje konfiguracji dostępne dla Apache, możesz użyć ./ configure-help option. Najczęstszą opcją konfiguracji jest-prefix={nazwa katalogu instalacyjnego}.
powyższy przykład pokazuje kompilację Apache w katalogu/usr/local / apache z możliwością DSO. Opcja-enable-so może załadować wymagane moduły do apache w czasie działania za pośrednictwem mechanizmu DSO zamiast wymagać rekompilacji.,
Po zakończeniu instalacji możesz przeglądać domyślną stronę serwerów WWW za pomocą ulubionej przeglądarki. Jeśli zapora sieciowa jest włączona na twoim serwerze, musisz zrobić wyjątek dla Portu 80 w Zaporze systemu operacyjnego. Możesz użyć następującego polecenia, aby otworzyć port 80.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
możesz zobaczyć domyślny ekran powitalny Apache2, przeglądając adres IP serwera.
Co To Jest Host wirtualny?
serwer WWW Apache może hostować wiele stron internetowych na tym samym serwerze., Nie potrzebujesz oddzielnej maszyny serwerowej i oprogramowania apache dla każdej strony internetowej. Można to osiągnąć za pomocą koncepcji wirtualnego hosta lub VHost.
każda domena, którą chcesz hostować na swoim serwerze WWW, będzie miała osobny wpis w pliku konfiguracyjnym apache.
typy serwerów wirtualnych Apache Virtualhost
- host wirtualny oparty na nazwach
- host wirtualny oparty na adresach lub IP oraz.
host wirtualny oparty na nazwach
Hosting wirtualny oparty na nazwach jest używany do hostowania wielu witryn wirtualnych na jednym adresie IP.,
aby skonfigurować hosting wirtualny oparty na nazwach, musisz ustawić adres IP, na którym będziesz otrzymywać żądania Apache dla wszystkich pożądanych stron internetowych. Można to zrobić za pomocą dyrektywy NameVirutalHost w konfiguracji apache tj. httpd.conf / apache2.plik conf.
Apache virtual host przykład:
możesz dodać tyle wirtualnych hostów, ile chcesz., Możesz sprawdzić swoje pliki konfiguracyjne za pomocą:
#httpd –tSyntax OK
Jeśli plik konfiguracyjny ma złą składnię, spowoduje to błąd
host wirtualny oparty na IP
aby skonfigurować host wirtualny oparty na IP, Potrzebujesz więcej niż jednego adresu IP skonfigurowanego na serwerze. Tak więc liczba vhost apache będzie zależeć odliczba adresu IP skonfigurowanego na serwerze. Jeśli twój serwer ma 10 adresów IP, możesz utworzyć 10 hostów wirtualnych opartych na IP.
na powyższym diagramie dwie strony internetowe przykład1.,com i example2.com zostały przypisane różne adresy IP i korzystają z hostingu Wirtualnego opartego na IP.
co Apache potrzebuje do uruchomienia pliku Php?
uruchamianie plików Php na Apache wymaga włączenia mod_php na twoim serwerze. Pozwala na interpretację Apache ' a .Pliki Php. Posiada funkcje obsługi Php, które interpretują kod Php w apache i wysyłają HTML na serwer WWW.
Jeśli mod_php jest włączony na twoim serwerze, będziesz miał plik o nazwie php.conf w /etc/httpd / conf.d / katalog., Możesz również sprawdzić to za pomocą:
httpd -M | grep "php5_module"
wyjście będzie podobne do:
obsługa PHP w Apache
- mod_phpli
- CGI
- FastCGI
- suphp
mod_phpis jest najstarszą obsługą PHP, czyni PHP częścią Apache i nie wywołuje żadnego zewnętrznego procesu PHP. Moduł ten jest instalowany domyślnie w każdym repozytorium dystrybucji Linuksa, więc włączenie / wyłączenie tego modułu jest bardzo proste.,
Jeśli używasz FastCGI jako narzędzia obsługi PHP, możesz ustawić wiele wersji PHP, które będą używane przez różne konta na serwerze.
FastCGI czyli mod_fastcgi jest rozszerzeniem mod_fcgid, gdzie jako mod_fcgid jest wysokowydajną alternatywą CGI czyli mod_cgi . Uruchamia wystarczającą liczbę instancji CGI do obsługi jednoczesnych żądań internetowych. Wykorzystuje również suexec do obsługi różnych użytkowników z ich własnymi instancjami PHP i poprawia bezpieczeństwo sieci.
uruchamianie plików ruby na Apache wymaga włączenia mod_ruby. Apache może również obsługiwać pliki ruby poprzez FastCGI., Możliwe jest użycie kilku wersji Rubiego przy pomocy mod_fcgid tj. FastCGI.
Możesz również zainstalować Apache passenger i skonfigurować Apache, aby używał go do obsługi stron ruby.
(Phusion Passenger znany również jako „passenger” to darmowy moduł serwera WWW, który został zaprojektowany do integracji z Apache i Nginx )
kroki instalacji mod_ruby na twoim serwerze –
jak uruchomić Ruby z Apache
musimy dodać moduł mod_ruby do konfiguracji Apache tj. /etc/httpd/conf.d / ruby.conf i dodać następujący wiersz.
LoadModule ruby_module modules/mod_ruby.,więc
Jeśli chcesz włączyć lub wyłączyć te moduły, musisz edytować plik konfiguracyjny apache i komentować lub odkomentować te moduły, jeśli serwer WWW jest już skompilowany z tymi modułami.
Jak zabezpieczyć serwer WWW Apache
zabezpieczenie serwera www jest bardzo ważne, to znaczy umożliwienie innym zobaczyć tylko zamierzone informacje& Ochrona danych i ograniczenie dostępu.
są to typowe rzeczy, które zwiększają bezpieczeństwo serwerów Apache.,
1) ukrywanie wersji Apache i informacji o systemie operacyjnym:
Apache wyświetla swoją wersję i nazwę systemu operacyjnego w błędach, jak pokazano na poniższym zrzucie ekranu.
haker może użyć tych informacji do uruchomienia ataku przy użyciu publicznie dostępnych luk w danej wersji serwera lub systemu operacyjnego.
aby uniemożliwić serwerowi Apache przekazywanie tych informacji, musimy zmodyfikować
opcję „server signature” dostępną w pliku konfiguracyjnym apache., Domyślnie jest „on”, musimy ustawić go „off”.
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
ustawiliśmy również „ServerTokens Prod”, który mówi serwerowi www, aby zwracał tylko apache i wyłączał główną i podrzędną wersję systemu operacyjnego
po zmodyfikowaniu pliku konfiguracyjnego, musisz ponownie uruchomić/przeładować serwer WWW apache, aby był skuteczny.,
service httpd restart
2) Wyłącz listę katalogów
Jeśli twój katalog główny dokumentu nie ma pliku indeksu, domyślnie Twój serwer WWW apache wyświetli całą zawartość katalogu głównego dokumentu.
Ta funkcja może być wyłączona dla określonego katalogu poprzez „dyrektywę options” dostępną w pliku konfiguracyjnym Apache.,
<Directory /var/www/html> Options -Indexes</Directory>
3) wyłączanie niepotrzebnych modułów
dobrą praktyką jest wyłączanie wszystkich niepotrzebnych modułów, które nie są używane. Możesz zobaczyć listę włączonych modułów dostępnych w pliku konfiguracyjnym apache-
wiele z wymienionych modułów może być wyłączonych, takich jak mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, ponieważ nie są one używane przez żadne serwery produkcyjne.
vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so
Po skomentowaniu modułu zapisz plik.,
Uruchom ponownie usługi apache za pomocą następującego polecenia.
/etc/init.d/httpd restart
4) Ograniczanie dostępu do plików znajdujących się poza katalogiem głównym
Jeśli chcesz mieć pewność, że pliki znajdujące się poza katalogiem głównym nie są dostępne, musisz upewnić się, że katalog jest ograniczony za pomocą opcji „Zezwól” i „Zaprzecz” w pliku konfiguracyjnym serwera www.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
gdy ograniczysz acess poza katalogiem głównym, nie będziesz mógł uzyskać dostępu do żadnego pliku znajdującego się w innym folderze na twoim serwerze WWW, otrzymasz kod zwrotny 404.,
5) używanie mod_evasive do odparcia ataku DoS
Jeśli chcesz chronić swój serwer WWW przed Dos (tzn. odmową usługi) musisz włączyć moduł mod_evasive. Jest to moduł trzeciej strony, który wykrywa atak Dos i zapobiega atakowi z wyrządzeniem tyle szkód, ile zrobiłby, gdyby pozostawiono go do uruchomienia. Można go pobrać tutaj.,
Pobierz powyższy plik
6) używając mod_security do zwiększenia bezpieczeństwa apache
moduł ten działa jako zapora sieciowa dla Apache i pozwala monitorować ruch w czasie rzeczywistym. Zapobiega również atakom brute force serwera www. Moduł mod_security może być zainstalowany z domyślnym menedżerem pakietów twojej dystrybucji.
7) ograniczenie rozmiaru żądania
Apache nie ma żadnych ograniczeń dotyczących całkowitego rozmiaru żądania http, które mogłyby doprowadzić do ataku DoS., Możesz ograniczyć rozmiar żądania dyrektywy Apache „LimitRequestBody” za pomocą znacznika directory. Wartość może być ustawiona w zakresie od 0 do 2 GB (np.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
format dziennika Apache
dzienniki Apache dostarczają szczegółowych informacji, które pomagają wykryć typowe problemy z serwerem.
aby utworzyć dzienniki dostępu, mod_log_configmodule musi być włączony.
trzy dyrektywy dostępne w pliku konfiguracyjnym apache tj.
- TransferLog: Tworzenie pliku dziennika.
- LogFormat : określanie niestandardowego formatu.,
- CustomLog : Tworzenie i formatowanie pliku dziennika.
dyrektywa TransferLog jest dostępna w pliku konfiguracyjnym apache i obraca pliki dziennika wirtualnego hosta zgodnie z ustawionymi parametrami.
dwa typy formatu dziennika Apache
- wspólny format dziennika
- połączony format dziennika.w związku z tym, że nie jesteśmy w stanie sprostać wymaganiom naszych klientów, nie jesteśmy w stanie sprostać wymaganiom naszych klientów.conf (Debian/ubuntu) lub httpd.,plik conf (systemy oparte na rpm)
wspólny format dziennika
LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common
wspólny Dziennik generowany przez Apache
client denied by server configuration: /export/home/live/ap/htdocs/test
połączony format dziennika
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
tutaj,
- %H to zdalny host
- %L to tożsamość użytkownika określona przez identd
- %u to nazwa użytkownika określona przez uwierzytelnianie HTTP
- %t to czas, w którym serwer zakończył przetwarzanie żądania.
- %R jest linią żądania klienta. („GET/HTTP / 1.,0”)
- % >s jest kodem stanu wysłanym z serwera do klienta (500, 404 itd.)
- %b jest wielkością odpowiedzi do Klienta (w bajtach)
- Referer jest stroną, która łączy się z tym adresem URL.
- User-agent jest ciągiem identyfikacyjnym przeglądarki.
połączony Dziennik generowany przez Apache:
Niestandardowy Dziennik tworzy osobny plik dziennika dla każdego wirtualnego hosta na twoim serwerze. Musi być określony w sekcji virtual host w pliku konfiguracyjnym.,
możesz zobaczyć poniżej wymienioną konfigurację wirtualnego hosta, wygenerowany dziennik będzie niestandardowy dla tego wirtualnego hosta i format zostanie połączony.
Skonfiguruj swój pierwszy Web Sever produkcji
1. Aby mieć uruchomiony serwer produkcyjny, potrzebujesz dedykowanego węzła (fizycznego/Wirtualnego lub instancji w chmurze) z systemem Linux / Unix, Windows, MacOS itp.
2. Web serwer musi mieć bezpośrednie połączenie sieciowe i skonfigurowany na nim adres staticIP.
3., Musi mieć wszystkie moduły wymagane do uruchamiania stron internetowych. Jeśli serwer WWW przetwarza strony PHP, musi mieć włączony moduł PHP.
- wymaga również skonfigurowania i uruchomienia dobrej aplikacji antywirusowej do zabezpieczania serwera www przed atakami złośliwego oprogramowania lub wirusów. Potrzebujesz również mechanizmu do regularnej aktualizacji skonfigurowanej aplikacji antywirusowej/anty malware bez ręcznej interwencji, Aby uzyskać z nich maksymalne korzyści.,
- Jeśli masz setki domen, które mają być hostowane na twoim serwerze WWW, musisz wdrożyć ograniczenia dotyczące kwot systemu plików dla każdej domeny, liczby baz danych, które może utworzyć każda domena, liczby kont e-mail na domenę itp.
- Jeśli twój serwer WWW został skonfigurowany dla usług hostingu współdzielonego, użytkownicy na twoim serwerze WWW muszą być ograniczeni. Użytkownik hostingu współdzielonego powinien mieć najmniejsze uprawnienia użytkownika, aby nie uszkodzić ważnych plików & uszkodzić cały serwer., Apache nie zapewnia takiej funkcjonalności i wymaga różnych aplikacji innych firm, dostosowywania systemu operacyjnego, aby to osiągnąć.
- Jeśli dodajesz nową domenę na swoim serwerze WWW, wymaga ona edycji setek plików konfiguracyjnych, aby włączyć wszystkie funkcje dla dodanej domeny.
- Jeśli jedna z hostowanych domen wymaga innego ustawienia PHP niż reszta domen, implementacja tego w core Apache web server jest bardzo złożona i wymaga dostosowania serwera www w dużym stopniu.,
- produkcyjny serwer WWW potrzebuje zapory sieciowej do blokowania niechcianego ruchu, który może spowodować duże obciążenie serwera. Implementacja reguł IPTABLE z wierszem poleceń jest bardzo złożona. Potrzebuje wiedzy o podstawowym środowisku Linux / Unix, aby napisać skuteczne reguły zapory sieciowej do blokowania niechcianego ruchu. IPTABLE bazuje na module netfilter; jest to zapora na poziomie systemu operacyjnego, która pozwala administratorowi na tworzenie reguł dla ruchu przychodzącego/wychodzącego na serwerze.
- produkcyjny serwer WWW wymaga kilku różnych aplikacji, takich jak e-mail, FTP do przesyłania plików, System nazw domen dla zaparkowanych domen., Zarządzanie wszystkimi tymi aplikacjami na podstawowym systemie Linux / Unix wymaga wiedzy na temat odpowiednich technologii.
można więc powiedzieć, że zarządzanie serwerem WWW dla wielu domen jest bardzo złożonym zadaniem i wymaga edycji setek plików konfiguracyjnych, dostosowując każdą aplikację do pożądanego rezultatu. Rozwiązywanie problemów z dowolną konfiguracją miss będzie bardzo trudne dla początkujących.
rozwiązanie wykorzystujące Cpanel lub podobne oprogramowanie
Cpanel zapewnia graficzny sposób zarządzania serwerem WWW., Ma na celu zapewnienie usług hostingu masowego, które są łatwe w użyciu i konfiguracji. cPanel zmniejszył bariery techniczne wejścia do hostingu i zarządzania serwerem WWW. Ułatwia skomplikowane zadania, zapewnia wiele użytecznych i łatwych w użyciu interfejsów internetowych, które wykonują typowe zadania administracyjne systemu wymagane do obsługi serwera www.
cPanel kompiluje własną wersję oprogramowania.
Jeśli musisz przekompilować swój serwer WWW tzn., apache na zwykłej platformie Linuksowej musisz ręcznie wybrać / wyszukać wymagany moduł. cPanel zapewnia funkcjonalność easyapache, która jest metodą kompilacji serwera www opartą na skryptach.
zapewnia nie tylko Usługi internetowe, ale także pocztę, DNS, FTP i wiele innych usług, które są wymagane dla Twojej aplikacji internetowej.,
zadanie, które wymaga wiedzy na temat podstawowego hostingu opartego na Linuksie / Unix, takie jak instalacja SSL, rekompilacja Apache z różnymi modułami PHP, aktualizacja zabezpieczeń internetowych, konfiguracja skutecznych reguł IPTABLE, Dodawanie użytkowników ftp, tworzenie kont pocztowych dla każdej domeny, skanowanie katalogu głównego dokumentu za pomocą programu antywirusowego i tworzenie baz danych są łatwe do wykonania za pomocą cPanel.
zawiera wiele skryptów, które naprawiają, instalują i rozwiązują typowe zadania administracyjne.
zapewnia funkcję tworzenia kopii zapasowych i przywracania, eliminując potrzebę ręcznego kopiowania plików do magazynu kopii zapasowych., Jeśli tworzysz kopię zapasową swojej domeny, cPanel utworzy plik tar, który będzie zawierał folder główny dokumentu, konta e-mail i wiadomości e-mail, konta ftp, bazy danych, rekordy DNS i inne aplikacje.
zapewnia również solidną dokumentację i ma bardzo dużą społeczność użytkowników, gdzie można dyskutować i uzyskać rozwiązanie swoich problemów.
można więc powiedzieć, że cPanel jest najlepszą aplikacją do zarządzania serwerem WWW z wymaganymi funkcjami. Zapewnia łatwy w użyciu interfejs do zarządzania domeną i mechanizm pozwalający uniknąć złożoności zarządzania podstawowym serwerem WWW.,
istnieje wiele konkurencyjnych produktów do cPanel, takich jak Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel itp.