Советы по настройке веб-сервера Apache

Установка и настройка веб-серверов и серверов приложений

Советы по настройке веб-сервера Apache

Сообщение zk » 07 сен 2007, 23:58

В этой теме будут обсуждаться различные аспекты настройки Apache и его модулей.

Windows инсталятор:
apache_2.2.6-win32-x86-no_ssl.msi (4,12 MB)

Так же о некоторых модулях для безопасности можно почитать в разделе Компьютерная безопасность

Все настройки делаются в файле httpd.conf.

Несколько доменов на одном компьютере.

Часто задают вопрос, как Apache настроить для использования нескольких доменных имён.
Для этого есть VirtualHost, ниже приведён пример настройки Apache для двух доменных имён, я думаю по аналогии несложно будет разобраться.

Код: Выделить всёРазвернуть
NameVirtualHost *:* 

<VirtualHost *:80>
    ServerAdmin webmaster@site1.vfose.ru
    DocumentRoot с:\www\site1.vfose.ru   
    ServerName site1.vfose.ru
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@site2.vfose.ru
    DocumentRoot с:\www\site2.vfose.ru   
    ServerName site2.vfose.ru
#Пример Алиаса
    ServerAlias  site2.ru site2.xxx.org
</VirtualHost>

#Пример редиректа
<VirtualHost *:80>
    ServerAdmin webmaster@site2.vfose.ru
    ServerName site2-forum.vfose.ru
    DocumentRoot с:\www\site2.vfose.ru
    Redirect permanent /   http://site2.vfose.ru/forum/
</VirtualHost>


Настройка авторизации средствами Apache.
Защищаемая директория: c:\apache\htdocs\secured\
Сначала создадим файл паролей и одного юзера в нём (утилиту запускаем из коммандной строки):
Код: Выделить всёРазвернуть
c:\apache\bin\htpasswd -с c:\apache\htdocs\secured\.htpasswd user_name


Далее создаём c:\apache\htdocs\secured\.htaccess
Код: Выделить всёРазвернуть
AuthType Digest
AuthName "Secure zone"
AuthDigestFile c:\apache\htdocs\secured\.htpasswd
require valid-user


Для добавления нового пользователя запускаем htpasswd без опции -c

Проброс (проксирование) сайта.
Например у нас есть доступ в интернет, и мы хотим сделать доступным для всех в ФОСе сайт http://opennet.ru по адресу opennet.vfose.ru

Для этого включаем mod_proxy раскомментировав строки:
Код: Выделить всёРазвернуть
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so


И добавляем вот такой виртуальный хост:
Код: Выделить всёРазвернуть
<VirtualHost *:80>
   ServerName opennet.vfose.ru
   ProxyPass / http://opennet.ru/
   ProxyPassReverse / http://opennet.ru/
</VirtualHost>

Теперь если пользователи будут обращаться на opennet.vfose.ru , ваш сервер будет обращаться к opennet.ru и передавать оттуда странички. Если прикрутить ещё и mod_cache то можно так же организовать кеширование.


ЧПУ - ЧеловекоПонятныеУрлы или cleanurl в PHP
Я добавил для сайта ЧПУ и решил вкратце поделиться опытом.
ЧПУ - это когда вместо вместо ссылки вида /catalog.php?category=5&subcategory=1 получается что-то типа /catalog/5/1/ (ещё лучше когда /catalog/games/cs/ , но тут нужна поддержка скрипта, и я этого пока не сделал).
Эти ссылки приятнее человеческому глазу, а ещё этот подход удобен тем что можно проверять входные данные скрипта до того как они в него попадут.

В Apache есть модуль mod_rewrite, его то и нужно включить чтобы можно было сильно не напрягаясь сделать ЧПУ.
Правила для перезаписи ссылок находятся в .htaccess файле, и для вышеприведённого примера выглядят так:

Код: Выделить всёРазвернуть
#включаем движок 
RewriteEngine on
Options +FollowSymlinks
RewriteBase /

#Само правило
RewriteRule ^catalog/([0-9])/([0-9])/$ catalog.php?category=$1&subcategory=$2


mod_rewrite использует для перезаписи регулярные выражения POSIX, подробнее с ними можно ознакомится в интернете.
Суть в том что в данном случае совпадения из скобок передаются последовательно в виде параметров скрипту, причём параметром могут быть только числа от 0 до 9. Для перезаписи букв можно использовать [a-z].

