- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Настроил, чтобы Nginx отдавал сайт из своего кеша.Нужно, чтобы браузер кешировал картинки.
Сейчас так:
Http
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
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;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
gzip on;
gzip_static on;
gzip_comp_level 5;
gzip_min_length 1024;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
keepalive_timeout 0;
limit_conn_zone $binary_remote_addr zone=addr:10m;
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=cache:30m max_size=100m;
proxy_temp_path /var/lib/nginx/tmp/proxy 1 2;
proxy_cache_use_stale error timeout invalid_header http_502;
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
include /etc/nginx/conf.d/*.conf;
client_max_body_size 16m;
log_format isp '$bytes_sent $request_length';
Server
server {listen xxx.xxx.xxx.xxx:80;
server_name site.ru www.site.ru;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
error_page 404 = @fallback;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass http://xxx.xxx.xxx.xxx:8080;
proxy_redirect http://site.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass http://xxx.xxx.xxx.xxx:8080;
proxy_redirect http://site.ru:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
proxy_cache cache;
proxy_cache_valid 10m;
proxy_cache_valid 404 1m;
location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
access_log /var/www/httpd-logs/site.ru.access.log ;
access_log /var/www/nginx-logs/user isp;
set $proot "/var/www/user/data/www/site.ru";
if ( $host = "site.ru" ) {
break;
}
if ( $host = "www.site.ru" ) {
break;
}
if ( $host ~* ^(.*).site.ru$ ) {
set $proot /var/www/user/data/www/site.ru/$1;
break;
}
root $proot;
}
location @fallback {
proxy_pass http://xxx.xxx.xxx.xxx:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
Куда добавить expires, чтобы картинки открывались из кеша браузера?
Куда добавить expires, чтобы картинки открывались из кеша браузера?
В location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$
Сейчас так:
Это динамическая PHP страница, статика (с Last-Modified: ) должна и так кешироваться.
Это динамическая PHP страница, статика (с Last-Modified: ) должна и так кешироваться.
*Может*. Но не должна и не обязана. Expires на самом деле здорово браузеру/прокси помогают при принятии решения о кешировании.
В location ~* ^.+\.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$
Пробывал не работает.
Пробывал в отдельной location
location ~* \.(bmp|gif|jpg|jpeg|ico|png)$ {root /var/www/user/data/www/site.ru;
access_log off;
expires 6m;
}
Не работает.
Пробывал в отдельной location
location ~* \.(bmp|gif|jpg|jpeg|ico|png)$ {root /var/www/user/data/www/site.ru;
access_log off;
expires 6m;
}
Не работает.
Шутник-затейник :) Вы еще в секундах установите expires ;)
Поймите, что браузер *не обязан* кешировать контент. Тем более на такой миниатюрный срок аж в 6 минут.
Поймите, что браузер *не обязан* кешировать контент.
Вы спросите у гугля, а потом у тех, куда зайдете, почему у них должен кешировать, а у вас не должен.
Вы спросите у гугля, а потом у тех, куда зайдете, почему у них должен кешировать, а у вас не должен.
Ниасилил :(
Попробуйте поставить большее значение expires. Часы, а не минуты - как минимум. Что непонятного-то?
Пробывал, перед минутами и дни, и года.
Автор писал, у него nginx из кеша в браузер страницы отдает, как видите expires работает, правда не так, как надо, а именно 1981 год.)
Еще интересует как добавить: Keep-Alive?
Автор сайта не доступен, поэтому спросить не могу.
Пробывал, перед минутами и дни, и года.
Еще интересует как добавить: Keep-Alive?
Автор сайта не доступен, поэтому спросить не могу.
http://nginx.org/ru/docs/http/ngx_http_core_module.html
Вся документация на русском. Неужели сложно прочитать? :)
Пробывал, перед минутами и дни, и года.
Пардонте. Во-первых, это не картинка, а HTML.
В этом случае вам надо
1) поставить expires в другой location (там, где у вас проксирование)
2) убрать expires, который генерирует этот быдлодвижек (вместе с остальной руганью от него про no-cache в других заголовках). В принципе, можно посмотреть в сторону proxy_hide_header/proxy_set_header - для редактирования/добавления заголовков. Но правильно - решить это на уровне кода движка сайта.
Автор писал, у него nginx из кеша в браузер страницы отдает, как видите expires работает, правда не так, как надо, а именно 1981 год.)
При таком значении expires - браузер просто не будет кешировать. Для этого оно, судя по всему, и выставлено.
Либо вам врут - либо "автор" и сам ни бельмеса не понимает.
Еще интересует как добавить: Keep-Alive?
keepalive_timeout поставьте вменяемый - а лучше просто верните значение по-умолчанию.