[ЗАКРЫТО] разобраться с NginX

Народ, вы как-то странно обсуждаете нагрузочную способность NginX в связи с количеством посещений.
На самом деле, на любом динамическом сайте основную нагрузку будет создавать НЕ nginx, а PHP, или на чём там у вас будут написаны скрипты. Вот от них-то и зависит нагрузочная способность!

Задача nginx – всего лишь раздавать статику и передавать запросы бэкэнду, а также, возможно, распределять нагрузку между серверами. Всё это он делает быстро и с небольшим потреблением ресурсов.
nafanja
lavlan, удобной практикой было бы использовать настройку виртуальных хостов отдельно от конфига nginx, даже локалхоста.

lavlan
P.S. с конфигурационными файлами можно эспериментировать.
Установка прошла успешно! 1C Предприниматель версия 7.7 работает! NGINX+PHP-FPM+MYSQL работает! Все устраивает даже уже не интересно... НО Танцуем дальше...
lavlan
ищем
;fastcgi.impersonate = 1
приводим к виду
fastcgi.impersonate = 0

И опять - ну зачем нам документация?
impersonate используется только на IIS сервере.
по умолчанию установлен в "0".

То есть настройка осуществляется до получения матюга приветствия в браузере, методом проб и ошибок,
т.е. как в анекдоте с гранатой :)


По поводу модулей - php всегда читает папку conf.d - она для этого и создана.
Вот туда лучше и выносить файлы ini с модулями, чтобы потом "не потеряться"
Там же можно создать и develop config чтобы потом легко его убрать.
такой вопрос, не помню где, но в сознании остатки памяти говорят что где я такое видел - значит у меня несколько виртуальных хостов, и в секции
location ~ \.php$ {
            root /home/archie/Projects/www/work.ru;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
для каждого хоста, кроме строки root, идет одинаковый код, можно ли вынести этот код в отдельный файл,
и в последствии использовать include для его "включения"

тоже самое, условно, для других одинаковых участков кода, например
location / {
            root /home/archie/Projects/www/work.ru;
            if (!-e $request_filename) {
            rewrite ^(.+)$ /index.php?q=$1 last;
            }
или это фантазии моего воображения

п.с. т.к. вся эта мутотень из области IT как бы должна работать модель ООП я так понимаю везде, зачем писать одинаковый код?
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
palpalych
для каждого хоста, кроме строки root, идет одинаковый код, можно ли вынести этот код в отдельный файл,
даже нужно, и root можно использовать один в секции server, и он будет наследоваться всеми location
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
corner
P.S. Наверное, хорошо, что Россия еще не разрешила гранаты Ф-1 в свободной продаже.
не граната правда, но тоже F1 :)...
Установка прошла успешно! 1C Предприниматель версия 7.7 работает! NGINX+PHP-FPM+MYSQL работает! Все устраивает даже уже не интересно... НО Танцуем дальше...
corner
fastcgi.impersonate = 0
что то я совсем .... следует
;cgi.fix_pathinfo=1
а надо
cgi.fix_pathinfo=0
кажется так....
вверху тоже поправил...
Установка прошла успешно! 1C Предприниматель версия 7.7 работает! NGINX+PHP-FPM+MYSQL работает! Все устраивает даже уже не интересно... НО Танцуем дальше...
palpalych
такой вопрос, не помню где, но в сознании остатки памяти говорят что где я такое видел - значит у меня несколько виртуальных хостов, и в секции

может вот ЗДЕСЬ
Установка прошла успешно! 1C Предприниматель версия 7.7 работает! NGINX+PHP-FPM+MYSQL работает! Все устраивает даже уже не интересно... НО Танцуем дальше...
lavlan
corner
fastcgi.impersonate = 0
что то я совсем .... следует
;cgi.fix_pathinfo=1
а надо
cgi.fix_pathinfo=0
кажется так....
вверху тоже поправил...
вообще-то следует cgi.fix_pathinfo=1
Такое же значение по умолчанию

PHPCGI-NGINX

Some guide insist to change it to cgi.fix_pathinfo = 0 but doing that make PHP_SELF variable broken (not equal to DOCUMENT_URI).

PHP-docs-CGI

cgi.fix_pathinfo boolean
Обеспечивает поддержку правильных PATH_INFO/PATH_TRANSLATED в CGI. Раньше PHP просто устанавливал PATH_TRANSLATED в SCRIPT_FILENAME и не обращал внимания на PATH_INFO. Для получения дополнительной информации о PATH_INFO, обратитесь к спецификации CGI. Установка этого значения в 1 заставит PHP CGI исправлять свой путь в соответствии со спецификацией. Значение 0 соответствует предыдущему поведению. По умолчанию опция включена. Вы должны исправить свои скрипты так, чтобы они использовали SCRIPT_FILENAME вместо PATH_TRANSLATED.
Сысоев правильно сказал, что большинство источников в инете рассказывают как не надо настраивать nginx.
Я, конечно, не претендую на славу Козьмы Пруткова, но замечу еще раз -
читайте документацию.
lavlan
Всё...делалось по вот этому мануалу с небольшими поправками без лирических отступлений и комментариев
видел этот мануал, не понял вот это /etc/mysql/my.cnf
у меня в дефолтном конфиге нет таких параметров:
default-storage-engine
query_cache_size
query_cache_limit
max_connections
thread_cache
skip-innodb
query_cache_min_res_unit
tmp_table_size
max_heap_table_size
table_cache
concurrent_insert
откуда они взялись?

Еще вопрос когда я ставлю в nginx.conf из этого примера
http {
...
 include /etc/nginx/conf.d/*.conf;
 include /etc/nginx/sites-enabled/*;
никс ругается на location, т.к. последний д.б. только внутри server{}, поэтому итоговый конфиг выглядит так (скопипиз..ено отсюда)
/etc/nginx/nginx.conf
#user http;
worker_processes  1;

timer_resolution 100ms;
worker_rlimit_nofile 8192;
worker_priority -5;

error_log  /var/log/nginx/error.log;
#pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    access_log  /var/log/nginx/access.log;

    sendfile        on;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    gzip_min_length     1100;
    #gzip_disable       "msie6";  #Быстрее, но работает только на новых версиях nginx
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    gzip_proxied        any;
    gzip_comp_level     4;
    gzip_types          text/plain text/css text/javascript application/x-javascript text/xml application/xml application/xml+rss
    gzip_vary           on;

    include /etc/nginx/sites-enabled/*;
}
/etc/nginx/sites-available/exp.conf
server {
        server_name exp.ru;
...
        root /home/archie/Projects/www/exp.ru;
        include /etc/nginx/conf.d/*.conf;
}
/etc/nginx/conf.d/php.conf
location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
}
location / {
    if (!-e $request_filename) {
    rewrite ^(.+)$ /index.php?q=$1 last;
    }
}
для phpmyadmin создал /etc/nginx/sites-available/phpmyadmin.conf, но почему то include /etc/nginx/conf.d/*.conf; для phpmyadmin.conf не прокатило, не хочет работать, поэтому
server {
        listen 80;
        server_name localhost;
        root /srv/http;

        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
        }
        location /phpmyadmin {
            rewrite ^/* /phpMyAdmin last;
        }
        location / {
            index index.php;
        }
}
если что не так поправьте друзья.
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
 
Зарегистрироваться или войдите чтобы оставить сообщение.