mod_status - статистика сервера в реальном времени
Долго думал как бы мне посмотреть что там творится с веб-сервером, а оказывается в стандартной поставке идёт mod_status.

Настраивается так:
Раскомментируем строчку:
Код: Выделить всёРазвернуть
LoadModule status_module modules/mod_status.so

Добавляем в конфиг строчки:
Код: Выделить всёРазвернуть
<IfModule status_module>
    ExtendedStatus On
# адрес по которому будет доступен статус
    <Location /server-status/>
    SetHandler server-status
    Order deny,allow
    Deny from all
# ваш ип, с которого можно будет смотреть статус
    Allow from 127.0.0.1
    </Location>
</IfModule>   


Теперь страничка статуса сервера доступна по адресу http://127.0.0.1/server-status/


(c) zk
zk
Администратор
 
Сообщения: 1972
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: Советы по настройке веб-сервера Apache

Сообщение eyehategod » 26 сен 2007, 14:40

Помогите с настройкой! Ну прописал я все как написано выше в конфиге апаче, но всеравно не работает: http://eyehategod.vfose.ru и апач выдает ошибку: [warn] NameVirtualHost *:80 has no virtual hosts
eyehategod

 
Сообщения: 3
Зарегистрирован: 26 сен 2007, 14:34

Re: Советы по настройке веб-сервера Apache

Сообщение zk » 26 сен 2007, 15:01

Исправьте NameVirtualHost *:80 на NameVirtualHost *
zk
Администратор
 
Сообщения: 1972
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: Советы по настройке веб-сервера Apache

Сообщение eyehategod » 26 сен 2007, 20:15

Исправил, но теперь появляется ошибка:

[warn] NameVirtualHost *:* has no virtual hosts

Что это может означать?
eyehategod

 
Сообщения: 3
Зарегистрирован: 26 сен 2007, 14:34

Re: Советы по настройке веб-сервера Apache

Сообщение eyehategod » 26 сен 2007, 21:25

точнее ошибка: [warn] NameVirtualHost *:0 has no virtual hosts
eyehategod

 
Сообщения: 3
Зарегистрирован: 26 сен 2007, 14:34

Re: Советы по настройке веб-сервера Apache

Сообщение zk » 19 окт 2007, 12:31

В первый пост добавлен пример перенаправления с домена Redirect permanent и Алиаса ServerAlias.

Redirect permanent пригодится когда возникает необходимость например перебросить пользователя с http://primer-forum.vfose.ru/ на http://primer.vfose.ru/forum/.

ServerAlias нужен собственно для задания алиасов для виртуалхостов.
zk
Администратор
 
Сообщения: 1972
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: Советы по настройке веб-сервера Apache

Сообщение zk » 11 фев 2008, 17:14

Добавлен совет по проксированию сайтов с помощью mod_proxy
zk
Администратор
 
Сообщения: 1972
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

httpd.conf

Сообщение Владислав » 17 фев 2008, 16:32

Как настроить httpd.conf если модем находится в режиме роутера???
Изображение 11-33-761
vbms-sar@yandex.ru - "my Mail"
Владислав
Начинающий участник
 
Сообщения: 8
Зарегистрирован: 08 сен 2007, 21:16
Откуда: Саратов

Re: Советы по настройке веб-сервера Apache

Сообщение zk » 17 фев 2008, 17:00

Как настроить httpd.conf если модем находится в режиме роутера???

Абсолютно так же как и в случае бриджа.
Настройка модема к настройке ПО отношения не имеет.
zk
Администратор
 
Сообщения: 1972
Зарегистрирован: 02 сен 2007, 16:04
Домен: vfose.ru

Re: Советы по настройке веб-сервера Apache

Сообщение Владислав » 15 мар 2008, 22:47

[delete]
Последний раз редактировалось Владислав 24 июл 2013, 12:26, всего редактировалось 2 раз(а).
Изображение 11-33-761
vbms-sar@yandex.ru - "my Mail"
Владислав
Начинающий участник
 
Сообщения: 8
Зарегистрирован: 08 сен 2007, 21:16
Откуда: Саратов

След.

Вернуться в Веб серверы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3