Настройка https-соединения в Apache на CentOS. Centos apache настройка
Настройка виртуальных хостов Apache на ОС CentOS 6.4
В этой статье рассмотрим настройку виртуальных хостов web-сервера Apache на ОС CentOS 6.4. Это позволит нам создать несколько сайтов на одном сервере. Для этого нам понадобится следующее настроенный Web-сервер на ОС CentOS 6.4 совместно с FTP-сервером (все службы на одном сервере).
У нас имеется доменное имя localserver12.ru (будем использовать как основное), а также localserver34.ru и localserver56.ru. Наша задача – поднять такие имена:
- www.localserver12.ru
- subdomain.localserver12.ru (субдомен для второго сайта)
- pma.localserver12.ru (субдомен для phpMyAdmin)
- webserver.localserver12.ru (субдомен, по умолчанию для самого сервера)
- www.localserver34.ru
- subdomain.localserver34.ru
- www.localserver56.ru
- subdomain.localserver56.ru
Как настроить Web-сервер, можно посмотреть здесь. Как настроить FTP-сервер vsFTPd – здесь. Настроить на FTP-сервере нужно будет только пользователя webmaster, остальных пользователей необходимости нет.
Также в DNS-сервер необходимо будет внести соответствующие A-записи. Если DNS необходимо настроить на своей территории, то можно воспользоваться любой из этих статей (в зависимости от используемой операционной системы):
Первым делом – открываем файл /etc/httpd/conf/httpd.conf и выполняем действия:
1) Ниже (или вместо)
# Listen 12.34.56.78:80
Пишем:
Listen 80
2) Ниже (или вместо)
# ServerName www.example.com:80
Пишем:
ServerName webserver.localserver12.ru:80
3) Проверяем, чтобы было не закомментировано:
DocumentRoot /var/www/html
4) Находим DirectoryIndex и допишем чего не хватает:
DirectoryIndex index.php index.html index.htm index.shtml
Удаляем файл /etc/httpd/conf.d/phpmyadmin.conf. У нас больше нет в нём необходимости.
Дальше – создаём файл /etc/httpd/conf.d/vhosts.conf
touch /etc/httpd/conf.d/vhosts.conf
и впишем туда следующее:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName Default
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName www.localserver12.ru
ServerAlias localserver12.ru
DocumentRoot /var/www/vhosts/localserver12.ru/html
ServerAdmin [email protected]
ScriptAlias /cgi-bin/ “/var/www/vhosts/localserver12.ru/cgi-bin”
<Location /cgi-bin>
Options +ExecCGI
</Location>
ErrorLog /var/www/vhosts/localserver12.ru/logs/error_log
CustomLog /var/www/vhosts/localserver12.ru/logs/access_log common
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.localserver12.ru
ServerAlias subdomain.localserver12.ru
DocumentRoot /var/www/vhosts/subdomain.localserver12.ru/html
ServerAdmin [email protected]
ScriptAlias /cgi-bin/ “/var/www/vhosts/subdomain.localserver12.ru/cgi-bin”
<Location /cgi-bin>
Options +ExecCGI
</Location>
ErrorLog /var/www/vhosts/subdomain.localserver12.ru/logs/error_log
CustomLog /var/www/vhosts/subdomain.localserver12.ru/logs/access_log common
</VirtualHost>
<VirtualHost *:80>
ServerName pma.localserver12.ru
ServerAlias pma.localserver12.ru
DocumentRoot /usr/share/phpmyadmin
ServerAdmin [email protected]
ErrorLog /var/www/vhosts/pma.localserver12.ru/logs/error_log
CustomLog /var/www/vhosts/pma.localserver12.ru/logs/access_log common
</VirtualHost>
<VirtualHost *:80>
ServerName www.localserver34.ru
ServerAlias localserver34.ru
DocumentRoot /var/www/vhosts/localserver34.ru/html
ServerAdmin [email protected]
ScriptAlias /cgi-bin/ “/var/www/vhosts/localserver34.ru/cgi-bin”
<Location /cgi-bin>
Options +ExecCGI
</Location>
ErrorLog /var/www/vhosts/localserver34.ru/logs/error_log
CustomLog /var/www/vhosts/localserver34.ru/logs/access_log common
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.localserver34.ru
ServerAlias subdomain.localserver34.ru
DocumentRoot /var/www/vhosts/subdomain.localserver34.ru/html
ServerAdmin [email protected]
ScriptAlias /cgi-bin/ “/var/www/vhosts/subdomain.localserver34.ru/cgi-bin”
<Location /cgi-bin>
Options +ExecCGI
</Location>
ErrorLog /var/www/vhosts/subdomain.localserver34.ru/logs/error_log
CustomLog /var/www/vhosts/subdomain.localserver34.ru/logs/access_log common
</VirtualHost>
<VirtualHost *:80>
ServerName www.localserver56.ru
ServerAlias localserver56.ru
DocumentRoot /var/www/vhosts/localserver56.ru/html
ServerAdmin [email protected]
ScriptAlias /cgi-bin/ “/var/www/vhosts/localserver56.ru/cgi-bin”
<Location /cgi-bin>
Options +ExecCGI
</Location>
ErrorLog /var/www/vhosts/localserver56.ru/logs/error_log
CustomLog /var/www/vhosts/localserver56.ru/logs/access_log common
</VirtualHost>
<VirtualHost *:80>
ServerName subdomain.localserver56.ru
ServerAlias subdomain.localserver56.ru
DocumentRoot /var/www/vhosts/subdomain.localserver56.ru/html
ServerAdmin [email protected]
ScriptAlias /cgi-bin/ “/var/www/vhosts/subdomain.localserver56.ru/cgi-bin”
<Location /cgi-bin>
Options +ExecCGI
</Location>
ErrorLog /var/www/vhosts/subdomain.localserver56.ru/logs/error_log
CustomLog /var/www/vhosts/subdomain.localserver56.ru/logs/access_log common
</VirtualHost>
Следующий шаг – создаём на сервере все необходимые папки, которые соответствуют DocumentRoot из файла /etc/httpd/conf.d/vhosts.conf для всех сайтов. Желательно делать это с помощью FTP-клиента, например, FileZilla.
Подключившись по FTP с учётной записи webmaster, попадаем в папку /var/www (это из настроек FTP-сервера пользователя webmaster). И создаём папки:
/var/www/vhosts
/var/www/vhosts/localserver12.ru
/var/www/vhosts/localserver12.ru/html
/var/www/vhosts/localserver12.ru/cgi-bin
/var/www/vhosts/localserver12.ru/logs
/var/www/vhosts/subdomain.localserver12.ru
/var/www/vhosts/subdomain.localserver12.ru/html
/var/www/vhosts/subdomain.localserver12.ru/cgi-bin
/var/www/vhosts/subdomain.localserver12.ru/logs
/var/www/vhosts/pma.localserver12.ru
/var/www/vhosts/pma.localserver12.ru/logs
/var/www/vhosts/localserver34.ru
/var/www/vhosts/localserver34.ru/html
/var/www/vhosts/localserver34.ru/cgi-bin
/var/www/vhosts/localserver34.ru/logs
/var/www/vhosts/subdomain.localserver34.ru
/var/www/vhosts/subdomain.localserver34.ru/html
/var/www/vhosts/subdomain.localserver34.ru/cgi-bin
/var/www/vhosts/subdomain.localserver34.ru/logs
/var/www/vhosts/localserver56.ru
/var/www/vhosts/localserver56.ru/html
/var/www/vhosts/localserver56.ru/cgi-bin
/var/www/vhosts/localserver56.ru/logs
/var/www/vhosts/subdomain.localserver56.ru
/var/www/vhosts/subdomain.localserver56.ru/html
/var/www/vhosts/subdomain.localserver56.ru/cgi-bin
/var/www/vhosts/subdomain.localserver56.ru/logs
В папку html любого из сайтов заливаем HTML-страницы и PHP-скрипты, а в папку CGI-BIN – Perl/CGI скрипты.
Перезагружаем машину. Проверяем. Вписываем в адрес браузера (на другой машине в сети) все эти адреса. Если все они работают – значит всё сделано правильно.
Если Вам помогла статья, вы можете отблагодарить автора: перечислить на WMR кошелёк (WebMoney): R301575071888 перечислить на Яндекс.Кошелёк: 410011003938168 или на PayPal:Статьи по теме:
на Ваш сайт.
7 основных советов для повышения безопасности Apache на CentOS
Кем тебе быть, не решил? Вскоре ты станешь ничем! (Марциал).
Apache является самым популярным и наиболее часто используемых веб – сервером в мире, и это первый веб – сервер, используемый для обслуживания более чем 100 миллионов веб – сайтов по всему миру. Apache должен быть очень безопасным веб – сервером, в этой статье мы расскажем несколько основных изменений конфигурации, чтобы сделать Apache еще более безопасным на CentOS VPS.1. Держите обновленным Apache до настоящего времениСамый важный совет безопасности, а не только для Apache, но и для всех сервисов, приложений и скриптов, чтобы держать их в актуальном состоянии путем обновления каждый раз, когда выходит новая версия. Apache активно развивается и вопросы безопасности фиксируются в новых версиях.
Чтобы обновить веб-сервер Apache до последней доступной версии выполните следующую команду
yum -y update httpd
2. Скрыть версию Apache и OSДиректива ServerSignature включена по умолчанию и отображает версию Apache, установленный на вашем сервере и на операционной системе, которую вы используете. Злоумышленники могут легко использовать эту информацию против вашего сервера. Для того, чтобы скрыть эту важную информацию, нужно изменить две директивы в файле конфигурации Apache.
Откройте конфигурационный файл Apache, найти директивы и внести следующие изменения.
vi /etc/httpd/conf/httpd.conf ServerSignature Off ServerTokens Prod
3. Отключить список каталоговЕсли список каталогов не отключен, все желающие смогут перечислить содержимое каталогов в корневом каталоге документов. Перечень каталогов можно отключить с помощью директивы “Options” в конфигурационном файле Apache.
Откройте конфигурационный файл с помощью текстового редактора и добавьте следующую директиву
<Directory /your/document/root> Options -Indexes </Directory>
Заменить путь ‘/your/document/root’ на фактическую корневую директорию.
4. Установить и использовать модуль mod_securitymod_security очень полезный модуль Apache. Он укрепляет безопасность веб – сервера Apache и защитить ваш сайт от различных атак, блокируя почти все общеизвестные эксплойты.
Для установки и настройки mod_security на сервере CentOS, пожалуйста, ознакомьтесь с руководством по установке: Установить mod_security с основным правилом OWASP на CentOS VPS.
5. Отключить все ненужные модулиВ Apache есть много модулей и некоторые из них включены в установке Apache по умолчанию. Не все они необходимы, и рекомендуется отключить неиспользуемые модули. Вы можете использовать следующую команду , чтобы получить список всех включенных модулей Apache
httpd -M Loaded Modules: core_module (static) mpm_prefork_module (static) http_module (static) so_module (static) auth_basic_module (shared) auth_digest_module (shared) authn_file_module (shared) authn_alias_module (shared) authn_anon_module (shared) ....
Вы можете проверить официальную документацию Apache для модулей, чтобы узнать больше об их функциональности.
Все ненужные модули могут быть отключены, добавив символ ‘#’ в начале строки LoadModule в файле конфигурации веб-сервера. Например:
vi /etc/httpd/conf/httpd.conf # LoadModule auth_basic_module modules/mod_auth_basic.so # LoadModule auth_digest_module modules/mod_auth_digest.so
6. Ограничение размера запросаДиректива ‘LimitRequestBody‘ Apache может быть использована, чтобы ограничить число байтов, которые разрешены в теле запроса. Предел во многом зависит от ваших потребностей веб – сайта. По умолчанию лимит ‘LimitRequestBody‘ установлен на неограниченное и это может сделать вас жертвой атак отказа в обслуживании (DOS).
Предел этой директивы Apache может быть установлен от 0 (без ограничений) до 2147483647 (2 Гб). Например, если вы хотите разрешить загрузку файлов с размером 100К в каталоге загрузки /var/www/html/upload, вы можете добавить следующую директиву в файле конфигурации Apache.
<Directory "/var/www/html/upload directory"> LimitRequestBody 102400 </Directory>
7. Включить ведение журналаФайлы журнала всегда очень полезны, чтобы получить более подробную информацию о событиях, которые происходят на вашем сервере. Таким образом, это хорошая практика, чтобы включить протоколирование в Apache. Он предоставит вам более подробную информацию и сведения о всех клиентских запросов, сделанных на вашем веб – сервере. Для этого, вы должны убедиться , что модуль ‘log_config_module‘ включен на вашем сервере.
httpd -M |grep log_config_module Syntax OK log_config_module (shared)
Модуль Apache ‘Log_config_module‘ обеспечивает функциональные возможности директив TransferLog, LogFormat и CustomLog, которые могут быть использованы для создания файла журнала.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Просмотров: 154
Если статья понравилась, то поделитесь ей в социальных сетях:
andreyex.ru
Установка Nginx и Apache в связи в CentOS
Установка Nginx и Apache в связи в CentOS
Данная связка распараллеливает ресурсы между двумя серверами, один работает в качестве фронтенда за это отвечает Nginx, а второй выполняет функцию бэкенда за это отвечает apache2 и сделано это все для снижения общей нагрузки на сервер. Выполняется все это за счет того, что более легкий и не обремененный дополнительным функционалом nginx который обрабатывает все запросы от пользователей. Он сам отдает по запросам весь статический контент, такой как — изображения, html, javascript (его скрипты) и все остальное и не нагружая этим apache, который занимается свою очередь, обрабаткой динамического контента. Собственно, apache не работает с клиентами напрямую, все ихние запросы проксируются на nginx и ему только возвращаются ответы на те запросы. Так соблюдается разделение труда: nginx делает свободным apache от необходимости “обращаться” с большим количеством юзеров и выполнять запросы по статике- это очень большая его часть исходящего трафика. Сам apache не создает никаких дочерних процессов, потребляющие RAM (оперативную память).
Данная связка очень часто используется для обеспечения работы больших ресурсов с очень большей посещаемостью на сайте, но если ресурс с маленькой посещаемостью, то данная связка не даст нормального роста производительности и в своей теме «Установка Nginx и Apache в связи в CentOS» я расскажу и покажу как можно это сделать.
Установка nginx
Первое что нужно сделать — это подключение репозиториев EPEL и CentALT. Они нужны для того, чтобы мы установили Nginx с поддержкой модуля RPAF, модуль для Apache.
Я писал статью по этой теме, по этому Вы можете легко найти:1. Установка и подключения репозитория EPEL
2. Установка centalt для centos
После подключения всех репозиториях, выполняем:
# yum install nginxЯ сейчас сделаю так, чтобы веб-сервер nginx автоматически стартовал при запуске ОС. Для этого:
# chkconfig nginx onКонфигурация Nginx
Следующим этапом будет — коректировка файла конфигурации на сервере nginx:
# vim /etc/nginx/nginx.conf user nginx; error_log /var/log/nginx/error.log debug; pid /var/run/nginx.pid; worker_rlimit_nofile auto; # С версии 1.3 нужно порекомендовать ставить 'auto', если не будет работать, задаем число events { worker_connections 2048; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main ‘$remote_addr – $remote_user [$time_local] $status ‘ ‘»$request» $body_bytes_sent «$http_referer» ‘ ‘»$http_user_agent» «http_x_forwarded_for»‘; access_log /var/log/nginx/access.log main; # немного тюнинга sendfile on; tcp_nopush on; server_tokens off; keepalive_timeout 65; # включим сжатие данных до отправкой gzip on; gzip_static on; gzip_comp_level 5; gzip_min_length 1024; # можно подключить директорию для всех наших конфигов (виртуальных хостов), но я закомментирую ее т.к использую всего 1 сайт # include /etc/nginx/conf.d/*.conf; server { listen 212.66.44.35; #212.66.44.35 нужно сделать замену на IP адрес сервера # за вместо 212.66.44.35 указывается имя Вашего сайта (у меня это ИП адрес, но вы можете прописать домен) server_name 212.66.44.35 www.212.66.44.35; access_log /var/log/nginx/host.access.log main; server_name_in_redirect off; location / { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; proxy_connect_timeout 90; } location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|js)$ { root /var/www/212.66.44.35; } } }Для более нормальной читабельности я его положил в файл и его можно прочитать тут, чтобы скачать выполните (не забудьте переименовать данный файл тогда):
# cd /etc/nginx/ # wget http://linux-notes.org/wp-content/uploads/files/apache_nginx/nginx_for_conjunction_apache_CenOS.confУстановка Apache2
Веб-серер энжинкс уже установлен и настроен, сейчас установим и настроим apache2 который в списке пакетов имеет имя httpd и для его установки нужно выполнить:
# yum install httpdКонфигурация Apache
Нужно немного подредактировать конфигурационный файл в apache и привести к такому виду:
# vim /etc/httpd/conf/httpd.conf [...] Listen 127.0.0.1:8080 NameVirtualHost 127.0.0.1:8080 <VirtualHost 127.0.0.1:8080> ServerAdmin [email protected] DocumentRoot /var/www/212.66.44.35/ ServerName 212.66.44.35 ErrorLog logs/212.66.44.35-error_log CustomLog logs/212.66.44.35-access_log common </VirtualHost> [...]Мой рабочий конфиг Вы можете посмотреть тут, можно так же и скачать (но не забудьте переименовать его):
# cd /etc/httpd/conf/ # wget http://linux-notes.org/wp-content/uploads/files/apache_nginx/httpd_for_conjunction_nginx_CenOS.confУстановка модуля RPAF
Сейчас все запросы к апачу поступают не от удаленных посетителей, а уже от nginx, то в итоге IP-адрес посетителя apache будет оприделятся как локальный (127.0.0.1). Собственно, чтобы решить эту проблему нужно установить и настроить модуль RPAF. Расскажу как работает данный модуль:
Собственно, нечего непонятного тут нет, RPAF берет тело заголовка X-Forwarded-For, который прислал наш фронтенд (веб-сервер nginx) и делает замену в заголовке REMOTE_ADDR на бекенде (веб-серера apache).
Выполним установку:
# yum install mod_rpafУ меня этот метод установки почему то не работал, по этому я решил свою проблему немного по другому.
Сначала я поставил пакеты нужных для работы утилит (http-devel и gcc -это компилятор):
# yum -y install httpd-devel gccПосле чего я перейду в папку src:
# cd /usr/local/srcПосле этого я скачаю архив с исходным кодом mod_rpaf:
# wget http://drupion.com/sites/default/files/mod_rpaf-0.6.tar_.gzРаспакую данный, скачанный архив следующей командой и перейду в нужную папку для дальнейшей работы:
# tar zxvf mod_rpaf-0.6.tar_.gz && cd mod_rpaf-0.6После чего, выполняем команду и устанавливаем данный модуль в апач:
# apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.cНастройка модуля RPAF
Следующим шагом будет настройка модуля, для этого откроем нужный файл и впишем в него некоторые изменения:
# vim /etc/httpd/conf.d/rpaf.conf LoadModule rpaf_module modules/mod_rpaf-2.0.so RPAFenable On RPAFsethostname Off RPAFproxy_ips 127.0.0.1 RPAFheader X-Real-IPВсе, установка и настройка nginx и apache в связи в CentOS, но остались последние штрихи — нужно перегрузить все сервисы:
# /etc/init.d/httpd restart # /etc/init.d/nginx restartНа этом, тема «Установка Nginx и Apache в связи в CentOS» завершена, спасибо что читаете мой блог http://linux-notes.org
Не забываем поставить еще PHP5, базы данных (Mysql, MariaDB, MongoBD, oracle или любую другую), на сайте можно найти многое по различным темам.
linux-notes.org
Настройка apache centos | Users Wiki
Теперь создадим текстовую таблицу (один из возможных путей для сохранения языкозависимых.
Если Вы заказали VPS/VDS сервер и не знаете как. Установка и настройка Apache, PHP, MySQL на CentOS.
It is one of the most secure web server compare . The Apache web server is one of the most popular and powerful web servers in the world.
В windows он обычно лежит в C:WindowsSystem32driversetc, в nix системах в /etc/. Проверяем:Для проверки совершенно не обязательно менять NS записи домена, достаточно отредактировать файл hosts на компьютере, с которого вы производите настройку.
В общем случае для организации веб сервера будет достаточно того, что есть в этой статье. Для улучшения быстродействия, повышения надежности и удобства пользования нужно установить еще несколько инструментов, о чем я расскажу отдельно. Хочу сразу уточнить, что разбираю базовую дефолтную настройку.
Есть подозрение, что я что-то не учел при настройке php на сервере. На ПК в локальной сети установлен CentOS, Apache(httpd) и Nginx в роли фронтенда.
Основными задачами стоящими перед командой являются работа над стилем офлайн рекламы, онлайн рекламы и дизайн интерфейсов. Создает и поддерживает качество и унифицированность дизайна для нескольких продуктов нашей компании, создает стиль для новых продуктов, развивает уже существующие концепции для создания наиболее конкурентных решений. Группа дизайна работает в тесной взаимосвязи с группами разработки, при формировании новых сервисов и промо для ключевых клиентов.
Так в этой же статье и рассказано. Если совсем ничего не понятно, то лучше freepbx и сайты разнести по разным серверам. Но нужно хоть какое-то понимание происходящего. Тут все же нужен некоторый опыт и навык, чтобы все аккуратно сделать, и чтобы работало 🙂.
The basic server configuration . The Apache HTTP Server must be installed and configured on all nodes in the assigned failover domain, if used, or in the cluster.
Если вы выполните команду yum install php на CentOS 6, то на веб-сереверебудет установлена PHP 5. Для того, чтобы “заполучить” версию повыше .
Создает и модифицирует узкоспециализированное программное обеспечение на Java, которое в последующем становится основой работы внутренних пользователей. Высокая отказоустойчивость продукта, созданного этой командой, является одним из конкурентных преимуществ нашей компании.
Но стоит только добавить в conf. D конфиг странички, загружается только она, а gpli выдает 404 ошибку. Да, разобрался в итоге, там в итоге была проблема не в самом каталоге,а в сокет файле мускула. Теперь вот проблема с виртуальными хостами. Я поставил GLPI и все работает по ссылке типа http://x. На этом моменте я туплю. Я так понимаю это из-за параметра DocumentRoot, указанного в моем конфиге для сайта.
offerov.net
Настройка поддержки VirtualHost в CentOS | blog.eaglenn.ru
Виртуальный хостинг — вид хостинга, при котором множество веб-сайтов расположено на одном веб-сервере. Это самый экономичный вид хостинга, подходящий для небольших проектов.
Предположим вы хотите разместить в пределах одного сервера несколько сайтов. При этом для пользователей из внутренней сети необходима поддержка таких сервисов как wpad, внутренний веб сервер и прочее.
1. Настройка httpd.conf
Для поддержки работы apache с виртуальными хостами необходимо внести небольшие изменения в настройки сервера. В первую очередь вам необходимо внести изменения в файл /etc/httpd/conf/httpd.conf. Откроем httpd.conf и найдем секцию:
## Listen: Allows you to bind Apache to specific IP addresses and/or# ports, in addition to the default. See also the <VirtualHost># directive.## Change this to Listen on specific IP addresses as shown below to.# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)#
По умолчанию у вас прописано Listen *:80, это значит что сервер apache висит на всех сетевых интерфейсах и слушает порт 80. Данная настройка подходит для поддержки одного сайта с доступом к нему как изнутри, так и снаружи.
Для поддержки виртуального хостинга лучше разнести работу веб сервера на разные адреса. Для этого пропишем следующие параметры в httpd.conf:
Listen LOCAL IP:80Listen EXTERNAL IP:80
Данная настройка укажет серверу apache слушать 80 порт на внешнем и внутреннем IP-адресе. Если оставить только Listen LOCAL IP:80, то apache сервер будет слушать только внутренний интерфейс и ваши сайты не будут доступны из внешней сети. Я надеюсь вы используете правила FireWall которые ограничивают доступ к внутренней сети из глобального интернета.
2. Настройка виртуального хоста
Создадим на файловой системе необходимые папки для ваших виртуальных хостов. Как правило в CentOS директория расположения веб файлов находиться в каталоге /var/www. В каталоге www создадим папку blog.eaglenn.ru и daizy.ru. имена каталогам лучше давать из названий доменов которые будут ссылаться на эти папки. В моем случае это два домена:
Вновь откроем https.conf, спустимся в самый низ к секции VirtualHost
## Use name-based virtual hosting.#NameVirtualHost *:80## NOTE: NameVirtualHost cannot be used without a port specifier.# (e.g. :80) if mod_ssl is being used, due to the nature of the# SSL protocol.#
## VirtualHost example:# Almost any Apache directive may go into a VirtualHost container.# The first VirtualHost section is used for requests without a known# server name.##<VirtualHost *:80># ServerAdmin [email protected]# DocumentRoot /www/docs/dummy-host.example.com# ServerName dummy-host.example.com# ErrorLog logs/dummy-host.example.com-error_log# CustomLog logs/dummy-host.example.com-access_log common#</VirtualHost>
Виртуальный хост будет использовать внешний IP-адрес и слушать 80 порт. Изменим параметр NameVirtualHost на NameVirtualHost EXTERNAL IP:80. Тем самым мы укажем apache что виртуальный хостинг будет использовать внешний адрес. Больше ничего в httpd.conf менять не нужно.
В CentOS настройки виртуальных хостов берутся из конфигурационных файлов, расположенных в каталоге /etc/httpd/conf.d. Перейдем туда и создадим файлы для наших будущих сайтов.
daizy.ru.confblog.eaglenn.ru.conf
Внесем настройки в наши файлы, для этого откроем например daizy.ru.conf и добавим следующие строки:
daizy.ru.conf
<VirtualHost EXTERNAL IP:80>
ServerName daizy.ruDocumentRoot «/var/www/daizy.ru»ServerAdmin [email protected] /var/log/httpd/error_daizy.ru_logCustomLog /var/log/httpd/access_daizy.ru_log common<Directory «/var/www/daizy.ru»>Options All</Directory></VirtualHost>
blog.eaglenn.ru.conf
<VirtualHost EXTERNAL IP:80>
ServerName blog.eaglenn.ruDocumentRoot «/var/www/blog.eaglenn.ru»ServerAdmin [email protected] /var/log/httpd/error_blog.eaglenn.ru_logCustomLog /var/log/httpd/access_blog.eaglenn.ru_log common<Directory «/var/www/blog.eaglenn.ru»>Options All</Directory></VirtualHost>
Аналогичную процедуру проделаем для нашего второго сайта. Обратите внимание на параметры:
- DocumentRoot
- Directory
- ServerName
Для каждого сайта они разные!
В настройках вашего DNS отвечающего за зоны сделаем соответствующие A записи с вашим EXTERNAL IP
3. Запуск apache
Запустим apache: /etc/init.d/httpd start или перезагрузим:/etc/init.d/httpd restart в зависимости от того в каком состоянии находился у вас сервер до внесения изменений.
Если нет ошибок, значит вы все сделали правильно и можете наслаждаться доступом к своим сайтам расположенным в виртуальных каталогах. Замечу что для внутренней сети веб каталогом будет папка которая используется веб сервером по умолчанию: /var/www/html
Если при запуске apache вы получили ошибку указанную ниже:
# /etc/init.d/httpd restartОстанавливается httpd: [ OK ]Запускается httpd: Syntax error on line 11 of /etc/httpd/conf.d/blog.eaglenn.ru.conf:ErrorLog not allowed here[СБОЙ ]
Это значит что вы ошиблись и прописали параметры
ErrorLog /var/log/httpd/error_blog.eaglenn.ru_logCustomLog /var/log/httpd/access_blog.eaglenn.ru_log common
в секцию Directory. Эти параметры относятся к настройкам VirtualHost перед секцией Directory.
На этом настройка закончена.
blog.eaglenn.ru
Установка и настройка связки Nginx+Apache
Связка двух веб-серверов, один из которых выполняет функцию фонтенда (Nginx), другой — бэкенда (Apache2), предназначена для снижения общей нагрузки на сервер. Достигается это за счет того, что более легкий и не обремененный дополнительным функционалом Nginx первым принимает все запросы пользователей. Он самостоятельно выдает по запросам статический контент (изображения, html-файлы, javascript-скрипты..), не озадачивая этой функцией тяжеловесный Apache, который, в свою очередь, обрабатывает динамический контент. Apache не работает напрямую с пользователем, все их запросы проксируются Nginx, и ему же возвращаются ответы. Так достигается разделение труда: Nginx освобождает Apache от необходимости “общаться” с множеством пользователей и обрабатывать запросы на статику, которая составляет большую часть исходящего трафика. Apache не создает множества дочерних процессов, потребляющих оперативную память.
Данная связка часто применяется для обеспечения работы крупных ресурсов с большой посещаемостью. Для ресурсов с маленькой посещаемостью такая связка не даст ощутимого прироста производительности.
Если Вы являетесь пользователем ISPmanager, нижеизложенная информация пригодится Вам лишь для ознакомления. Его функционал позволяет создать такую связку достаточно быстро и без манипуляции с командной строкой.
Данная статья была протестирована на CentOS 5 и Debian Squeeze. Связка работает в том же виде и на других дистрибутивах, но по причине наибольшей популярности первых, мы будем говорить именно о них. Основная часть данной статьи посвящена CentOS, но различия с Debian заключаются только в названиях пакетных менеджеров и нескольких незначительных моментах. Все особенности установки для Debian описаны в заключительной части данной статьи. Команды и примеры файлов конфигурации, не указанные в этом разделе, подходят для обеих систем.
Установка nginx
CentOS
Для начала нам необходимо подключить репозитории EPEL и CentALT. Это нужно для того, чтобы мы смогли установить Nginx с поддержкой модуля RPAF и сам модуль для Apache.
Для подключения этих репозиториев введите в консоли команды:
# для 32-битных ОС rpm -ihv http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -ihv http://centos.alt.ru/repository/centos/5/i386/centalt-release-5-3.noarch.rpm # для 64-битных ОС rpm -ihv http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpmДалее, выполните команду установки пакета nginx:
yum install nginxВ большинстве случаев требуется, чтобы nginx загружался автоматически при запуске сервера. Для этого выполните следующую команду:
chkconfig nginx onDebian/Ubuntu
Для установки пакета в ОС Debian или Ubuntu достаточно выполнить команду в консоли:
apt-get install nginxNginx автоматически будет добавлен в автозагрузку при запуске сервера.
Конфигурация Nginx
Следующий этап — изменение файла конфигурации Nginx. Путь к файлу конфигурации: /etc/nginx/nginx.conf
Наш конфиг файл должен выглядеть примерно так:
user www-data; error_log /var/log/nginx/error.log debug; pid /var/run/nginx.pid; worker_rlimit_nofile 80000; events { worker_connections 2048; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main ‘$remote_addr – $remote_user [$time_local] $status ‘ ‘»$request» $body_bytes_sent «$http_referer» ‘ ‘»$http_user_agent» «http_x_forwarded_for»‘; access_log /var/log/nginx/access.log main; server { listen 88.88.88.11:80; # 88.88.88.11 нужно заменить на IP Вашего сервера # здесь и далее вместо mysite.ru указывается имя Вашего сайта server_name mysite.ru www.mysite.ru; access_log /var/log/nginx/host.access.log main; server_name_in_redirect off; # Секция ниже описывает параметры, по которых фронтенд обменевается с бэкендом, # такие, как адрес бэкенда, параметры прямого редиректа, параметры передачи заголовков, # максимальный размер принимаемых файлов и пр. location / { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; proxy_connect_timeout 90; } # Эта секция отвечает за местонахождение и типы статичных файлов, обрабатываемых Nginx. # Вы можете добавить по аналогии расширения файлов, которые будут отдаваться Nginx'ом. # Динамические файлы мы будем отсылать на Apache location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|js)$ { root /var/www/mysite.ru; } } }Установка Apache2
CentOS
В списке пакетов для CentOS Apache2 значится как httpd, потому необходимо выполнить следующую команду в консоли:
yum install httpdDebian/Ubuntu
Для Debian/Ubuntu установить Apache нужно командой:
apt-get install apache2Конфигурация Apache
Приводим соответствующую часть файла конфигурации Apache к такому виду:
Файл конфигурации располагается:Debian/Ubuntu: /etc/apache2/apache2.confCentOS: /etc/httpd/conf/httpd.conf
Listen 127.0.0.1:8080NameVirtualHost 127.0.0.1:8080
# В строке ниже указывается адрес почтового ящика администратора сервера,# т. е. Ваш. Имя-пример “mysite.ru” здесь и далее необходимо заменить на имя Вашего сайтаServerAdmin [email protected] /var/www/mysite.ru/ServerName mysite.ruErrorLog logs/mysite.ru-error_logCustomLog logs/mysite.ru-access_log common
Установка модуля RPAF
Т.к. теперь все запросы к Apache приходят не от удалённых клиентов, а от Nginx, то в итоге IP-адрес клиента Apache определяет как локальный (127.0.0.1). Для решения этой проблемы нам нужен модуль RPAF. Он берет тело заголовка X-Forwarded-For, присланного от фронтенда (Nginx) и заменяет значение заголовка REMOTE_ADDR на бекенде (Apache).
CentOS
Установка в CentOS выполняется следующей командой:
yum install mod_rpafDebian/Ubuntu
В Debian или Ubuntu установка и включение модуля RPAF в Apache выполняется следующими командами:
apt-get install libapache2-mod-rpaf a2enmod rpafНастройка модуля RPAF
Файл конфигурации RPAF находится:Debian/Ubuntu: /etc/apache2/mods-enabled/rpaf.confCentOS: /etc/httpd/conf.d/rpaf.conf
Он должен содержать следующие строки:
RPAFenable OnRPAFsethostname OffRPAFproxy_ips 127.0.0.1RPAFheader X-Real-IP
Если у вас установлена ОС CentOS, то в начало этого файла обязательно добавьте строку:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
Завершение настройки (перезапуск сервисов)
На этом настройка связки закончена. Теперь нужно только перезапусть Apache и Nginx. Команды перезапуска сервисов различаются для ОС (из-за различий в названиях пакетов).
Для CentOS выполните команды:
/etc/init.d/httpd restart /etc/init.d/nginx restartДля Debian и Ubuntu команды будут следующие:
/etc/init.d/apache2 restart /etc/init.d/nginx restartТеперь связка работает, Nginx обрабатывает статичные данные, Apache — динамические.
Источник: http://lib.clodo.ru/web-server/webserver-lna.html
www.skleroznik.in.ua
Настройка https-соединения в Apache на CentOS
В данной записи рассмотрим процесс установки безопасного соединения https в Apache. Настройка состоит из 2-х этапов:
1) установка mod_ssl для apache;2) настройка виртуальных хостов.
Установка mod_ssl для Apache
mod_ssl – это дополнительный мод для apache, который осуществляет поддержку SSL. Процесс установки очень простой:
Настройка виртуальных хостов
По умолчанию https работает на 443 порту, поэтому в конфиг apache добавляем:
Также необходимо открыть этот порт в файерволле:
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT |
В сам виртуальный хост необходимо добавить путь к сертификату, делается это так:
SSLCertificateFile /root/cert/site_com_certificate.crt SSLCertificateKeyFile /root/cert/site_com_private.key
SSLCertificateFile /root/cert/site_com_certificate.crt SSLCertificateKeyFile /root/cert/site_com_private.key |
/root/cert – соответственно директория, где лежит сертификат.
Конечный вид конфига будет следующим:
<VirtualHost *:443> SSLEngine on SSLCertificateFile /root/cert/site_com_certificate.crt SSLCertificateKeyFile /root/cert/site_com_private.key ServerName site.com ServerAlias www.site.com #остальные настройки </VirtualHost>
<VirtualHost *:443> SSLEngine on SSLCertificateFile /root/cert/site_com_certificate.crt SSLCertificateKeyFile /root/cert/site_com_private.key ServerName site.com ServerAlias www.site.com
#остальные настройки </VirtualHost> |
После перегружаем Apache, настраиваем, при необходимости, редирект с http на https и радуемся.
Может быть полезно
загрузка комментариевvalerykoretsky.com