logo

Co to jest Apache?

Apache to bezpłatne oprogramowanie serwera WWW o otwartym kodzie źródłowym, z którego korzysta ok 40% stron internetowych na całym świecie. Apache HTTP Server to jego oficjalna nazwa. Jest rozwijany i utrzymywany przez firmę Fundacja oprogramowania Apache . Apache umożliwia właścicielom stron internetowych udostępnianie treści w Internecie. To jest powód, dla którego jest znany jako „ serwer internetowy .' Jedna z najbardziej niezawodnych i starych wersji serwera WWW Apache została opublikowana w 1995 roku.

Jeśli ktoś chce odwiedzić dowolną stronę internetową, wpisuje nazwę domeny w pasku adresu przeglądarki. Serwer WWW dostarczy żądane pliki, pełniąc rolę wirtualnego dostawcy.

Znaczenie serwera WWW

Serwery pocztowe, serwery baz danych, serwery WWW, I serwery plików używać różnych typów oprogramowania serwerowego. Wszystkie te aplikacje mogą uzyskać dostęp do wielu plików zapisanych na serwerze fizycznym i wykorzystać je do wielu celów.

Celem serwerów internetowych jest udostępnianie stron internetowych za pośrednictwem Internetu. Aby osiągnąć ten cel, zachowuje się jak pośrednik między maszynami klienckimi i serwerami. Może przeciągać zawartość przez serwer na każde żądanie użytkownika. Dostarcza również to żądanie do sieci.

Jednym z najważniejszych zadań każdego serwera WWW jest jednoczesne świadczenie usług różnym użytkownikom sieci. Serwery internetowe wykonują pliki określone w różnych typach języków programowania, np Jawa , Pyton , PHP , i wiele innych. Serwery internetowe przekształcają te pliki w statyczne pliki HTML. Zapewnia obsługę tych plików w ramach przeglądarki serwera WWW. Przeglądarkę internetową można zdefiniować jako narzędzie umożliwiające przyzwoitą komunikację klient-serwer.

Działanie Apache’a

Apache nie jest żadnym serwerem fizycznym; jest to oprogramowanie uruchamiane na serwerze. Jednak definiujemy go jako serwer WWW. Jego celem jest zbudowanie połączenia pomiędzy przeglądarkami osób odwiedzających witrynę (Safari, Google Chrome, Firefox itp.) a serwerem. Apache można zdefiniować jako oprogramowanie wieloplatformowe, więc może działać na serwerach Windows i UNIX.

Kiedy odwiedzający chce załadować stronę w naszej witrynie, na przykład stronę główną lub naszą stronę „O nas”, przeglądarka odwiedzającego wyśle ​​żądanie na nasz serwer. Apache zwróci odpowiedź wraz z każdym żądanym plikiem (obrazami, plikami itp.). Klient i serwer komunikują się za pomocą protokołu HTTP, a Apache odpowiada za bezpieczną i płynną komunikację pomiędzy obydwoma maszynami.

Apache to oprogramowanie, które jest wysoce konfigurowalny . Zawiera strukturę modułową. Różne moduły pozwalają administratorom serwerów na wyłączanie i włączanie dodatkowych funkcjonalności. Apache zawiera moduły do ​​buforowania, bezpieczeństwa, uwierzytelniania haseł, przepisywania adresów URL i innych celów. Możemy także stworzyć własną konfigurację serwera za pomocą pliku tzw .htaccess . Jest to obsługiwany plik konfiguracyjny Apache.

Inne serwery WWW kontra Apache

Dostępnych jest wiele serwerów WWW, które różnią się od Apache. Wszystkie aplikacje serwera WWW zostały zbudowane do różnych celów. Apache ma kilku rywali i alternatyw i jest to najczęściej używane oprogramowanie.

Apache kontra NGINX

Co to jest Apache

Nginx wymawia się jako Silnik-X . Jest to nowa aplikacja serwera WWW, opublikowana po raz pierwszy w 2004 roku. Nginx zyskał popularność wśród właścicieli stron internetowych. Został opracowany w celu rozwiązania problemu c10k, co oznacza, że ​​serwery WWW korzystające z wątków do zarządzania różnymi żądaniami użytkowników nie są w stanie obsłużyć ponad 10000 połączeń jednocześnie.

  1. Właściciele witryn o dużym ruchu mogą napotkać problemy z wydajnością, ponieważ Apache używa struktury opartej na wątkach. Nginx definiuje problem c10k, który jest prawdopodobnie jednym z najszczęśliwszych.
  2. Nginx zawiera architekturę sterowaną zdarzeniami. Nie tworzy nowszego procesu dla wszystkich żądań. Zamiast tego zarządza wszystkimi przychodzącymi żądaniami w pojedynczym wątku. Proces ten obsługuje różne procesy robocze, które realizują faktyczne przetwarzanie żądania. Model oparty na zdarzeniach Nginx w łatwy i wydajny sposób dzieli żądania użytkowników pomiędzy technikami roboczymi, dzięki czemu zapewnia lepszą skalowalność.
  3. Nginx może być lepszym wyborem, ponieważ może zarządzać witrynami internetowymi o dużym ruchu przy minimalnym zużyciu zasobów. Mówiąc dokładniej, może być używany przez kilka popularnych witryn internetowych, takich jak Airbnb, Pinterest, Hulu i Netflix.
  4. Jednak Apache zapewnia wiele korzyści na Nginx, ponieważ ma łatwą konfigurację, środowisko przyjazne dla początkujących i różne moduły dla średnich i małych graczy.

