RelaxДом

Быстрый поиск

Расширенный поиск

Авторизация

Запомнить? | Забыл пароль?
 
Register
Welcome
 
RelaxДом > Андеграунд > Операционные системы > Gentoo Linux » Настраиваем высокопроизводительный Web Сервер на базе Nginx + php-fpm
Ответ
Опции темы Опции просмотра
 
Непрочитано 06.04.2009, 23:44   #1
BIT Мужской

Аватар для BIT
 
Администратор
Регистрация: 26.11.2007
Сообщений: 998
pm
Smile Настраиваем высокопроизводительный Web Сервер на базе Nginx + php-fpm

Документацию пишу сам, по личному опыту
  1. Работаем только со стабильными продуктами, поэтому убедимся что в файле /etc/make.conf прописаны стабильные ключи.
    Код:
    ACCEPT_KEYWORDS="x86"
  2. Обновим portage
    Код:
    emerge --sync
  3. Дабы использовать максимальную производительность нужно подогнать CFLAGS и CXXFLAGS.
    Для этого курим [Ссылка заблокирована: Зарегистрируйтесь!]
    под свой процессор.
    Мои настрйоки к примеру:
    Код:
    CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer -mmmx -msse3 -mfpmath=sse"
    CXXFLAGS="${CFLAGS}"
  4. Настройки готовы, закидываем USE Флаги для Nginx
    Код:
    echo "www-servers/nginx  fastcgi flv pcre perl status zlib -addition -debug -imap -ssl -sub -webdav" >> /etc/portage/package.use
    Главное не забыть fastcgi.
  5. Собираем
    Код:
    emerge nginx
  6. Если собрался без ошибок, начинаем править конфиг(nano /etc/nginx/nginx.conf):
    Код:
    user nginx nginx;
    
    worker_processes 100;
    # рекомендуют делать по количеству ядер
    # но время отклика реально уменьшяется если запутить побольше воркеров,
    # т.к. у меня памяти много сделал сразу 100
    worker_priority -1;
    # приоретет воркеров, сделал повыше
    # чтобы из за медленных скриптов и корявых мускульных запросов статика отдавалась без лагов
    
    worker_rlimit_nofile 51200;
    
    #пид файл
    pid /var/run/nginx.pid;
    
    events {
      worker_connections  6096;
      use epoll;
    }
    
    http {
        #подцепляем mime типы
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
    
        #Директива разрешает или запрещает выдавать версию nginx'а в сообщениях об ошибках и в строке заголовка ответа "Server".
        server_tokens off;
        
        log_format main  '($gzip_ratio)$bytes_sent|$remote_user [$time_local] '
                         '"$request" $status ';
    
        log_format download  '$remote_addr - $remote_user [$time_local] '
                             '"$request" $status $bytes_sent '
                             '"$http_referer" "$http_user_agent" '
                             '"$http_range" "$sent_http_content_range"';
    
        # tcp options
        client_max_body_size 100m;
        server_names_hash_bucket_size 512;
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
    
        # fastcgi options
        fastcgi_intercept_errors       on;
    
        # Включаем GZIP на полную 
        gzip            on;
        gzip_comp_level 9;
        gzip_buffers    32 64k;
        gzip_proxied    expired no-cache no-store private auth;
        gzip_types      text/plain
                        text/html
                        text/css
                        application/x-javascript
                        text/xml
                        application/xml
                        application/xml+rss
                        application/octet-stream
                        application/pdf
                        application/x-msdos-program
                        application/x-shockwave-flash
                        text/javascript;
    
    # кешируем открытые файлы
    open_file_cache             max=100000 inactive=40s;
    open_file_cache_valid       60s;
    open_file_cache_min_uses    2;
    open_file_cache_errors      on;
    
    # Теперь собственно начинается обработка хостов
        #   default
        include /etc/nginx/hosts/default.nginx;
    
    }
    Теперь нужно создать директорию для наших хостов
    Код:
    mkdir /etc/nginx/hosts
  7. Понеслась конфиг /etc/nginx/hosts/default.nginx
    Код:
        # Default virtual server
        server {
            # слушаем 80 порт
            listen  80;
            # название хоста
            server_name     default;
            # ежу понятно, что за 2 пункта снизу
            access_log  /var/log/nginx/default.access.log  main;
            error_log /var/log/nginx/default.info.error.log error;
    
            # Обрабатываем PHP через fastcgi сокет
            location ~ \.php$ {
                fastcgi_pass   unix:/var/run/php/php.default.sock;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $fastcgi_script_name;
                include        /etc/nginx/fastcgi_params;
            }
            # запрещаем  смотреть .ht* файлы
            location ~ /\.ht {
                deny  all;
            }
            # впринципе сама дислакация скриптов
            location / {
                root        /opt/www/default;
                index       index.php index.html index.htm;
            }
    
    
        }
  8. Отлично - Nginx готов к работе, вопрос за малым... PHP ))
    Тут все сложнее, не будем же мы извращаться и компилить руками php...
    Будем ставить PHP из своего ebuild`а, а чтобы не портить портажи - создаем Overlay.
    Для этого в файле /etc/make.conf дописываем строчку
    Код:
    PORTDIR_OVERLAY="/home/gentoo/portage"
    Соответственно создаем путь к нашему файлу
    Код:
    /home/gentoo/portage/www-servers/nginx/
    Адресс должен быть обязательно такой.
  9. Кладем из аттача Файл в созданную нами директорию и распаковываем.
    Overlay готов.
    не забываем указать USE="fpm"
    А также, чтобы не было проблем в дальнейшем с обновлением маскируем php
    Код:
    echo ">dev-lang/php-5.2.8-r1" >> /etc/portage/package.mask
    Добавляем что нужно для сборки и понеслась
    Код:
    emerge php
С утра допишу, чото интузиазм пропал, но ничего с голым Nginx`ом тоже можно много всего сделать )
Вообще буду выкладывать свои заметки и наработки... мб кому поможет
Вложения
Тип файла: zip nginx-0.7.38.ebuild.zip (2.7 Кб, 0 просмотров)
__________________

