Установка nginx на ubuntu server с битрикс сайтом

/ Просмотров: 3721

nginx [engine x] — это HTTP-сервер и обратный прокси-сервер, а также почтовый прокси-сервер, написанный Игорем Сысоевым. Уже длительное время он обслуживает серверы многих высоконагруженных российских сайтов, таких как:  Яндекс, Mail.Ru, ВКонтакте и Рамблер. Согласно статистике, Netcraft nginx обслуживал или проксировал 13.54% самых нагруженных сайтов в мае 2013 года.

Говоря по-простому, nginx это веб сервер, который менее требователен к ресурсам машины. Имеет смысл использовать на слабых серверах либо на высоконагруженных проектах. Наиболее оптимальный вариант конфигурации, по моему мнению, это работа nginx в связке с apache. В таком варианте nginx выступает прослойкой между пользователем и apache, отдавая всю статику и обработанные apache запросы. Таким образом ускоряется ответ на запрос и освобождаются ресурсы занятые apache, так как ему нужно будет обрабатывать только запросы nginx-а.

 

 

УСТАНОВКА NGINX НА РАБОТАЮЩИЙ СЕРВЕР С APACHE.

Итак имеем работающий WEB-сервер: собранный вот по этим инсрукциям:

Нам необходимо ко всему этому добру прикрутить nginx, таким образом чтобы он отдавал всю статику и делал запросы к apache для получения динамики.

Во первых устанавливаем nginx командой:

sudo aptitude install nginx

Далее редактируем все файлы виртуальных хостов созданных в apache, собственно меняем прослушиваемый порт с 80 на 81. Пример одного из файлов:

<VirtualHost *:81> 
ServerName адрес_сайта 
ServerAdmin ящик_админа 
DocumentRoot /путь_к_файлам_сайта 
<Directory/путь_к_файлам_сайта> 
Options FollowSymLinks 
AllowOverride None 
</Directory> 
<Directory /var/mysitesdocs/polimer_m> 
Options Indexes FollowSymLinks MultiViews 
AllowOverride All 
Order allow,deny 
allow from all 
</Directory> 
ErrorLog /var/log/apache2/error.log 
LogLevel debug 
CustomLog /var/log/apache2/access.log combined 
</VirtualHost>

Далее редактируем файл nano /etc/apache2/ports.conf

NameVirtualHost *:81 
Listen 81

Устанавливаем apache2-mod-rpaf командой

aptitude install libapache2-mod-rpaf

Открываем файл конфигурации nginx и настраивам под себя (рекомендации и подсказки внутри):nano /etc/nginx/nginx.conf

user www-data; 
worker_processes 2; 
#выставляем по колличеству ядер процессора 
timer_resolution 100ms; 
error_log /var/log/nginx/error.log; 
pid /var/run/nginx.pid; 

events { 
worker_connections 1024; 
} 

http { 
include /etc/nginx/mime.types; 
default_type application/octet-stream; 
server_names_hash_bucket_size 64; 
access_log /var/log/nginx/access.log; 

sendfile on; 
#tcp_nopush on; 

#keepalive_timeout 0; 
keepalive_timeout 65; 
tcp_nodelay on; 

gzip on; 
gzip_proxied any; 
gzip_min_length 1100; 
gzip_http_version 1.0; 
gzip_buffers 4 8k; 
gzip_comp_level 5; 
#рекомендую оставить 5, больше бестолково, меньше не эффективно 
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript; 

include /etc/nginx/conf.d/*.conf; 
include /etc/nginx/sites-enabled/*; 
} 

Создаем виртуальный хост в nginx nano /etc/nginx/sites-enabled/домен_сайта

server { 
listen 80; 
server_name домен_сайта; 
access_log /var/log/nginx.access_log; 
location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /путь_к_сайту/; 
index index.html index.php; 
access_log off; 
expires 30d; 
} 
location ~ /\.ht { 
deny all; 
} 
location / { 
proxy_pass http://127.0.0.1:81/; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-for $remote_addr; 
proxy_set_header Host $host; 
proxy_connect_timeout 60; 
proxy_send_timeout 90; 
proxy_read_timeout 90; 
proxy_redirect off; 
proxy_set_header Connection close; 
proxy_pass_header Content-Type; 
proxy_pass_header Content-Disposition; 
proxy_pass_header Content-Length; 
} 

Перезапускаем nginx /etc/init.d/nginx restart 
и апач sudo /etc/init.d/apache2 reload

ИЗМЕНЕНИЕ ПРАВ НА ПАПКИ И ФАЙЛЫ САЙТА(ОВ)

Для безопасности имеет смысл выставить права на файлы всех сайтов равными 644, а на папки 755. При этом владельцем должен стать пользователь от имени которого работает apache, а именно www-data. Предположим что вы положили все сайты в папку /var/www - тогда необходимо выполнить следующие команды

find /var/www -type f -exec chmod 644 {} \; 

find /var/www -type d -exec chmod 755 {} \;

chown -R www-data:www-data /var/www

Оставьте комментарий!

Комментарий будет опубликован после проверки

Имя и сайт используются только при регистрации

(обязательно)