Apache kontra Tomcat

Co to jest Apache

Kocur cab można zdefiniować jako serwer WWW i jest on udoskonalany przez Apache Software Foundation. Stąd Apache Tomcat to jego oficjalna nazwa. Tomcat jest także serwerem HTTP. Jednak poprawia aplikacje Java, a nie statyczne strony internetowe. Ten serwer WWW może uruchamiać wiele różnych aplikacji Java, takich jak WebSocket, Java EL, JSP (Strony JavaServer) i Serwlet Java .

  1. W szczególności Tomcat został stworzony dla aplikacji Java, podczas gdy Apache został stworzony jako serwer HTTP. Możemy zastosować Apache z różnymi językami programowania (Perl, Python, PHP itp.) przy wsparciu odpowiedniego modułu Apache (mod_perl, mod_python, mod_php itp.).
  2. Choć do serwowania stron internetowych możemy zastosować serwer WWW Tomcat (statyczny), jest on w tym celu mniej efektywny w porównaniu z serwerem Apache. Tomcat może wstępnie załadować maszynę wirtualną Java i inne biblioteki Java, których nie będziemy potrzebować w większości witryn internetowych.
  3. Ponadto Tomcat jest mniej konfigurowalny w porównaniu do innych typów serwerów internetowych. Najlepszą opcją do uruchomienia WordPressa jest serwer HTTP, taki jak NGINX lub Apache.

Plusy i minusy Apache'a

Apache może być doskonałą opcją do uruchomienia naszej strony internetowej na wszechstronnej i stabilnej platformie. Chociaż ma to kilka wad, które musimy zrozumieć.

Plusy:

  1. Stabilne i niezawodne oprogramowanie.
  2. Bezpłatny i open source, nawet do użytku gospodarczego.
  3. Regularne poprawki bezpieczeństwa, często aktualizowane.
  4. Przyjazny dla początkujących, łatwy w konfiguracji.
  5. Elastyczny ze względu na strukturę modułową.
  6. Działa od razu z witrynami WordPress.
  7. Wieloplatformowy (implementuje na serwerach Windows i Unix).
  8. Łatwo dostępne wsparcie i ogromna społeczność w przypadku każdego problemu.

Cons:

  1. Różne problemy z wydajnością w witrynach internetowych o dużym natężeniu ruchu.
  2. Kilka opcji konfiguracji może powodować podatność na zagrożenia.

Wersje Apache’a

Wersja 1.1

Ta wersja Apache została autoryzowana w 2000 roku przez ASF. Główna zmiana dotyczy „klauzuli reklamowej” z licencji 1.0. Produkt pochodny „klauzuli reklamowej” nie jest już potrzebny do uwzględniania aspektów materiałów reklamowych (tylko w dokumentacji).

Wersja 2.0

Wersja 2.0 Apache została przyjęta przez ASF w styczniu 2004 roku. Deklarowane cele obejmowały stworzenie licencji łatwej do zastosowania dla niektórych projektów spoza ASF. Może poprawić kompatybilność z oprogramowaniem opartym na GPL. Umożliwia dodanie licencji poprzez odniesienie, a nie wyświetlenie jej we wszystkich plikach. Wyjaśnia także licencję na wkłady. Potrzebuje jakiejkolwiek licencji patentowej na wkłady, które koniecznie naruszają patenty wkładu.

Bezpieczeństwo Apache'a

Podobnie jak inne serwery internetowe, Apache może zostać wykorzystany i zhakowany. Głównym narzędziem ataku Apache jest Slowloris. Slowloris może wykorzystywać błędy w oprogramowaniu Apache. Może zbudować kilka gniazd i utrzymywać wszystkie te gniazda przy życiu oraz wysyłać różne bajty (zwane „nagłówkami utrzymywania aktywności”), aby poinformować serwer, że system jest podłączony i nie występują żadne problemy z siecią.

Wielu twórców Apache zdefiniowało Slowloris za pomocą kilku modułów ograniczających powodowane szkody. Różne moduły Apache, takie jak mod_antiloris, mod_noloris, mod_security, mod_evasive, mod_qos, I mod_limitipconn zasugerowano, że każdy z nich ma zmniejszyć możliwość udanego ataku Slowloris. Apache dostarcza moduł mod_reqtimeout jako rozwiązanie wykonawcze promowane przez programistów od wersji Apache 2.2.15.

int do napisania Java

Rozwój Apache'a

Wersje serwera Apache HTTP

Najnowsze wydanie Pierwsze wydanie Wersja
03-02-2010 (1.2.42) 06.06.1998 1.3
07-10-2013 (2.0.65) 04-06-2002 2.0
07-11-2017 (2.2.34) 01.12.2005 2.2
08-07-2020 (2.4.46) 21-02-2012 2.4

Projekt Apache to zbiorowy wysiłek ulepszenia oprogramowania, mający na celu stworzenie komercyjnej, niezawodnej, swobodnie dostępnej i bogatej w funkcje implementacji serwera HTTP z kodem źródłowym. Wspólnie projektem zajmował się zespół wolontariuszy rozmieszczonych wszędzie. Można to zrobić, korzystając z sieci i Internetu do opracowywania, komunikowania i planowania dowolnego serwera oraz powiązanej dokumentacji.

Projekt jest czynnikiem fundacji Apache Software Foundation. Wielu użytkowników udostępniło projektowi swój kod, dokumentację i pomysły.
Wersja Apache 2.4 zapewnia obsługę platform Tandem, NeXT, UX/A, TPF i BeOS.