В памяти моей ты останешься молодой и любимой...

Последний раз редактировалось BIT; 07.04.2009 в 00:00.
BIT вне форума   Ответить с цитированием
Этот пользователь сказал Спасибо BIT за это полезное сообщение:
Непрочитано 07.04.2009, 00:35   #2
Seefon Мужской

Аватар для Seefon
 
IT
Регистрация: 03.12.2007
Адрес: Reynholm Industries
Сообщений: 633
pm
По умолчанию Re: Настраиваем высокопроизводительный Web Сервер на базе Nginx + php-fpm

Не люблю я nginx, fastcgi и тому подобное, только фронтдентом к апачу, самый самолет
Так извращаться можно когда у тебя за место сервера какая-нибудь дравалетка стоит с 64 Мб ОЗУ, не так ли?

зыж. С Генту Красноглазым можно стать
__________________
http://forum.relaxdom.net/signaturepics/sigpic10272_24.gif

Последний раз редактировалось Seefon; 07.04.2009 в 00:37.
Seefon вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 00:40   #3
BIT Мужской

Аватар для BIT
 
Администратор
Регистрация: 26.11.2007
Сообщений: 998
pm
По умолчанию Re: Настраиваем высокопроизводительный Web Сервер на базе Nginx + php-fpm

Зачем нужен Apache ?
Если без него все просто летает. У меня 8гб ОЗУ.
Глаза давно красные.
__________________

В памяти моей ты останешься молодой и любимой...
BIT вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 00:45   #4
Seefon Мужской

Аватар для Seefon
 
IT
Регистрация: 03.12.2007
Адрес: Reynholm Industries
Сообщений: 633
pm
По умолчанию Re: Настраиваем высокопроизводительный Web Сервер на базе Nginx + php-fpm

Под nginx нельзя использовать .htaccess (т.е. для большинства приложений нужно переписывать весь .htaccess в nginx) имеем кучу глюков с разными приложениями, которые работают через fast-cgi совсем не так, как под апачом.

Вообще если очень сильно хочется - ничего не мешает поставить nginx для отдачи статики, а динамику проксировать на апач.
__________________
http://forum.relaxdom.net/signaturepics/sigpic10272_24.gif

Последний раз редактировалось Seefon; 07.04.2009 в 00:47.
Seefon вне форума   Ответить с цитированием
Непрочитано 07.04.2009, 01:29   #5
BIT Мужской

Аватар для BIT
 
Администратор
Регистрация: 26.11.2007
Сообщений: 998
pm
По умолчанию Re: Настраиваем высокопроизводительный Web Сервер на базе Nginx + php-fpm

Прямые руки и желание делают свое дело.
Уже ни за что не поставлю апач.

Если интересно могу выложить сравнения производительности.
__________________

В памяти моей ты останешься молодой и любимой...
BIT вне форума   Ответить с цитированием
Непрочитано 25.09.2009, 10:53   #6
FreeSky Мужской

Аватар для FreeSky
 
Осваиваюсь
Регистрация: 11.06.2008
Адрес: /dev/sda2
Сообщений: 143
pm
По умолчанию Re: Настраиваем высокопроизводительный Web Сервер на базе Nginx + php-fpm

давай, интересно поглядеть
Когда кстати допишешь статью?
__________________
Я сделан из такого вещества,
Из двух неразрешимых столкновений,
Из ярких красок полных торжества,
Из черных подозрительных сомнений...

Последний раз редактировалось FreeSky; 26.11.2009 в 08:17.
FreeSky вне форума   Ответить с цитированием
 
Ответ

Метки
fastcgi, nginx, php


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход