Počiatočná konfigurácia potrebná od inštalácie Apache v systéme CentOS až po spustenie.
Dátum vydania:8. decembra 2020.
INFOMARTION > Počiatočná konfigurácia potrebná od inštalácie Apache v systéme CentOS až po spustenie.
Prehľad.
Toto je úvodný postup konfigurácie potrebný na inštaláciu a spustenie Apache v systéme CentOS. Informácie vychádzajú z predpokladu, že sa používa systém CentOS7.
Verzie sú nasledovné.
Verzia systému CentOS | 7.6 (1810) |
---|---|
Verzia Apache | 2.4.6 |
Obsah
- nainštalovať
- základné nastavenie
- 2-1. Vytvorenie výstupného priečinka súboru denníka
- 2-2. Nastavenie domény
- 2-3. Aktivácia modulov SSL a konfiguračných súborov
- 2-4. Zmena výstupnej cesty denníka
- 2-5. Vytvorenie certifikátov SSL
- 2-6. permanentné SSL (Secure Socket Layer)
- 2-7. Potvrdenie aktivácie (prístup cez https).
- 2-8. Nastavenie automatického spustenia
- zhrnutie
1. nainštalovať
Táto časť opisuje konfiguráciu Apache od inštalácie až po spustenie.
1-1. Inštalácia Apache
Inštaláciu Apache vykonajte pomocou príkazu yum. Vykonajte prácu ako používateľ root.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install httpd
1-2. Kontrola spustenia (prístup http)
Krátko skontrolujte, či je prístupná. Inštalácia Apache (httpd) pomocou príkazu yum aktivuje príkaz apachectl. Použite ho na spustenie Apache.
[root@hostname ~]# apachectl start
[root@hostname ~]# apachectl status
* httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2020-12-06 17:08:12 JST; 1s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 1303 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
|-1303 /usr/sbin/httpd -DFOREGROUND
|-1304 /usr/sbin/httpd -DFOREGROUND
|-1305 /usr/sbin/httpd -DFOREGROUND
|-1306 /usr/sbin/httpd -DFOREGROUND
|-1307 /usr/sbin/httpd -DFOREGROUND
`-1308 /usr/sbin/httpd -DFOREGROUND
Dec 06 17:08:11 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Dec 06 17:08:12 localhost.localdomain httpd[1303]: AH00558: httpd: Could not reliably determ...ge
Dec 06 17:08:12 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
Ak sa po vykonaní príkazu "apachectl status" vráti hodnota "Active: active (running)", systém sa úspešne spustil.
Potom pristupujte k Apache z prehliadača. Nastavte oprávnenia http, pretože firewall (alebo iptables pre CentOS6 a staršie) umožňuje v predvolenom nastavení CentOS7 len prístup cez ssh. Chcel by som tiež zaviesť kolektívne nastavenie povolenia pre protokol https. Pridajte aj možnosť "permanent", aby bola konfigurácia trvalá.
[root@hostname ~]# firewall-cmd --permanent --add-service=http
[root@hostname ~]# firewall-cmd --permanent --add-service=https
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client http https ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Je v poriadku, ak boli do "services" pridané "http" a "https". Prístup cez prehliadač. V mojom prípade je IP adresa servera 192.168.50.10, takže mám prístup "http://192.168.50.10". Je v poriadku, ak sa zobrazí nasledujúca stránka
Po úspešnom spustení systému ho zastavte.
[root@hostname ~]# apachectl stop
2. základné nastavenie
2-1. Vytvorenie výstupného priečinka súboru denníka
Ak chcete spravovať protokolovanie pod /var/log/, vytvorte adresár httpd pod /var/log/ ako priečinok pre protokoly Apache.
Oprávnenia (permissions) by mali byť 755. Toto nastavenie umožňuje Apache zapisovať, ale ostatní používatelia môžu iba čítať. Ak môžu do protokolov zapisovať aj iní používatelia, je možné s nimi manipulovať.
'mkdir /var/log/httpd' sa nemusí vykonať, ak už bol vytvorený adresár s rovnakým názvom.
[root@hostname ~]# mkdir /var/log/httpd
[root@hostname ~]# chmod 755 /var/log/httpd
Tento postup použite na zmenu nastavení výstupného cieľa protokolu Apache.
Tento postup je len postupom na vytvorenie priečinka na ukladanie protokolov.
2-2. Nastavenie domény
Zmeňte nastavenia domény uvedené v súbore httpd.conf. Konfigurácia Apache je v podstate centralizovaná v súbore httpd.conf, takže ak chcete zmeniť konfiguráciu, upravte súbor httpd.conf. Domény nie je potrebné nastavovať, ak je prostredie lokálne (nie je prístupné verejnosti na internete).
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
# Odkomentujte a povoľte nastavenie ServerName. Názov domény sa nastavuje podľa prostredia.
#ServerName www.example.com:80
ServerName domainname:80
2-3. Aktivácia modulov SSL a konfiguračných súborov
Povoľte protokol SSL, aby ste umožnili prístup cez protokol https. Nastavenia SSL súvisia so SEO a http nie je v prvom rade dobrý nápad z bezpečnostných dôvodov, takže ak nemusíte používať http, používajte https.
Nainštalujte modul ssl pomocou yum.
[root@hostname ~]# yum -y install mod_ssl
Inštalácia pomocou yum automaticky povolí modul ssl, takže ho stačí nainštalovať. Automaticky sa vytvorí aj konfiguračný súbor. (Súbor /etc/httpd/conf.d/ssl.conf sa vytvorí automaticky.)
2-4. Zmena výstupnej cesty denníka
Zmeňte výstupný cieľ denníka Apache na výstupný priečinok denníka, ktorý ste práve vytvorili. Zmeňte len konfiguračný súbor ssl, pretože v ďalšom kroku bude nastavený tak, aby bol prístupný len cez ssl (https).
[root@hostname ~]# vi /etc/httpd/conf.d/ssl.conf
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
~skrátenie~
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
ErrorLog /var/log/httpd/ssl_error_log
TransferLog /var/log/httpd/ssl_access_log
~skrátenie~
CustomLog /var/log/httpd/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Vyššie uvedená úprava zmení cieľ výstupu denníka na "/var/log/httpd".
'%t, %h' atď., ide o nastavenie formátovania denníka. Nasleduje zoznam formátov, ktoré sa môžu často používať na referenčné účely.
【参考】
・%T:Čas potrebný na spracovanie požiadavky (sekundy)
・%h:Názov hostiteľa alebo IP adresa klienta. Pokus o preklad hostiteľských mien len vtedy, ak je HostnameLookups nastavený na On
・%r:Prvý riadok žiadosti
・%b:Bajty odpovede (okrem hlavičiek HTTP). CLF formát, t. j. ak nie je odoslaný žiadny z bajtov
・%D:Čas potrebný na spracovanie požiadavky (mikrosekundy)
・%>s:Stav HTTP
2-5. Vytvorenie certifikátov SSL
Postup vytvárania certifikátov. Vlastná certifikácia je v poriadku pre súkromné prevádzky. V prípade verejne dostupných serverov by sa malo od samocertifikácie odrádzať.
Medzi bežnými certifikátmi a vlastnými certifikátmi nie je žiadny rozdiel v zabezpečení. To môže byť rozdiel medzi certifikátom, ktorý môže tretia strana posúdiť ako spoľahlivý, a certifikátom, ktorý spoľahlivý nie je. (Pri vlastnej certifikácii sa pruh URL zmení na červený.) Pre verejne dostupné servery (servery, ktoré vidia tretie strany) teda vystavte bežný certifikát.
Predvolené nastavenia certifikátu pre Apache sú "/etc/pki/tls/certs/localhost.crt" a "/etc/pki/tls/private/localhost.key".
Nastavenia nájdete v súboroch "SSLCertificateFile" a "SSLCertificateKeyFile" v súbore "/etc/httpd/conf.d/ssl.conf".
【Pre vlastné osvedčovanie】
Ak chcete vytvoriť vlastný certifikát, vykonajte nasledujúci príkaz. Spustite ako používateľ root.
Spustenie 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt' vás niekoľkokrát vyzve k odpovedi, všetko s Enter, žiadny problém. Ide o informácie o tom, kto certifikát vydáva (napr. v ktorej krajine žije a aká je jeho e-mailová adresa). Ak vystavujete bežný certifikát, zadajte správne informácie a nastavte ho.
[root@hostname ~]# openssl genrsa > /etc/pki/tls/private/localhost.key
[root@hostname ~]# openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.csr
[root@hostname ~]# openssl x509 -req -signkey /etc/pki/tls/private/localhost.key < /etc/pki/tls/certs/localhost.csr > /etc/pki/tls/certs/localhost.crt
【Pre bežné certifikáty】
Ak chcete vytvoriť bežný certifikát, vykonajte nasledujúci príkaz. Spustite ako používateľ root.
[root@hostname ~]# openssl genrsa -out /etc/pki/tls/private/localhost.key 2048
[root@hostname ~]# openssl req -new -key /etc/pki/tls/private/localhost.key -out /etc/pki/tls/certs/localhost.csr
V prípade bežných certifikátov to na dokončenie procesu nestačí. Táto práca zahŕňa odovzdanie vytvoreného súboru "server.csr" certifikačnej autorite na vydanie certifikátu servera a inštaláciu vydaného certifikátu servera.
2-6. permanentné SSL (Secure Socket Layer)
Nie je dobré zabezpečenie, ak sa prístup uskutočňuje cez http, preto pridajte nastavenie na presmerovanie na https, ak sa prístup uskutočňuje cez http.
Prístup cez http je možné zakázať, ale z hľadiska použiteľnosti sa odporúča nastaviť presmerovanie. Nasledujúce úlohy vykonajte ako používateľ root.
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
Na koniec pridajte tento text.
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Toto nastavenie je možné zmeniť tak, aby sa prístupy prichádzajúce cez http spracúvali cez https.
Je uvedené, že toto nastavenie nefunguje, ak prichádzate cez https. (RewriteCond %{HTTPS} off)
Nezabudnite spomenúť, že bez tohto nastavenia budú presmerované aj prístupy https, čím vznikne nekonečná slučka.
2-7. Potvrdenie aktivácie (prístup cez https).
Po dokončení rôznych nastavení skontrolujte, či je možné na stránku pristupovať cez protokol https. Najskôr spustite.
[root@hostname ~]# apachectl start
Prístup cez prehliadač. Rovnako ako pri prístupe cez http, ale v mojom prípade je IP adresa servera 192.168.50.10, takže mám prístup "http://192.168.50.10".
Adresa URL sa zmení z "http://192.168.50.10" na "https://192.168.50.10", pretože je zahrnuté nastavenie presmerovania http.
Po úspešnom spustení zastavte Apache.
[root@hostname ~]# apachectl stop
2-8. Nastavenie automatického spustenia
Nakoniec, hoci to nie je povinné, je ťažké spúšťať Apache pri každom reštarte servera, preto je konfigurácia nastavená tak, aby sa Apache spúšťal automaticky pri spustení servera. Registruje sa aj do príkazu systemctl. Upozorňujeme, že tento postup sa týka systému CentOS7, takže ak používate iný systém ako CentOS7, budete musieť použiť príkaz Service.
Vytvorte súbor 'apache.service' a opíšte požadované nastavenia.
[root@hostname ~]# touch /etc/systemd/system/apache.service
[root@hostname ~]# vi /etc/systemd/system/apache.service
Uvádzajú sa tieto informácie.
[Unit]
#Popis.
Description=Apache
#Kontrola pred a po vykonaní.
#Before=xxx.service
#After=xxx.service
[Service]
#Označenie používateľa a skupiny
User=root
Group=root
#Po aktivácii nastavte stav na možnosť Aktivované.
Type=oneshot
RemainAfterExit=yes
#Spustenie, zastavenie a opätovné načítanie.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart
[Install]
#Ekvivalentné nastavenia úrovne Runlevel 3.
WantedBy=multi-user.target
Po dokončení opisu ho zaregistrujte pomocou príkazu systemctl.
[root@hostname ~]# systemctl enable apache
[root@hostname ~]# systemctl is-enabled apache
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep apache
apache.service enabled
[root@hostname ~]# systemctl daemon-reload
3. zhrnutie
Opísali sme počiatočnú konfiguráciu potrebnú pri inštalácii Apache.
Apache v podstate do určitej miery funguje s predvolenými nastaveniami, ale ak si ho skutočne prispôsobíte, pozrite si nastavenia cieľového miesta výstupu protokolu a nastavenia SSL, ktoré by ste mali zmeniť pri prevádzke systému.
Ďakujeme vám za sledovanie až do konca.
■INFORMATION
Kliknutím sem prejdite na hornú stránku s informáciami.
■PROFILE
■Kontaktné údaje.
V prípade otázok týkajúcich sa tohto článku nás kontaktujte tu.