Установка Apache и Nginx гарантирует снижение нагрузки на сервер. В то время как Nginx обрабатывает запросы пользователей и выдает статичный контент, Apache не расходует ресурсы на эти процессы, а выполняет задачи другого плана. Зачастую Apache и Nginx используют в том случае, когда речь идет о крупных проектах. Разберемся, как установить Apache и Nginx (mod-rpaf) на CentOS 6.
- Установка Apache
Установите httpd, PHP, mysql-server, php-mysq и php-mbstring:
yum -y install httpd mysql mysql-server php php-mysql php-mbstring
Откройте в режиме редактирования файл /etc/httpd/conf/httpd.conf:
nano /etc/httpd/conf/httpd.conf
Выставьте параметры:
Timeout 60
KeepAlive Off
# MaxKeepAliveRequests 100
# KeepAliveTimeout 10
StartServers 2
MinSpareServers 2
MaxSpareServers 4
ServerLimit 6
MaxClients 10
MaxRequestsPerChild 800
Listen 8080
User apache
Group apache
NameVirtualHost *:8080
Создайте файл конфигурации в папке /etc/httpd/conf.d. Вы можете присвоить файлу любое имя, но расширение должно быть .conf. Например:
nano etc/httpd/conf.d/file.conf
Добавьте в него строки, подставив свои значения в полях ServerName, ServerAlias и <Directory "">:
<VirtualHost *:8080>
ServerName vpsLyf1N.s-host.com.ua
ServerAlias www.vpsLyf1N.s-host.com.ua
DocumentRoot /var/www/html
<Directory "/home/directory">
AllowOverride All
Options +Includes
</Directory>
</VirtualHost>
- Установка Nginx
Создайте репозиторий:
nano /etc/yum.repos.d/nginx.repo
Скопируйте в него:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
Установите Nginx и откройте файл конфигурации:
yum install nginx
nano /etc/nginx/nginx.conf
Поменяйте текущие значения на приведенные ниже:
user apache;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# access_log /var/log/nginx/access.log main;
sendfile on;
client_max_body_size 24M;
#tcp_nopush on;
keepalive_timeout 65;
gzip on;
gzip_min_length 1100;
gzip_proxied any;
gzip_disable "msie6";
gzip_comp_level 8;
#gzip_types text/plain text/html text/xml application/xml application/x-javascript text/javascript text/css text/json;
gzip_types text/plain text/xml application/xml application/x-javascript text/javascript text/css text/json;
#gzip_types text/html text/xml text/css application/x-javascript text/javascript;
include /etc/nginx/conf.d/*.conf;
}
Создайте файл конфигурации в папке /etc/nginx/conf.d. Расширение файла должно быть .conf. Например:
nano /etc/nginx/conf.d./file01
Скопируйте в него текст, заменив vpsLyf1N.s-host.com.u и root на свои значения :
# A virtual host vpsLyf1N.s-host.com.ua
server {
# listen vpsLyf1N.s-host.com.ua:80;
listen 80;
server_name vpsLyf1N.s-host.com.ua;
access_log /var/log/nginx/vps_access.log;
location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|doc|docx|pdf|xls|xlsx|rar|zip|tbz|7z|exe)$ {
root /var/www/html/directory/;
expires 10d;
}
location ~ /\.ht {
deny all;
}
location = /stat {
stub_status on;
access_log off;
# allow xx.xx.xx.xx;
# deny all;
}
location / {
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
log_not_found off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
- Установка mod_rpaf
Установите репозиторий mod_rpaf:
rpm -ivh http://download.ispsystem.com/repo/centos/release/6/x86_64/mod_rpaf-0.8.2-1.el6.x86_64.rpm
Откройте в режиме редактирования файл /etc/httpd/conf.d/mod_rpaf.conf:
nano /etc/httpd/conf.d/mod_rpaf.conf
Выставьте параметры:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
# mod_rpaf Configuration
RPAF_Enable On
RPAF_SetHostName On
RPAF_ProxyIPs 127.0.0.1 10.0.0.1
RPAF_Header X-Forwarded-For
Перезапустит nginx и httpd:
service httpd restart && service nginx restart
Создайте файл info.php, если вы не сделали этого раньше. Добавьте в него строку:
nano info.php
<? phpinfo(); ?>
Сохраните изменения. Чтобы проверить, установлен ли Apache+Nginx, перейдите по адресу ваш-домен/info.php и ваш-домен:8080/info.php.