Необходима е първоначална конфигурация от инсталирането на Apache в CentOS до стартирането.
Дата на публикуване:8 декември 2020 г.
INFOMARTION > Необходима е първоначална конфигурация от инсталирането на Apache в CentOS до стартирането.
Преглед.
Това е процедурата за първоначална конфигурация, необходима за инсталиране и стартиране на Apache в CentOS. Информацията се основава на предположението, че се използва CentOS7.
Версиите са следните.
Версия на CentOS | 7.6 (1810) |
---|---|
Версия на Apache | 2.4.6 |
Съдържание
- инсталиране на
- основна настройка
- 2-1. Създаване на изходна папка на регистрационния файл
- 2-2. Настройка на домейна
- 2-3. Активиране на SSL модули и конфигурационни файлове
- 2-4. Промяна на изходния път на дневника
- 2-5. Създаване на SSL сертификати
- 2-6. постоянен SSL (Secure Socket Layer)
- 2-7. Потвърждаване на активирането (https достъп).
- 2-8. Настройка за автоматично стартиране
- резюме
1. инсталиране на
Този раздел описва конфигурацията на Apache от инсталирането до стартирането.
1-1. Инсталиране на Apache
Извършете инсталацията на Apache с помощта на командата yum. Извършете работата като потребител root.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install httpd
1-2. Проверка за стартиране (http достъп)
Проверете накратко дали е достъпен. Инсталирането на Apache (httpd) с командата yum активира командата apachectl. Използвайте тази опция, за да стартирате 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.
Ако в резултат на изпълнението на командата "apachectl status" се върне "Active: active (running)", системата е стартирана успешно.
След това осъществете достъп до Apache от браузъра си. Задайте разрешения за http, тъй като защитната стена (или iptables за CentOS6 и по-ранни версии) позволява само ssh достъп по подразбиране в CentOS7. Бих искал също така да въведа колективна настройка за разрешение за https. Добавете и опцията 'permanent', за да направите конфигурацията постоянна.
[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:
Добре е, ако в "services" са добавени "http" и "https". Достъпен чрез браузър. В моя случай IP адресът на сървъра е 192.168.50.10, така че имам достъп до "http://192.168.50.10". Добре е, ако се появи следната страница
След като системата е стартирана успешно, я спрете.
[root@hostname ~]# apachectl stop
2. основна настройка
2-1. Създаване на изходна папка на регистрационния файл
За да управлявате регистрирането в /var/log/, създайте директория httpd в /var/log/ като папка за дневниците на Apache.
Разрешенията (permissions) трябва да са 755. Тази настройка позволява на Apache да пише, но други потребители могат само да четат. Ако други потребители могат да пишат, дневниците могат да бъдат подправени.
'mkdir /var/log/httpd' не е необходимо да се изпълнява, ако вече е създадена директория със същото име.
[root@hostname ~]# mkdir /var/log/httpd
[root@hostname ~]# chmod 755 /var/log/httpd
Използвайте последната процедура, за да промените настройките на изходната дестинация на дневника Apache.
Тази процедура е само процедура за създаване на папка, в която да се съхраняват дневниците.
2-2. Настройка на домейна
Променете настройките на домейна, изброени в httpd.conf. Конфигурацията на Apache по принцип е централизирана в httpd.conf, така че ако искате да промените конфигурацията, променете httpd.conf. Не е необходимо да се настройват домейни, ако средата е локална (не е публично достъпна в интернет).
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
# Разкоментирайте и разрешете настройката ServerName. Името на домейна се задава в зависимост от средата.
#ServerName www.example.com:80
ServerName domainname:80
2-3. Активиране на SSL модули и конфигурационни файлове
Активирайте SSL, за да разрешите достъп през https. Настройките на SSL са свързани със SEO оптимизацията, а http на първо място не е добра идея от съображения за сигурност, така че ако не се налага да използвате http, използвайте https.
Инсталирайте модула ssl с yum.
[root@hostname ~]# yum -y install mod_ssl
Инсталирането с yum автоматично активира модула ssl, така че е необходимо само да го инсталирате. Конфигурационният файл също се създава автоматично. (/etc/httpd/conf.d/ssl.conf се създава автоматично.)
2-4. Промяна на изходния път на дневника
Променете изходната дестинация на дневника Apache към изходната папка на дневника, която току-що създадохте. Променете само конфигурационния файл ssl, тъй като в следваща стъпка той ще бъде настроен да бъде достъпен само чрез ssl (https).
[root@hostname ~]# vi /etc/httpd/conf.d/ssl.conf
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
~съкращение~
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
~съкращение~
CustomLog /var/log/httpd/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Горната промяна променя дестинацията на изхода на дневника на "/var/log/httpd".
'%t, %h' и т.н., това е настройката за форматиране на дневника. По-долу е представен списък с формати, които могат да се използват често за справка.
【参考】
・%T:Време, необходимо за обработка на заявката (секунди)
・%h:Име на хост или IP адрес на клиента. Опит за разрешаване на имена на хостове само ако HostnameLookups е зададен на On
・%r:Първи ред на заявката
・%b:Байтове на отговора (без HTTP хедърите). CLF формат, т.е. - ако нито един от байтовете не е изпратен
・%D:Време, необходимо за обработка на заявката (микросекунди)
・%>s:Състояние на HTTP
2-5. Създаване на SSL сертификати
Процедура за създаване на сертификати. Самосертификацията е подходяща за частни операции. За публично достъпните сървъри самосертифицирането не трябва да се насърчава.
Няма разлика в сигурността между обикновените сертификати и самосертификатите. Това може да бъде разликата между сертификат, който може да бъде оценен като надежден от трета страна, и такъв, който не може. (При самосертифициране лентата за URL става червена.) Затова за публично достъпни сървъри (сървъри, които се виждат от трети страни) издайте нормален сертификат.
Настройките на сертификата по подразбиране за Apache са "/etc/pki/tls/certs/localhost.crt" и "/etc/pki/tls/private/localhost.key".
Настройките могат да бъдат намерени в "SSLCertificateFile" и "SSLCertificateKeyFile" в "/etc/httpd/conf.d/ssl.conf".
【За самосертифициране】
За да създадете самосертификат, изпълнете следната команда. Стартирайте като потребител root.
Изпълнението на 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt' ще ви подкани за отговор няколко пъти, всички с Enter, няма проблем. Това ще бъде информация за лицето, което издава сертификата (напр. в коя държава живее и какъв е неговият имейл адрес). Ако издавате обикновен сертификат, въведете правилната информация и го настройте.
[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
【За нормални сертификати】
За да създадете нормален сертификат, изпълнете следната команда. Стартирайте като потребител 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
За обикновените сертификати това не е достатъчно, за да се завърши процесът. Работата включва предаване на създадения 'server.csr' на удостоверяващия орган за издаване на удостоверение за сървър и инсталиране на издаденото удостоверение за сървър.
2-6. постоянен SSL (Secure Socket Layer)
Не е добра сигурност, ако достъпът се осъществява чрез http, затова добавете настройка за пренасочване към https, ако достъпът се осъществява чрез http.
Възможно е да се забрани достъпът през http, но от гледна точка на използваемостта се препоръчва да се създаде пренасочване. Изпълнете следните задачи като потребител root.
[root@hostname ~]# vi /etc/httpd/conf/httpd.conf
Добавете следното в края на текста.
<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
Възможно е да промените тази настройка, така че достъпът, който идва от http, да се обработва от https.
Посочено е, че тази настройка не работи, ако влизате през https. (RewriteCond %{HTTPS} off)
Не забравяйте да споменете, че без тази настройка https достъпът също ще бъде пренасочен, което ще доведе до безкраен цикъл.
2-7. Потвърждаване на активирането (https достъп).
След като приключите с различните настройки, проверете дали достъпът до сайта е възможен през https. Започнете първо.
[root@hostname ~]# apachectl start
Достъпен чрез браузър. Същото като при http достъпа, но в моя случай IP адресът на сървъра е 192.168.50.10, така че имам достъп до "http://192.168.50.10".
URL адресът се променя от "http://192.168.50.10" на "https://192.168.50.10", тъй като е включена настройката за пренасочване http.
След успешното му стартиране спрете Apache.
[root@hostname ~]# apachectl stop
2-8. Настройка за автоматично стартиране
И накрая, въпреки че не е задължително, трудно е да се стартира Apache при всяко рестартиране на сървъра, така че е въведена конфигурация, при която Apache се стартира автоматично при стартиране на сървъра. Той се регистрира и в командата systemctl. Обърнете внимание, че тази процедура е за CentOS7, така че ако използвате нещо различно от CentOS7, ще трябва да използвате командата Service, за да се справите с това.
Създайте файл 'apache.service' и опишете необходимите настройки.
[root@hostname ~]# touch /etc/systemd/system/apache.service
[root@hostname ~]# vi /etc/systemd/system/apache.service
Предоставя се следната информация.
[Unit]
#Описание.
Description=Apache
#Контрол преди и след изпълнението.
#Before=xxx.service
#After=xxx.service
[Service]
#Определяне на потребител и група
User=root
Group=root
#След като се активира, задайте статус Активирано.
Type=oneshot
RemainAfterExit=yes
#Стартиране, спиране и презареждане.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart
[Install]
#Еквивалентни настройки на ниво Runlevel 3.
WantedBy=multi-user.target
Когато приключите с описанието му, го регистрирайте с командата 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. резюме
Описахме първоначалната конфигурация, необходима при инсталирането на Apache.
Apache работи до известна степен с настройките по подразбиране, но ако действително го персонализирате, моля, направете справка с настройките за дестинация на изхода на дневника и SSL настройките, които трябва да промените при работа със системата.
Благодарим ви, че гледахте до края.
■INFORMATION
Моля, кликнете тук, за да преминете към горната страница на ИНФОРМАЦИЯТА.
■PROFILE
■Данни за контакт.
За запитвания относно статията, моля, свържете се с нас тук.