• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Настройка WP + Woo + TC на Nginx & Apache

Статус
В этой теме нельзя размещать новые ответы.

Lizart

Создатель
Регистрация
13 Ноя 2012
Сообщения
15
Реакции
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?
 
А таким образом у вас не работает?
MkRJACKA
 
Этот пункт ускользнул от меня, неужели все так просто :oops:. Попробую так, протестирую, большое спасибо.
По второму вопросу сможете подсказать, как правильно настроить Nginx с WP? Перечитала кучу статей на Хабре, но есть сомнения :nezn:
 
Этот пункт ускользнул от меня, неужели все так просто :oops:. Попробую так, протестирую, большое спасибо.
По второму вопросу сможете подсказать, как правильно настроить Nginx с WP? Перечитала кучу статей на Хабре, но есть сомнения :nezn:
Скрытое содержимое для пользователя(ей): Lizart, bardak
 
Потестила, такая канитель:
в общем конфигурационном файле 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 показывает, что с плагином лучше, чем без него.

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

Помогите разобраться с ситуацией
Я кстати такую же тему у себя замечал) возможно это у вас из-за того что просто под админом на сайт заходите, и это вас путает, попробуйте без админа зайти, возможно в этом дело.
 
На это жаловались незарегистрированные пользователи, в магазине разрешена покупка без регистрации.

PS. Нашла вот Для просмотра ссылки Войди или Зарегистрируйся, пробую
 
На это жаловались незарегистрированные пользователи, в магазине разрешена покупка без регистрации.
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:
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху