2015-03-02 2 views
0

В настоящее время я запускаю Nginx с php5-fpm, и я хотел бы ввести лак в настройку моего сервера, но я хочу, чтобы лак обслуживал кешированные страницы для роботов Googlebot и Bingbot, а кто-то еще пропускал кеш.Подавать кисть робота Googlebot

Каков наилучший способ для этого? запустить лак в качестве интерфейса или запустить nginx в качестве интерфейса и отправить запрос на лак? Также я бы потребовал фактический код, пожалуйста.

Все комментарии были бы оценены

+1

Я голосую, чтобы закрыть этот вопрос как не по теме, потому что SO здесь не для того, чтобы писать код для вас. – Rob

ответ

1

на основе агента пользователя можно идентифицировать ботов, и пусть кэш ЛАК ответ. см. следующую библиотеку лаков для получения дополнительной информации. https://github.com/varnish/varnish-devicedetect

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

0

Развивая ответ Марселя, вы могли бы просто использовать NGINX обрабатывать кэширование ответов на Боты только (нет необходимости в Varnish):

# Map any user agent not containing the word "bot" 
map $http_user_agent $isNotBot { 
    ~*bot ""; 
    default "IAmNotARobot"; 
} 

# Where to store cached files (adjust to your liking) 
proxy_cache_path /path/to/bot_cache 
    levels=1:2 
    keys_zone=bot_cache:10m 
    max_size=1g 
    inactive=30m 
    use_temp_path=off; 

server { 
    ... 
    location/{ 
    ... 
    # Which cache to use 
    fastcgi_cache bot_cache; 

    # key to use for the cached copies (adjust to your needs) 
    fastcgi_cache_key $host:$server_port:$request_uri; 

    # Bypass the cache for humans 
    fastcgi_cache_bypass $isNotBot; 

    # Don't store/cache copies of requests from humans 
    fastcgi_no_cache  $isNotBot; 

    # Uses stale cached responses for various upstream errors 
    # (ignored for humans) 
    fastcgi_cache_use_stale error timeout updating http_500; 

    # Disable getting gzipped files from back end 
    # (only cache un-gzipped responses) 
    fastcgi_set_header Accept-Encoding ""; 

    # upstream location 
    fastcgi_pass http://upstream; 
    ... 
    } 
    ... 
} 

заменить fastcgi_ с proxy_, scgi_ или uwsgi_ в зависимости от того, какой прокси-модуль вам используются.

Смежные вопросы