1. Чтобы не получить бан прочти правила магентоман! Читать обязательно!

Apache или Nginx

Тема в разделе "Magento 2", создана пользователем Andrij Januckin, 19 июн 2016.

XEvil 4.0 Релиз Состоялся!
Модераторы: Violent
  1. Andrij Januckin

    Andrij Januckin Создатель

    Регистр.:
    18 май 2016
    Сообщения:
    22
    Симпатии:
    14
    которая будет быстрее работать с Magento 2 ? Apache или Nginx ?
    выполнить кто-то тест ?
     
    Sylon нравится это.
  2. WRed

    WRed Вредный

    Регистр.:
    9 янв 2013
    Сообщения:
    182
    Симпатии:
    218
    php7 ) а разница при нормальном железе не существенна ) Ну да php-fpm+nginx - быстрее, точнее меньше грузит
     
  3. Andrij Januckin

    Andrij Januckin Создатель

    Регистр.:
    18 май 2016
    Сообщения:
    22
    Симпатии:
    14
    или параметры VPS: 2x3 Ghz + 4gb +ssd Это будет хорошо для Magento 2 ?
     
  4. Black#FFFFFF

    Black#FFFFFF

    Регистр.:
    19 июл 2007
    Сообщения:
    222
    Симпатии:
    151
    не факт. без нагрузки апач может работать быстрее, а под нагрузкой с точностью до наоборот.

    По поводу вопроса от ТС: Вам .htaccess принципиален? И какие именно модули апача важны/не важны? Что по поводу таймаута? Есть ли загрузка больших файлов длительная, например, и критичны ли длительные таймауты? (в этом случае только Apache, только hardcore, или же спец модули под Nginx). Это только на первый взгляд вопросы.

    По поводу PHP: если все нормально, то однозначно 7-рка. Он гораздо быстрее. Но тут встает вопрос совместимости текущей версии Вашей CMS, ее работы с драйверами баз данных или другими нововведениями и изменениями 7-рки.

    В общем Вам явно нужна консультация системного администратора + вэб программиста и четко определенная задача (что за проект, с чем будет работать, какая посещаемость планируется за какое время). После этого сможете планировать бюджет и сервер.

    А на этапе проектирования и разработки, плюс первичной раскрутки можете начать даже с хостинга под Magento. Главное, определитесь, откуда и какая аудитория планируется для сайта (из каких стран). И на этапе проектирования Вы узнаете: сколько 1 страница Вашего проекта занимает памяти, какая нагрузка на базу данных, сколько процессорного времени занимает и т.п. и т.д. Отсюда и придете постепенно к требованиям к северу и вэб окружению.
     
    Sylon нравится это.
  5. Andrij Januckin

    Andrij Januckin Создатель

    Регистр.:
    18 май 2016
    Сообщения:
    22
    Симпатии:
    14
    magento 2 - system requirements:
    Web servers

    Apache 2.2 or 2.4

    In addition, the apache mod_rewrite module must be enabled. mod_rewrite enables the server to perform URL rewriting. For more information, see our Apache documentation.

    nginx 1.8 (or latest mainline version)
     
  6. Sylon

    Sylon

    Регистр.:
    1 мар 2015
    Сообщения:
    324
    Симпатии:
    127
    Вопрос конечно насущный и интересный! Пробовал установить на обоих серверах для сравнения, при отсутствии посещаемости разницы никакой по времени загрузки страницы. Если кто-нибудь скажет как можно протестировать, сделаю и отпишусь. По логике лучше nginx из-за меньшего потребления ресурсов. На форуме сказали, что nginx можно настроить более широко, чем apache. .htaccess в nginx восполняется другим методом настройки. Присоединяюсь к вопросу. Мне кажется, чтобы не лить воду, можно сформировать варианта три оптимальных, для чего и что лучше. А вообще общей массе думаю нужен будет магазин со стандартными требованиями, где подразумевается, что посещаемость будет расти.
     
  7. Данида

    Данида

    Регистр.:
    30 июл 2012
    Сообщения:
    232
    Симпатии:
    155
    можно просто через siege
     
    Sylon нравится это.
  8. Sylon

    Sylon

    Регистр.:
    1 мар 2015
    Сообщения:
    324
    Симпатии:
    127
    [​IMG]
    Благодарю за Siege.
    Системы настроил стандартно. Как видно по тесту, то Apache не выдерживает той же нагрузки. Пробовал дополнительно на Apache 50 и 100 одновременных посетителей, эту нагрузку он выдержал, но время ответа большое. На 142 человека тест сума сходил и выдавал много таймаутов у Apache. Nginx на 100% справился со 142-мя одновременными посетителями, далее уже были задержки.
     
    Последнее редактирование: 8 июл 2016
    donvictorio нравится это.
  9. hrm143

    hrm143 Писатель

    Регистр.:
    13 фев 2014
    Сообщения:
    2
    Симпатии:
    1
    дайте мне Nginx конфигурации для Nginx php7.0 - FPM ?
     
    Kingr нравится это.
  10. donvictorio

    donvictorio

    Регистр.:
    28 янв 2010
    Сообщения:
    877
    Симпатии:
    808
    так в корне архива файл конфигурации nginx валяется, а php-fpm 7 не особо отличается в настройке от 5й ветки.
    Код:
    ## Example configuration:
    # upstream fastcgi_backend {
    #    # use tcp connection
    #    # server  127.0.0.1:9000;
    #    # or socket
    #    server   unix:/var/run/php5-fpm.sock;
    # }
    # server {
    #    listen 80;
    #    server_name mage.dev;
    #    set $MAGE_ROOT /var/www/magento2;
    #    include /vagrant/magento2/nginx.conf.sample;
    # }
    #
    ## Optional override of deployment mode. We recommend you use the
    ## command 'bin/magento deploy:mode:set' to switch modes instead.
    ##
    ## set $MAGE_MODE default; # or production or developer
    ##
    ## If you set MAGE_MODE in server config, you must pass the variable into the
    ## PHP entry point blocks, which are indicated below. You can pass
    ## it in using:
    ##
    ## fastcgi_param  MAGE_MODE $MAGE_MODE;
    ##
    ## In production mode, you should uncomment the 'expires' directive in the /static/ location block
    
    root $MAGE_ROOT/pub;
    
    index index.php;
    autoindex off;
    charset UTF-8;
    error_page 404 403 = /errors/404.php;
    #add_header "X-UA-Compatible" "IE=Edge";
    
    # PHP entry point for setup application
    location ~* ^/setup($|/) {
        root $MAGE_ROOT;
        location ~ ^/setup/index.php {
            fastcgi_pass   fastcgi_backend;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    
        location ~ ^/setup/(?!pub/). {
            deny all;
        }
    
        location ~ ^/setup/pub/ {
            add_header X-Frame-Options "SAMEORIGIN";
        }
    }
    
    # PHP entry point for update application
    location ~* ^/update($|/) {
        root $MAGE_ROOT;
    
        location ~ ^/update/index.php {
            fastcgi_split_path_info ^(/update/index.php)(/.+)$;
            fastcgi_pass   fastcgi_backend;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO        $fastcgi_path_info;
            include        fastcgi_params;
        }
    
        # Deny everything but index.php
        location ~ ^/update/(?!pub/). {
            deny all;
        }
    
        location ~ ^/update/pub/ {
            add_header X-Frame-Options "SAMEORIGIN";
        }
    }
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    location /pub/ {
        location ~ ^/pub/media/(downloadable|customer|import|theme_customization/.*\.xml) {
            deny all;
        }
        alias $MAGE_ROOT/pub/;
        add_header X-Frame-Options "SAMEORIGIN";
    }
    
    location /static/ {
        # Uncomment the following line in production mode
        # expires max;
    
        # Remove signature of the static files that is used to overcome the browser cache
        location ~ ^/static/version {
            rewrite ^/static/(version\d*/)?(.*)$ /static/$2 last;
        }
    
        location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
            add_header Cache-Control "public";
            add_header X-Frame-Options "SAMEORIGIN";
            expires +1y;
    
            if (!-f $request_filename) {
                rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
            }
        }
        location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
            add_header Cache-Control "no-store";
            add_header X-Frame-Options "SAMEORIGIN";
            expires    off;
    
            if (!-f $request_filename) {
               rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
            }
        }
        if (!-f $request_filename) {
            rewrite ^/static/(version\d*/)?(.*)$ /static.php?resource=$2 last;
        }
        add_header X-Frame-Options "SAMEORIGIN";
    }
    
    location /media/ {
        try_files $uri $uri/ /get.php?$args;
    
        location ~ ^/media/theme_customization/.*\.xml {
            deny all;
        }
    
        location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
            add_header Cache-Control "public";
            add_header X-Frame-Options "SAMEORIGIN";
            expires +1y;
            try_files $uri $uri/ /get.php?$args;
        }
        location ~* \.(zip|gz|gzip|bz2|csv|xml)$ {
            add_header Cache-Control "no-store";
            add_header X-Frame-Options "SAMEORIGIN";
            expires    off;
            try_files $uri $uri/ /get.php?$args;
        }
        add_header X-Frame-Options "SAMEORIGIN";
    }
    
    location /media/customer/ {
        deny all;
    }
    
    location /media/downloadable/ {
        deny all;
    }
    
    location /media/import/ {
        deny all;
    }
    
    # PHP entry point for main application
    location ~ (index|get|static|report|404|503)\.php$ {
        try_files $uri =404;
        fastcgi_pass   fastcgi_backend;
        fastcgi_buffers 1024 4k;
    
        fastcgi_param  PHP_FLAG  "session.auto_start=off \n suhosin.session.cryptua=off";
        fastcgi_param  PHP_VALUE "memory_limit=768M \n max_execution_time=600";
        fastcgi_read_timeout 600s;
        fastcgi_connect_timeout 600s;
    
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    
    gzip on;
    gzip_disable "msie6";
    
    gzip_comp_level 6;
    gzip_min_length 1100;
    gzip_buffers 16 8k;
    gzip_proxied any;
    gzip_types
        text/plain
        text/css
        text/js
        text/xml
        text/javascript
        application/javascript
        application/x-javascript
        application/json
        application/xml
        application/xml+rss
        image/svg+xml;
    gzip_vary on;
    
    # Banned locations (only reached if the earlier PHP entry point regexes don't match)
    location ~* (\.php$|\.htaccess$|\.git) {
        deny all;
    }
     
    Sylon нравится это.