Apache – найпопулярніший веб-сервер, і якщо ви маєте намір працювати середнім програмним забезпеченням / системою / веб-адміністратором, то ви повинні бути з ним ознайомлені. Apache HTTP – це веб-сервер із відкритим кодом для Windows & UNIX.
Кілька днів тому я писав про запитання щодо інтерв’ю WebSphere, і багато хто з вас просив написати про веб-сервер Apache, так що ось ви йдете.
Наступні питання часто задаються в інтерв’ю від початкового до експертного рівня. Більшість організацій матимуть веб-сервер, яким керує Middleware / System Administrator, а також Application Server та інші компоненти.
Почнемо з цього запитання про співбесіди в режимі реального часу & відповіді…
Contents
- 1 1. Як зупинити / запустити веб-сервер Apache?
- 2 2. Що таке порт за замовчуванням для HTTP та HTTPS?
- 3 3. Чи можете ви сказати мені важливе ім’я файлу конфігурації?
- 4 4. Як перевірити версію запущеного веб-сервера Apache?
- 5 5. Як дізнатися, чи працює веб-сервер?
- 6 6. Як встановити HTTP Apache?
- 7 7. Як забезпечити прослуховування Apache лише однієї IP-адреси на сервері?
- 8 8. Як забезпечити запуск Apache з користувачем, котрий не має root / niko?
- 9 9. Як відключити індексацію каталогів?
- 10 10. Який модуль необхідний для можливого перенаправлення?
- 11 11. Чи можете ви змінити порт прослуховування з типового на щось інше?
- 12 12. Як захистити веб-сайт, розміщений на веб-сервері Apache?
- 13 13. Які файли журналів генеруються Apache?
- 14 14. Як створити КСВ?
- 15 15. Що таке віртуальний хостинг?
- 16 16. Який модуль необхідний для підключення до WebSphere?
- 17 17. Як перевести рівень журналу в режим налагодження?
- 18 18. Який модуль необхідний для включення SSL?
- 19 19. Що називається модулем WebLogic?
- 20 20. Який рівень журналу доступний в Apache?
- 21 21. Що таке DocumentRoot?
- 22 22. Як розгортати війни або програми JAVA в Apache?
- 23 23. Яка різниця між веб-сервером Apache та Apache Tomcat?
- 24 24. Як Apache може діяти як проксі-сервер?
- 25 25. Як налаштувати журнал Apache, щоб він фіксував час, необхідний для обслуговування запиту?
- 26 26. Який інструмент ви використовуєте для аналізу журналів?
- 27 27. Які веб-сервери ви працювали разом з Apache?
- 28 28. Як перевірити файл httpd.conf, щоб упевнитись у синтаксисі помилки конфігурації?
- 29 29. Як виконати показник продуктивності Apache?
- 30 30. Як отримати підтримку веб-сервера Apache, якщо щось не так?
- 31 31. Як забезпечити запуск веб-сервера після перезавантаження сервера?
- 32 32. чим відрізняється веб-сервер Apache від Nginx?
- 33 33. Як би ви вбили Apache, якщо витончена зупинка не працює?
- 34 34. Як знайти файл httpd.conf, якщо ви не знаєте місця установки?
- 35 35. Які різні смаки веб-сервера Apache ви знаєте?
- 36 36. Де розташований Apache у центрі обробки даних?
- 37 37. Як приховати деталі версії сервера у заголовку відповіді HTTP?
- 38 38. Що значить 200, 403 & 503 коди помилок HTTP означають?
- 39 39. Як відключити відстеження HTTP-запитів?
- 40 40. Як вирішити проблему конфлікту порту?
- 41 41. Як встановити сторонній модуль?
- 42 42. Як призначити кілька імен віртуальним хостам?
- 43 43. Як обмежити розмір завантаження?
1. Як зупинити / запустити веб-сервер Apache?
Ви можете перезапустити, перейшовши до місця екземпляра Apache >> папка бін і виконувати скрипт apachectl.
./ apachectl зупинка
./ apachectl start
Ви також можете використовувати сценарій, розташований у /etc/init.d/. Здебільшого він буде названий або “apache” або “httpd”
/etc/init.d/apache зупинка
/etc/init.d/apache start
Інша процедура – використання послуг
httpd зупинка
сервіс httpd start
2. Що таке порт за замовчуванням для HTTP та HTTPS?
Порт за замовчуванням для HTTP становить 80, а HTTPS 443. Порти за замовчуванням для інших програм, перелічених тут.
3. Чи можете ви сказати мені важливе ім’я файлу конфігурації?
httpd.conf – це основний файл конфігурації, який використовується в Apache.
4. Як перевірити версію запущеного веб-сервера Apache?
Існує кілька способів знайти це, але точніше було б;
- Вхід на веб-сервер
- Перейдіть до папки екземпляра apache та bin
- Виконано httpd з -v, щоб отримати детальну інформацію про версію.
[[захищено електронною поштою] sbin] # ./httpd -v
Версія сервера: Apache / 2.2.15 (Unix)
Побудований сервер: 18 липня 2016 15:24:00
[[захищено електронною поштою] sbin] #
Крім того, ви також можете використовувати об / хв команда перевірити встановлену версію.
[[захищено електронною поштою] ~] # rpm -qa | grep httpd
httpd-2.2.15-54.el6.centos.x86_64
httpd-tools-2.2.15-54.el6.centos.x86_64
[[захищено електронною поштою] ~] #
5. Як дізнатися, чи працює веб-сервер?
Існує кілька способів знайти це.
- Увійдіть на веб-сервер та виконайте папку для процесу “httpd”
ps -ef | grep httpd
- Перевірте наявність сповіщень на панелі моніторингу.
- Перевірте, чи доступний ваш браузер apache IP: порт у браузері
Наприклад: http://yourapacheserver.com
- Перевірте, чи налаштований IP та порт прослуховуються на сервері за допомогою netstat
netstat -anlp | grep 80
6. Як встановити HTTP Apache?
Існує три можливі способи встановити це.
Використання вихідний код – ви можете завантажити джерело і скласти його.
- Завантажте останню версію від http://httpd.apache.org/download.cgi
- Витягніть джерело за допомогою утиліти tar або утиліти gzip залежно від типу файлу: .tar або .tar.gz
tar xvf httpd-1.2.3.tar
gzip -d httpd-1.2.4.tar.gz
- Перейдіть до місця вилучення джерела за допомогою команди cd і налаштуйте його за допомогою команди ./configure на терміналі
- Потім компілюйте його за допомогою команди make.
- Нарешті, використовуйте команду make install, щоб встановити її.
Якщо ви хочете дізнатися більше варіантів налаштування, ви можете скористатися командою configure –help.
Сховище YUM – якщо ваш сервер підключений до Інтернету або має внутрішнє сховище, ви можете використовувати yum для його встановлення.
yum встановити httpd
RPM – Ви можете завантажити необхідний пакет RPM і використовувати команду rpm.
rpm -ivh packagename.rpm
7. Як забезпечити прослуховування Apache лише однієї IP-адреси на сервері?
Це часто потрібно, коли у вас є кілька IP-адрес на сервері. Щоб Apache слухав лише вказаний IP, вам потрібно чітко згадати IP та порт у директиві про слухання.
Наприклад:
Слухай 10.10.10.10:80
8. Як забезпечити запуск Apache з користувачем, котрий не має root / niko?
Це можна зробити, додавши користувача & Директива групи у файлі httpd.conf
Користувач apache
Груповий апаш
Наведений вище приклад конфігурації забезпечить запуск з користувачем “apache”. Ви повинні переконатися, що користувачі існують на сервері, перш ніж налаштувати його.
9. Як відключити індексацію каталогів?
Ви можете використовувати “Параметри -Indexes” у відповідній директиві каталогу.
Наприклад:
Параметри -Індекси
10. Який модуль необхідний для можливого перенаправлення?
mod_rewrite відповідає за переадресацію, і це має бути коментовано у файлі httpd.conf.
LoadModule rewrite_module module / mod_rewrite.so
11. Чи можете ви змінити порт прослуховування з типового на щось інше?
Так, це можливо, вказавши номер порту в Слухай директива.
Наприклад: змусити Apache прослуховувати порт 9000 до IP-адреси 10.10.10.10.
Слухайте 10.10.10.10:9000
12. Як захистити веб-сайт, розміщений на веб-сервері Apache?
Існує кілька способів захистити веб-сервер Apache, включаючи наступний.
- Реалізація SSL
- Інтеграція з WAF (брандмауером веб-додатків), таким як ModSecurity тощо.
- Використання хмарного постачальника безпеки
13. Які файли журналів генеруються Apache?
Створено два популярні файли журналу;
- access.log – всі деталі запиту з кодом статусу
- error.log – фіксує всі помилки в апаші або підключенні до бекенда
14. Як створити КСВ?
Ви можете використовувати таку команду OpenSSL або генерувати КСВ в Інтернеті.
Щоб створити новий КСВ із приватним ключем
openssl req -out geekflare.csr -newkey rsa: 2048-вузли -keyout geekflare.key
Перевірте листівку OpenSSL, щоб отримати більше команд.
15. Що таке віртуальний хостинг?
Віртуальний хостинг в Apache дозволяє розміщувати кілька веб-сайтів в одному екземплярі. Можна або створити На основі IP або На основі імені на віртуальний хостинг.
16. Який модуль необхідний для підключення до WebSphere?
mod_was_ap22_http.so потрібно додати у файл httpd.conf для інтеграції з IBM WAS.
17. Як перевести рівень журналу в режим налагодження?
Часто потрібні, коли ви вирішуєте проблему та хочете отримати більше деталей. Ви можете змінити рівень журналу на налагодження, забезпечивши наступне у файлі httpd.conf.
Налагодження LogLevel
18. Який модуль необхідний для включення SSL?
Модуль mod_ssl повинен бути коментований перед реалізацією SSL.
LoadModule auth_basic_module модулі / mod_ssl.so
19. Що називається модулем WebLogic?
mod_wl_22.so
20. Який рівень журналу доступний в Apache?
Конфігурація за замовчуванням встановлена на “попереджати“Однак можливе і таке.
- налагоджувати
- інформація
- попереджати
- повідомлення
- критик
- тривога
- виникнути
- помилка
21. Що таке DocumentRoot?
Директива DocumentRoot – це конфігурація, в якій можна вказати місце папки, звідки будуть подаватися статичні файли. Його також називають WebRoot.
Місце за замовчуванням DocumentRoot – / var / www / html
22. Як розгортати війни або програми JAVA в Apache?
Боюся, Apache – це веб-сервер, і розгортання додатків на базі Java неможливе. Однак ви можете інтегрувати сервери додатків Java, такі як WebLogic, WebSphere, JBoss, де можна розгорнути війну, вушні файли.
23. Яка різниця між веб-сервером Apache та Apache Tomcat?
Apache Web – це сервер HTTP для обслуговування статичного вмісту, де Tomcat є контейнером сервлетів для розгортання файлів JSP.
Ви завжди можете інтегрувати Apache HTTP з Tomcat, однак, виходячи з вимоги, яку потрібно вибрати будь-яку. Якщо вам потрібний належний веб-сервер, тоді Apache HTTP ще Tomcat для JSP-сервлет-контейнера.
24. Як Apache може діяти як проксі-сервер?
Ви можете використовувати модуль mod_proxy, щоб використовувати його як проксі-сервер. Модуль mod_proxy може бути використаний для підключення до сервера резервного копіювання, наприклад Tomcat, WebLogic, WebSphere тощо.
25. Як налаштувати журнал Apache, щоб він фіксував час, необхідний для обслуговування запиту?
Ви можете додати “% D“У файлі httpd.conf відповідно до директиви LogFormat для фіксації часу відповіді, необхідного для обслуговування запиту. Він покаже час у мікросекундах.
LogFormat "% h% l% u% t \"% r \" %>s% b \"% {Referer} i \" \"% {User-Agent} i \" % D" комбіновані
Перезавантажте веб-сервер Apache, і ви зможете побачити результати.
182.19.197.23 – – [02 / жовт. 2016: 10: 32: 25 +0000] "GET / HTTP / 1.1" 403 4961 "-" "Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit / 537.36 (KHTML, як і Gecko) Chrome / 53.0.2785.116 Safari / 537.36" 1515 рік
182.19.197.23 – – [02 / жовт. 2016: 10: 32: 25 +0000] "GET /icons/apache_pb.gif HTTP / 1.1" 304 – "http://lab.geekflare.com/" "Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit / 537.36 (KHTML, як і Gecko) Chrome / 53.0.2785.116 Safari / 537.36" 424
182.19.197.23 – – [02 / жовт. 2016: 10: 32: 25 +0000] "GET /icons/poweredby.png HTTP / 1.1" 304 – "http://lab.geekflare.com/" "Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit / 537.36 (KHTML, як і Gecko) Chrome / 53.0.2785.116 Safari / 537.36" 472
26. Який інструмент ви використовуєте для аналізу журналів?
Ви повинні говорити правду, але, щоб дати вам уявлення, ви можете використовувати GoAccess, SumoLogic або декілька згаданих тут.
27. Які веб-сервери ви працювали разом з Apache?
Знову ж таки, вам краще сказати правду, але щоб ви мали на увазі, на ринку є багато веб-серверів, включаючи наступні.
- Nginx
- Microsoft IIS
- LiteSpeed
- GWS
28. Як перевірити файл httpd.conf, щоб упевнитись у синтаксисі помилки конфігурації?
httpd –t допоможе перевірити синтаксис.
[[захищено електронною поштою] httpd] # / usr / sbin / httpd -t
Синтаксис ОК
[[захищено електронною поштою] httpd] #
Крім того, ви можете також використовувати команду apachectl.
[[захищено електронною поштою] ~] # / usr / sbin / apachectl configtest
Синтаксис ОК
[[захищено електронною поштою] ~] #
29. Як виконати показник продуктивності Apache?
Ви можете використовувати такий інструмент, як ApacheBench, SIEGE для виконання тесту навантаження на веб-серверах, включаючи Apache. Ще один варіант проведення стрес-тесту в Інтернеті, щоб побачити загальну ефективність роботи веб-додатків під навантаженням.
30. Як отримати підтримку веб-сервера Apache, якщо щось не так?
Apache – це веб-сервер з відкритим кодом, тому немає підтримки на рівні підприємства. Однак ви можете підняти повідомлення про помилку або задайте питання щодо Stack Overflow.
31. Як забезпечити запуск веб-сервера після перезавантаження сервера?
Якщо працює Linux, ви можете поставити скрипт у /etc/init.d/ і включити запуск при завантаженні за допомогою команди chkconfig
Скажімо, ви створили файл з назвою апаш і помістити під /etc/init.d
chkconfig –add apache
chkconfig apache на
якщо в Windows, то переконайтесь, що вибрано тип запуску “Автоматичний”.
32. чим відрізняється веб-сервер Apache від Nginx?
Обидва класифікуються як веб-сервер, і ось деякі основні відмінності.
- Nginx – веб-сервер на основі подій, де Apache базується на процесах
- Nginx відомий кращими показниками, ніж Apache
- Apache підтримує широкий спектр ОС, де Nginx не підтримує OpenVMS та IBMi
- Apache має велику кількість інтеграції модулів із сервером додатка, де Nginx все ще наздоганяє
- Nginx легкий і швидко завойовує частку ринку. Якщо ви новачок у Nginx, то, можливо, вам буде цікаво переглянути мої статті про Nginx.
33. Як би ви вбили Apache, якщо витончена зупинка не працює?
Якщо працює на Linux, то можна використовувати команду kill.
Дізнайтеся PID Apache, використовуючи http -ef | grep http
Тоді вбий
вбити $ PIDNUMBER
якщо звичайне убивство не працює, то спробуйте убити -9
вбити -9 $ ПІДНЯТТЯ
Якщо в Windows, то закінчіть завдання Apache в диспетчері завдань.
34. Як знайти файл httpd.conf, якщо ви не знаєте місця установки?
У Linux можна використовувати команду find.
Припустимо, ви знаєте, що це має бути у / файловій системі додатків, тоді ви можете скористатися наступною командою.
find / apps -name httpd.conf
Але якщо ви не впевнені, яку саме файлову систему ви можете знайти в / файловій системі, але пам’ятайте, що це може зайняти багато часу, залежно від загального розміру файлової системи.
find / -name httpd.conf
35. Які різні смаки веб-сервера Apache ви знаєте?
- IBM HTTP Server – відомий як IHS і часто використовується з IBM WebSphere Application Server
- Сервер Oracle HTTP – відомий як OHS, який часто використовується з веб-сервером Oracle Weblogic
36. Де розташований Apache у центрі обробки даних?
Ви можете пояснити, виходячи зі свого досвіду, однак, як правило, для Інтернет-додатків це буде в мережі DMZ в Інтернеті та для внутрішньої мережі, основної мережі.
Але знову ж таки це буде відрізнятися залежно від заявки / організації.
37. Як приховати деталі версії сервера у заголовку відповіді HTTP?
Додайте наступне у файл httpd.conf та перезапустіть веб-сервер
Серверні товари Prod
Підпис підключений
Це приховає версію та покаже Сервер як “Апач“Тільки.
38. Що значить 200, 403 & 503 коди помилок HTTP означають?
- 200 – вміст знайдено та подано ОК
- 403 – намагався отримати доступ до файлу / папки з обмеженнями
- 503 – сервер занадто зайнятий для обслуговування запиту, інакше кажучи – сервіс недоступний.
- Докладнішу інформацію див. У інфографіці коду відповіді HTTP.
39. Як відключити відстеження HTTP-запитів?
Додайте наступне у файл httpd.conf та перезапустіть примірник
TraceEnable вимкнено
40. Як вирішити проблему конфлікту порту?
netstat буде корисним для усунення проблеми конфлікту порту. Якщо на одному сервері запущено декілька екземплярів, рекомендується мати абсолютний IP: Порт, налаштований для директиви про прослуховування.
41. Як встановити сторонній модуль?
Ви можете скористатися Apache Toolbox. Після завантаження витягніть його за допомогою утиліти tar.
дьоготь -xf Apachetoolbox-1.5.72.tar.gz
Перейдіть до папки Apachetoolbox-1.5.72 за допомогою команди cd і запустіть команду нижче, щоб вибрати модулі для вашого сервера Apache.
./install.sh
Він надає такі модулі, як mod_ip_forwarding, mod_auth_mysql та mod_auth_samba для компіляції з веб-сервером Apache. Хоча ви можете включити ці модулі вручну, з Apache Toolbox це простіше.
42. Як призначити кілька імен віртуальним хостам?
Ви можете скористатися директивою ServerAlias, як показано нижче.
ServerName example.com
ServerAlias awesome.com fantastic.com
43. Як обмежити розмір завантаження?
У мене є веб-додаток, який дозволяє користувачам завантажувати файли, такі як текстові документи, pdf тощо. Як обмежити завантаження файлів користувачами?
Ви можете скористатися директивою LimitRequestBody, щоб обмежити розмір файлу для завантаження.
LimitRequestBody 9000
Значення, присвоєне LimitRequestBody, дозволяє Apache приймати та зберігати завантаження файлів у 9000 байт користувачами. Ви можете скоригувати значення на основі вимоги.
44. Як обмежити доступ через ІР?
Можливо, ви хочете, щоб деякі корені контексту були доступні дозволеними IP-адресами. Для цього ви можете скористатися mod_authz_core або mod_authz_host модулі для обмеження доступу за допомогою директиви Require.
Потрібна 10.0.0.2 10.0.0.4 192.168.34.23 192.168.34.23
Виконуючи вище, Apache обслуговуватиме запити, лише якщо запити будуть зроблені із перелічених IP-адрес.
Вам потрібно вказати директиву Require в каталозі, де ви хочете дозволити або заборонити доступ до ресурсів.
Висновок
Сподіваюсь, що наведені вище запитання та відповіді допоможуть вам підготуватися до адміністратора веб-сервера інтерв’ю.