Jump to content

Комментарий к записи Путь индейца. Нетривиальная настройка сервера Apache (raptoriks)


xak

Recommended Posts

https://xakep.ru/wp-content/uploads/2022/01/369760/apache-h.gif

Мне­ния отно­ситель­но Apache раз­нятся. Кто‑то счи­тает его рух­лядью на фоне прод­винуто­го и более молодо­го Nginx, кто‑то до сих пор исполь­зует в качес­тве при­выч­ного инс­тру­мен­та. Эта статья — не прос­то ману­ал (коих в Сети — море) по кон­фигура­ции веб‑сер­вера, в ней мы рас­смот­рим нас­трой­ку некото­рых «фишек», которые любой админ смо­жет сме­ло положить в копил­ку собс­твен­ного опы­та.

Работа сервера на нескольких портах

Как пра­вило, при нас­трой­ке SSL/HTTPS веб‑сер­вер слу­шает порт 80 или 443. Но в некото­рых слож­ных кон­фигура­циях нуж­но, что­бы он слу­шал нес­коль­ко пор­тов. Далее будет показа­но, как раз­местить на одном сер­вере три незави­симых при­ложе­ния, каж­дое из которых будет работать на собс­твен­ном пор­ту — 80, 3128 и 8080. На прак­тике такая кон­фигура­ция — не ред­кость в dev-сре­дах, где есть пот­ребность в раз­мещении нес­коль­ких незави­симых при­ложе­ний на одном сер­вере (не арен­довать же для это­го сра­зу нес­коль­ко сер­веров?).

Пер­вым делом нуж­но отре­дак­тировать файл /etc/apache2/ports.conf и задать пор­ты, которые будет слу­шать сер­вер (по одно­му пор­ту в строч­ке):

Listen 80

Listen 3128

Listen 8080

Да­лее нуж­но соз­дать кон­фигура­цию для каж­дого из при­ложе­ния (для каж­дого пор­та). Ты можешь исполь­зовать раз­ные фай­лы кон­фигура­ции, а можешь помес­тить все нас­той­ки в один файл — как боль­ше нра­вит­ся. Вот лис­тинг, где все нас­трой­ки хра­нят­ся в одном боль­шом фай­ле (что­бы не делать три раз­ных лис­тинга).

Файл /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>

DocumentRoot /var/www/landing

<Directory /var/www/landing>

Options -Indexes

AllowOverride All

# Apache 2.4.x

<IfModule mod_authz_core.c>

Require all granted

</IfModule>

</Directory>

CustomLog /var/log/apache2/landing.access.log "Combined"

ErrorLog /var/log/apache2/landing.error.log

</VirtualHost>

<VirtualHost *:3128>

DocumentRoot /var/www/sonerezh

<Directory /var/www/sonerezh>

Options -Indexes

AllowOverride All

# Apache 2.4.x

<IfModule mod_authz_core.c>

Require all granted

</IfModule>

</Directory>

CustomLog /var/log/apache2/demo.sonerezh.bzh-access.log "Combined"

ErrorLog /var/log/apache2/demo.sonerezh.bzh-error.log

</VirtualHost>

<VirtualHost *:8080>

DocumentRoot /var/www/sonerezh-ru

<Directory /var/www/sonerezh-ru>

Options -Indexes

AllowOverride All

# Apache 2.4.x

<IfModule mod_authz_core.c>

Require all granted

</IfModule>

</Directory>

CustomLog /var/log/apache2/demo.sonerezh.ru-access.log "Combined"

ErrorLog /var/log/apache2/demo.sonerezh.ru-error.log

</VirtualHost>

Прин­цип сле­дующий: мы ука­зыва­ем номер пор­та в дирек­тиве VirtualHost, а затем готовим раз­ную кон­фигура­цию для раз­ных узлов. Пос­ле нас­трой­ки нуж­но не забыть рес­тарта­нуть апач (sudo systemctl restart apache2), а затем обра­щать­ся к каж­дому при­ложе­нию мож­но так:

http://IP:номер порта

Динамические поддомены

Час­то для одно­го домена соз­дают­ся под­домены, нап­ример, sales.example.com, support.example.com и т.д. Под­домены нас­тра­ивают­ся c исполь­зовани­ем дирек­тивы VirtualHost. Но если под­доменов мно­го, то тебе быс­тро надо­ест соз­давать отдель­ный кон­фигура­цион­ный файл для каж­дого из них. Гораз­до про­ще исполь­зовать сле­дующую кон­фигура­цию:

Adblock test (Why?)

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...