15%

Alexhost ви дава желания

Извършете проучването и спечелете награди

30.10.2024

Сайтове, активирани с NGINX или Apache

NGINX и Apache са двата най-широко използвани уеб сървъра в света. И двата са мощни, богати на функции и високо конфигурируеми, което ги прави най-добрите избори за хостинг на уебсайтове. В Linux-базирани системи, NGINX и Apache управляват уебсайтове, като активират и деактивират сайтове, използвайки система от конфигурационни файлове, обикновено наричани sites-enabled и sites-available.

Тази статия ще ви ръководи през концепциите на sites-enabled и sites-available и ще обясни как да активирате и управлявате уебсайтове, използвайки уеб сървърите NGINX и Apache.

Разбиране на sites-available и sites-enabled

И NGINX, и Apache използват подобна структура за управление на уебсайтове. Тази структура разделя достъпните сайтове от активираните, позволявайки на системните администратори лесно да управляват кои сайтове са активни.

  • sites-available: Тази директория съдържа конфигурационни файлове за всички уебсайтове, които можете потенциално да обслужвате с вашия уеб сървър. Файловете в тази директория определят виртуалните хостове или блоковете на сървъра (в случая на NGINX) и техните конфигурации. Тези уебсайтове не са активни, докато не бъдат активирани.
  • sites-enabled: Тази директория съдържа символични линкове към конфигурационните файлове на уебсайтове, които в момента са активирани и се обслужват от уеб сървъра. Само сайтове, които са “активирани”, ще бъдат активни и достъпни за потребителите.

Управление на сайтове с Apache

1. Конфигурация на виртуални хостове на Apache

Apache използва виртуални хостове, за да обслужва множество уебсайтове от един единствен сървър. Всеки уебсайт има свой собствен конфигурационен файл, който специфицира как Apache трябва да обработва домейна, включително директиви като корен на документа, логове и други.

Примерен конфигурационен файл за виртуален хост за Apache

Можете да създадете конфигурационен файл за виртуален хост в директорията /etc/apache2/sites-available/. Например, за да конфигурирате уебсайт с име example.com:

sudo nano /etc/apache2/sites-available/test.oo.md.conf

Вътре в файла ще определите конфигурацията за example.com:

<VirtualHost *:80>
ServerAdmin admin@test.oo.md
ServerName (your_domain or Ip_address)
ServerAlias www.test.oo.md
DocumentRoot /var/www/test.oo.md
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

*ServerName (вашият_домейн или Ip_address)заменете стойността на вашият_домейн, която също използвате за Ip_address.

2. Активиране на сайта

След като конфигурационният файл за виртуален хост е създаден, можете да активирате сайта, използвайки командата a2ensite (Apache 2 Активиране на сайт):

sudo a2ensite test.oo.md.conf

Това създава символичен линк от /etc/apache2/sites-available/test.oo.conf до /etc/apache2/sites-enabled/test.oo.md.conf, ефективно активирайки уебсайта.

3. Презареждане на Apache

След активирането на сайта, презаредете Apache, за да приложите промените:

sudo systemctl reload apache2

4. Деактивиране на сайта

За да деактивирате сайт, можете да използвате командата a2dissite (Apache 2 Деактивиране на сайт):

sudo a2dissite example.com.conf

Това премахва символичния линк в директорията sites-enabled, и сайтът вече няма да бъде обслужван.

Управление на сайтове с NGINX

1. Конфигурация на блокове на сървъра NGINX

NGINX използва блокове на сървъра, които са еквивалентни на виртуалните хостове на Apache. Конфигурационните файлове за блокове на сървъра се поставят в директорията /etc/nginx/sites-available/.

Примерна конфигурация на блок на сървъра за NGINX

За да създадете конфигурационен файл за example.com, изпълнете:

sudo nano /etc/nginx/sites-available/test.oo.md

Вътре в файла ще определите блока на сървъра за example.com:

server {
listen 80;
server_name example.com www.test.oo.md;
root /var/www/test.oo.md;
index index.html index.htm;
access_log /var/log/nginx/test.oo.md_access.log;
error_log /var/log/nginx/test.oo.md_error.log;
location / {
try_files $uri $uri/ =404;
}
}

2. Активиране на сайта

За да активирате сайта, създайте символичен линк в директорията sites-enabled, който сочи към конфигурационния файл в sites-available. Можете да направите това с командата ln:

sudo ln -s /etc/nginx/sites-available/test.oo.md /etc/nginx/sites-enabled/

3. Тест на конфигурацията на NGINX

Преди да презаредите NGINX, е добра идея да тествате конфигурацията, за да се уверите, че няма синтактични грешки:

sudo nginx -t

4. Презареждане на NGINX

Ако тестът на конфигурацията премине, презаредете NGINX, за да приложите промените:

sudo systemctl reload nginx

5. Деактивиране на сайта

За да деактивирате сайт, премахнете символичния линк от директорията sites-enabled:

sudo rm /etc/nginx/sites-enabled/test.oo.md

След това, презаредете NGINX, за да приложите промените:

sudo systemctl reload nginx

Най-добри практики за управление на сайтове с NGINX или Apache

  1. Дръжте конфигурационните файлове организирани: Винаги създавайте отделни конфигурационни файлове за всеки уебсайт или домейн в директорията sites-available. Това улеснява управлението на множество уебсайтове.
  2. Тествайте конфигурациите преди презареждане: Винаги тествайте конфигурацията си с apachectl configtest (за Apache) или nginx -t (за NGINX) преди да презаредите уеб сървъра. Това може да ви помогне да избегнете проблеми, които могат да повредят вашите сайтове.
  3. Използвайте система за контрол на версиите за конфигурационни файлове: Ако управлявате много уебсайтове или имате сложна конфигурация, помислете за използване на система за контрол на версиите (като Git) за вашите конфигурационни файлове. Това ви позволява да проследявате промените и да се върнете назад, ако е необходимо.
  4. Използвайте HTTPS: Винаги конфигурирайте SSL сертификати за вашите сайтове. Let’s Encrypt предлага безплатни SSL сертификати и може лесно да бъде интегриран с Apache или NGINX за поддръжка на HTTPS.
  5. Мониторинг и логове: Винаги конфигурирайте достъп и логове за грешки за всеки сайт. Това помага при отстраняване на проблеми и мониторинг на трафика.

Заключение

Как NGINX, така и Apache предоставят мощни начини за управление на уебсайтове с директориите sites-available и sites-enabled. Тази структура ви позволява лесно да активирате, деактивирате и управлявате множество уебсайтове от един единствен сървър.

За Apache можете да използвате команди като a2ensite и a2dissite, докато в NGINX можете ръчно да създавате и премахвате символични линкове, за да активирате или деактивирате сайтове. Независимо от уеб сървъра, който използвате, не забравяйте да презаредите сървъра след извършване на промени и винаги тествайте конфигурациите преди да ги приложите.

Следвайки тези практики, ще имате гладко изживяване при управлението на множество сайтове на вашия уеб сървър NGINX или Apache.

Уведомете ме, ако имате нужда от допълнителни разяснения или помощ!

15%

Alexhost ви дава желания

Извършете проучването и спечелете награди