[Помогите] Настройка WP + Woo + TC на Nginx & Apache

Тема в разделе "Wordpress", создана пользователем Lizart, 29 июл 2015.

Статус темы:
Закрыта.
Модераторы: DzSoft, Sorcus
  1. Lizart

    Lizart Создатель

    Регистр.:
    13 ноя 2012
    Сообщения:
    14
    Симпатии:
    5
    Доброго времени суток жители форума.
    Только начинаю разбираться с настройками сервера, опыта почти нет. Столкнулась с такой проблемой:
    Есть магазин на WooCommerce + плагин кеширования Total cache.
    По инструкции включила Nginx (Apache тоже работает для .htaccess), скопировав рекомендуемые настройки TC.
    Код:
    location / {
            location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|tgz|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|html|flv|ico)$ {
                try_files $uri $uri/ @fallback;
                            expires 7d;
            }
        location / {
                try_files /does_not_exists @fallback;
            }
            location ~ [^/]\.ph(p\d*|tml)$ {
                try_files /does_not_exists @fallback;
            }
        }
        location @fallback {
            error_log /dev/null crit;
            access_log off ;
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect http://127.0.0.1:8080 /;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
        ssi on;
       
    # BEGIN W3TC Page Cache cache
    location ~ /wp-content/cache/page_enhanced.*html$ {
        add_header Vary Cookie;
            location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|tgz|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|html|flv|ico)$ {
                try_files $uri $uri/ @fallback;
                expires 7d;
            }
            location ~ /wp-content/cache/page_enhanced.*html$ {
                try_files /does_not_exists @fallback;
            }
            location ~ [^/]\.ph(p\d*|tml)$ {
                try_files /does_not_exists @fallback;
            }
           
    }
    
    # END W3TC Page Cache cache
    # BEGIN W3TC Page Cache core
    set $w3tc_rewrite 1;
    if ($request_method = POST) {
        set $w3tc_rewrite 0;
    }
    if ($query_string != "") {
        set $w3tc_rewrite 0;
    }
    if ($request_uri !~ \/$) {
        set $w3tc_rewrite 0;
    }
    if ($http_cookie ~* "(comment_author|wp\-postpass|w3tc_logged_out|wordpress_logged_in)") {
        set $w3tc_rewrite 0;
    }
    if ($http_cookie ~* "(w3tc_preview)") {
        set $w3tc_rewrite _preview;
    }
    set $w3tc_ref "";
    if ($http_cookie ~* "w3tc_referrer=.*(ask\.com|bing\.com|google\.com|msn\.com|yahoo\.com)") {
        set $w3tc_ref _search_engines;
    }
    set $w3tc_ssl "";
    if ($scheme = https) {
        set $w3tc_ssl _ssl;
    }
    set $w3tc_ext "";
    if (-f "$document_root/wp-content/cache/page_enhanced/$http_host/$request_uri/_index$w3tc_ref$w3tc_ssl$w3tc_rewrite.html") {
        set $w3tc_ext .html;
    }
    if (-f "$document_root/wp-content/cache/page_enhanced/$http_host/$request_uri/_index$w3tc_ref$w3tc_ssl$w3tc_rewrite.xml") {
        set $w3tc_ext .xml;
    }
    if ($w3tc_ext = "") {
      set $w3tc_rewrite 0;
    }
    if ($w3tc_rewrite = 1) {
        rewrite .* "/wp-content/cache/page_enhanced/$http_host/$request_uri/_index$w3tc_ref$w3tc_ssl$w3tc_rewrite$w3tc_ext" last;
    }
    # END W3TC Page Cache core
    Сайт вроде работает, но есть проблемы:
    1) не знаю как исключить из кеша страницы woo
    Cart
    My Account
    Change Passwoed
    Edit Address
    View Order
    Checkout
    Pay
    Order Received

    2) Как я поняла есть 2 файла конфигурации Nginx, в общем - включен gzip, нужно ли его включать во втором файле nginx.conf?
     
  2. bardak

    bardak Постоялец

    Регистр.:
    30 июл 2012
    Сообщения:
    137
    Симпатии:
    211
    А таким образом у вас не работает?[​IMG]
     
    Lizart нравится это.
  3. Lizart

    Lizart Создатель

    Регистр.:
    13 ноя 2012
    Сообщения:
    14
    Симпатии:
    5
    Этот пункт ускользнул от меня, неужели все так просто :oops:. Попробую так, протестирую, большое спасибо.
    По второму вопросу сможете подсказать, как правильно настроить Nginx с WP? Перечитала кучу статей на Хабре, но есть сомнения :nezn:
     
    bardak нравится это.
  4. bardak

    bardak Постоялец

    Регистр.:
    30 июл 2012
    Сообщения:
    137
    Симпатии:
    211
     
  5. Lizart

    Lizart Создатель

    Регистр.:
    13 ноя 2012
    Сообщения:
    14
    Симпатии:
    5
    Потестила, такая канитель:
    в общем конфигурационном файле Nginx, на сколько я понимаю, прописано кеширование.
    Код:
    user apache;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /run/nginx.pid;
    
    events {
            worker_connections 1024;
            multi_accept on;
    }
    
    http {
            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;
    
    #Basic Settings
            sendfile            on;
            tcp_nopush          on;
            tcp_nodelay         on;
            keepalive_timeout   120;
            keepalive_requests 1000;
            reset_timedout_connection on;
            types_hash_max_size 2048;
            server_tokens off;
    
            include             /etc/nginx/mime.types;
            default_type        application/octet-stream;
    
            # Load modular configuration files from the /etc/nginx/conf.d directory.
            # See http://nginx.org/en/docs/ngx_core_module.html#include
            # for more information.
            include /etc/nginx/conf.d/*.conf;
       
    # Gzip configuration
            gzip on;
            gzip_static on;
            gzip_min_length 900;
            gzip_proxied any;
            gzip_types text/plain text/xml application/xml application/x-javascript text/javascript text/css text/json application/xhtml+xml application/javascript application/x-font-woff application/x-font-ttf image/jpg image/jpeg image/svg+xml;
            gzip_disable "msie6";
            gzip_comp_level 9;
            gzip_vary on;
            gzip_buffers 16 8k;
           
        server {
            listen       80 default_server;
            listen       [::]:80 default_server;
            server_name  _;
            root         /usr/share/nginx/html;
    
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
    
            location / {
            }
    
            error_page 404 /404.html;
                location = /40x.html {
            }
    
            error_page 500 502 503 504 /50x.html;
                location = /50x.html {
            }
    }
       
        server {
            server_name localhost;
            disable_symlinks if_not_owner;
            listen 80;
            include /etc/nginx/vhosts-includes/*.conf;
            location @fallback {
            error_log /dev/null crit;
            proxy_send_timeout 60; # время ожидания при передаче запроса
            proxy_read_timeout 60; # время ожидания при чтении ответа
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect http://127.0.0.1:8080 /;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            access_log off ;
           
    
        }
        }
        include /etc/nginx/vhosts/*/*;
    }
    а в том, что относится к домену код, который указан в первом посте.
    Сейчас неправильно кешируется корзина woocomerce (в верхнем меню), не знаю как добавить в исключения ее, это же не страница.

    Вторая проблема в том, что при включенном плагине TC сайт работает медленнее, чем без него, но google-speed показывает, что с плагином лучше, чем без него.

    Помогите разобраться с ситуацией
     
  6. bardak

    bardak Постоялец

    Регистр.:
    30 июл 2012
    Сообщения:
    137
    Симпатии:
    211
    Я кстати такую же тему у себя замечал) возможно это у вас из-за того что просто под админом на сайт заходите, и это вас путает, попробуйте без админа зайти, возможно в этом дело.
     
  7. Lizart

    Lizart Создатель

    Регистр.:
    13 ноя 2012
    Сообщения:
    14
    Симпатии:
    5
    На это жаловались незарегистрированные пользователи, в магазине разрешена покупка без регистрации.

    PS. Нашла вот Перейти по ссылке, пробую
     
  8. WiZXaK

    WiZXaK Причиняю добро

    Регистр.:
    8 сен 2012
    Сообщения:
    580
    Симпатии:
    805
    1) Отключите TC.
    2) Замените это:
    Код:
        location / {
            location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
                try_files $uri $uri/ @fallback;
            }
            location / {
                try_files /does_not_exists @fallback;
            }
            location ~ [^/]\.ph(p\d*|tml)$ {
                try_files /does_not_exists @fallback;
            }
        }
    на это
    Код:
        
    location / {
            location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
                try_files $uri $uri/ @fallback;
                expires 7d;
                if ($request_uri ~* ("/wp-admin.*|/cart.*|/checkout.*|/account.*|/myaccount.*|/addond.*|/store.*|/shop.*|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-ocations.php|sitemap(_index)?.xml|a-z0-9_-]+-sitemap([0-9]+)?.xml)") { set $no_cache 1; set $skip_cache 1; }
            }
            location / {
                try_files /does_not_exists @fallback;
            }
            location ~ [^/]\.ph(p\d*|tml)$ {
                try_files /does_not_exists @fallback;
            }
        }
    
    Обегите три раза во круг компа и рестарните Nginx:pop:
     
    Последнее редактирование: 1 авг 2015
    Lizart нравится это.
Статус темы:
Закрыта.