Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Ctl+A, Ctrl+C open /etc/nginx/nginx.conf , Ctrl+V, Ctrl+S. Have a nice day!
- # 01.17.2020 Config for Nginx >= 1.12.10 https://nginx.org/ru/download.html
- # Полный мануал настройки http://pastebin.com/v0VKjKXW
- #
- # fast server Cервера здесь берем http://vk.cc/7BSP3h (Топовая техподдержка в комплекте!)
- #
- # Рабочий вариант, кеширование работает ( + кеширование в оперативную память )
- # - 1.4.3 Исправление cookies (/home/admin/tmp), корректная работа с движками bitrix и wordpress
- #
- #
- # Nginx (Измения в версиях http://nginx.org/ru/CHANGES.ru ) port 80 -> Apache port 81
- # # - !Settings! !ВАЖНО! прописать свой ip в местах где #Указать IP сервера \ Web.Server.IP <<<<<-!!!
- # - Динамическое определение доменов(поддоменов) и их директорий, и алиасов. (Настроено под VestaCP, если не угодно - поменяйте)
- # - Максимальная производительность и оптимизация
- # - Защита картинок и файлов отдающихся nginx от хотлинкинга
- # - Защита от сторонних ботов, для снижения нагрузки
- # - SSl убран на apache2 , если надо сами настраивайте )
- #
- #Дополнительно: помещаем кэш nginx в ramdisk (tmpfs)
- #Сейчас у нас кэширование настроено, но кэш хранится на жестком диске, что не является хорошим решение. Оптимальнее будет смонтировать директорию с кэшем nginx в память.
- #Для этого откроем
- #nano/etc/fstab
- #и добавим туда:
- #tmpfs /var/lib/nginx/cache tmpfs nodev,nosuid,size=20M 0 0
- #Если в настройках nginx вы указали больший размер кэша, то параметр size необходимо изменить в соответствии с указанным размером кэша (max_size), плюс небольшой запас.
- #Сразу смонтируем директорию в память:
- #sudo mount -a
- #service nginx restart; service apache2 restart; reboot;
- #Теперь при каждой загрузке системы, директория /var/lib/nginx/cache будет помещаться в память, что должно уменьшить время отдачи страницы.
- #
- # Test VPS !KVM 1x1024RAM 20Gb SSD
- ## ab -r -n 10000 -c 10000 http://site.com/
- #Failed requests: 0
- #Connection Times (ms)
- # min mean[+/-sd] median max
- #Total: 530 644 66.0 646 758
- #################################################
- ########## Server globals ######
- user www-data; #имя пользователя от которого работает nginx так же и апач
- worker_processes auto;
- worker_cpu_affinity auto;
- timer_resolution 100ms; #Уменьшает разрешение таймеров времени в рабочих процессах, за счёт чего уменьшается число системных вызовов
- worker_rlimit_nofile 65192; #Изменяет ограничение на максимальное число открытых файлов (RLIMIT_NOFILE) для рабочих процессов
- worker_priority -5; #Выставляем более высокий приоритет процессу воркера
- error_log /var/log/nginx/error.log;
- pid /var/run/nginx.pid;
- ######### Worker config #######
- events {
- worker_connections 20048; # Максимальное количество подключений на процесс
- use epoll;
- accept_mutex off;
- }
- http {
- map "$request_method" $block { default 0; "~(HEAD|GET)" 1; "~POST" 2;}
- # менеджеры загрузки и некоторые типы ботов (update 15.10.2017)
- map $http_user_agent $agent {default 0; "~AppEngine" 1; "~360Spider" 1; "~8484\ Boston\ Project" 1; "~Accelerator" 1; "~AESOP" 1; "~Ahrefs" 1; "~AhrefsBot" 1; "~Alexibot" 1; "~almaden" 1; "~Anarchie" 1; "~Anonymouse.org" 1; "~Ants" 1; "~ApacheBench" 1; "~Aport" 1; "~AppEngine" 1; "~Applebot" 1; "~Aqua_Products" 1; "~archive" 1; "~Ask\ Jeeves" 1; "~ASPSeek" 1; "~asterias" 1; "~Atomic_Email_Hunter" 1; "~atSpider" 1; "~attach" 1; "~autoemailspider" 1; "~b2w" 1; "~BackDoorBot" 1; "~BackWeb" 1; "~BaiduBot" 1; "~Baiduspider" 1; "~bandit" 1; "~Bandit" 1; "~BatchFTP" 1; "~Bigfoot" 1; "~Birubot" 1; "~Black\ Hole" 1; "~BlackWidow" 1; "~BLEXBot" 1; "~BlowFish" 1; "~Bookmark\ search\ tool" 1; "~BotALot" 1; "~bsalsa" 1; "~Buddy" 1; "~BuiltBotTough" 1; "~BullsEye" 1; "~bumblebee" 1; "~BunnySlippers" 1; "~Butterfly" 1; "~Buzzbot" 1; "~BuzzSumo" 1; "~bwh3_user_agent" 1; "~CamontSpider" 1; "~CCBot" 1; "~Cegbfeieh" 1; "~CheeseBot" 1; "~CherryPicker" 1; "~China" 1; "~ChinaClaw" 1; "~CICC" 1; "~clsHTTP" 1; "~coccoc" 1; "~Collector" 1; "~CommentReader" 1; "~ContactBot" 1; "~ContentSmartz" 1; "~Copernic" 1; "~Copier" 1; "~CopyRightCheck" 1; "~cosmos" 1; "~crazy" 1; "~Crescent" 1; "~сurl" 1; "~Сurl" 1; "~Custo" 1; "~DataCha0s" 1; "~dataminr" 1; "~DBrowse" 1; "~Demo\ Bot" 1; "~DeuSu" 1; "~Digincore" 1; "~DIIbot" 1; "~DISCo" 1; "~discobot" 1; "~Dispatch" 1; "~dit" 1; "~DittoSpyder" 1; "~Dolphin" 1; "~DomainSigma" 1; "~DomainTools" 1; "~DotBot" 1; "~Download\ Demon" 1; "~Download\ Devil" 1; "~Download\ Wonder" 1; "~Downloader" 1; "~dragonfly" 1; "~Drip" 1; "~DSurf15" 1; "~DuckDuckGo" 1; "~EasyDL" 1; "~ebingbong" 1; "~EBrowse" 1; "~eCatch" 1; "~Educate\ Search\ VxB" 1; "~EirGrabber" 1; "~email" 1; "~EmailCollector" 1; "~EmailSiphon" 1; "~EmailSpider" 1; "~EmailWolf" 1; "~Embedly" 1; "~EroCrawler" 1; "~ESurf15" 1; "~Exabot" 1; "~Express\ WebPictures" 1; "~Extractor" 1; "~EyeNetIE" 1; "~Ezooms" 1; "~facebookexternalhit" 1; "~FairAd\ Client" 1; "~FairShare" 1; "~Faraday" 1; "~Favicon" 1; "~Feed
- er" 1; "~FileHound" 1; "~filterdb" 1; "~Flaming\ AttackBot" 1; "~FlashGet" 1; "~FlaxCrawler" 1; "~Flexum" 1; "~FlightDeckReportsBot" 1; "~FlipboardProxy" 1; "~flunky" 1; "~Foobot" 1; "~Franklin\ Locator" 1; "~FrontPage" 1; "~FSurf15" 1; "~Full\ Web\ Bot" 1; "~FyberSpider" 1; "~Gaisbot" 1; "~getintent" 1; "~getprismatic" 1; "~GetRight" 1; "~Gets" 1; "~GetSmart" 1; "~GetWeb!" 1; "~gigabaz" 1; "~Gigabot" 1; "~Go 1.1 package" 1; "~Go!Zilla" 1; "~Go-Ahead-Got-It" 1; "~Go-http-client" 1; "~gold crawler" 1; "~gold\ crawler" 1; "~gotit" 1; "~GoZilla" 1; "~Grabber" 1; "~GrabNet" 1; "~GrabSite" 1; "~Grafula" 1; "~GrapeshotCrawler" 1; "~grub" 1; "~grub-client" 1; "~gsa-crawler" 1; "~Guestbook\ Auto\ Submitter" 1; "~Gulliver" 1; "~Harvest" 1; "~help.jp" 1; "~hloader" 1; "~HMView" 1; "~HTMLParser" 1; "~httpdown" 1; "~httplib" 1; "~httrack" 1; "~HTTrack" 1; "~humanlinks" 1; "~hybrid" 1; "~ia_archiver" 1; "~IBrowse" 1; "~IlseBot" 1; "~Image\ Stripper" 1; "~Image\ Sucker" 1; "~Industry\ Program" 1; "~Indy Library" 1; "~Indy\ Library" 1; "~InfoNaviRobot" 1; "~InfoSeek" 1; "~InfoTekies" 1; "~inktomi" 1; "~Intelliseek" 1; "~InterGET" 1; "~Internet\ Ninja" 1; "~InternetLinkagent" 1; "~InternetSeer" 1; "~Iria" 1; "~Iron33" 1; "~ISC\ Systems" 1; "~IUPUI\ Research\ Bot" 1; "~Jakarta" 1; "~Java" 1; "~JBH\ agent" 1; "~JennyBot" 1; "~jetcar" 1; "~JetCar" 1; "~JOC" 1; "~JS-Kit" 1; "~JustView" 1; "~Jyxobot" 1; "~Kenjin\ Spider" 1; "~Keyword\ Density" 1; "~km.ru" 1; "~kmSearchBot" 1; "~Kraken" 1; "~larbin" 1; "~Laserlikebot" 1; "~leech" 1; "~LeechFTP" 1; "~Leikibot" 1; "~LetsCrawl.com" 1; "~LexiBot" 1; "~lftp" 1; "~libWeb" 1; "~libwww" 1; "~Lightspeedsystems" 1; "~likse" 1; "~Lincoln\ State\ Web\ Browser" 1; "~Linguee" 1; "~LinkBot" 1; "~linkdexbot" 1; "~LinkExchanger" 1; "~LinkextractorPro" 1; "~linkfluence" 1; "~LinkpadBot" 1; "~LinkScan" 1; "~LinkSleuth" 1; "~LinkWalker" 1; "~liveinternet" 1; "~LivelapBot" 1; "~LMQueueBot" 1; "~LNSpiderguy" 1; "~LoadImpactPageAnalyzer" 1; "~looksmart" 1; "~ltx71" 1; "~LWP" 1; "~lwp-trivial" 1; "~Mac\ Finder" 1; "~Magnet" 1; "~Mag-Net" 1; "~majestic" 1; "~MarkWatch" 1; "~Mass\ Downloader" 1; "~masscan" 1; "~Mata\ Hari" 1; "~meanpathbot" 1; "~Mediatoolkitbot" 1; "~MegaIndex" 1; "~Memo" 1; "~MetaURI" 1; "~MFC\ Foundation\ Class\ Library" 1; "~mfibot" 1; "~Microsoft\ URL\ Control" 1; "~MIDown\ tool" 1; "~MIIxpc" 1; "~Mirror" 1; "~Missauga\ Loca" 1; "~Missouri\ College\ Browse" 1; "~Mister\ PiX" 1; "~Mizzu\ Labs" 1; "~MJ12bot" 1; "~MLBot" 1; "~Mo\ College" 1; "~moget" 1; "~Mozilla\ Indy" 1; "~Mozilla\ MSIECrawler" 1; "~Mozilla\ NEWT" 1; "~MS\ FrontPage" 1; "~MSFrontPage" 1; "~MSIECrawler" 1; "~MSProxy" 1; "~musobot" 1; "~MVAClient" 1; "~NameOfAgent" 1; "~NAMEPROTECT" 1; "~NASA\ Search" 1; "~Navroad" 1; "~NearSite" 1; "~NerdByNature" 1; "~Net\ Vampire" 1; "~NetAnts" 1; "~Netcraft" 1; "~NetMechanic" 1; "~NetReaper" 1; "~NetSeer" 1; "~NetSpider" 1; "~NetZIP" 1; "~NewShareCounts" 1; "~NextGenSearchBot" 1; "~NICErsPRO" 1; "~NimbleCrawler" 1; "~NING" 1; "~Ninja" 1; "~NjuiceBot" 1; "~NPbot" 1; "~Nsauditor" 1; "~Nutch" 1; "~Nuzzel" 1; "~Octopus" 1; "~Offline" 1; "~Offline\ Explorer" 1; "~Offline\ Navigator" 1; "~omgili" 1; "~omgilibot" 1; "~OmniExplorer_Bot" 1; "~Openbot" 1; "~Openfind" 1; "~OpenHoseBot" 1; "~openstat" 1; "~openstat.ru" 1; "~OptimizationCrawler" 1; "~Oracle\ Ultra\ Search" 1; "~OutfoxBot" 1; "~PageGrabber" 1; "~PageSaver" 1; "~Panopta" 1; "~Papa\ Foto" 1; "~PaperLiBot" 1; "~pavuk" 1; "~PBrowse" 1; "~pcBrowser" 1; "~PerMan" 1; "~PEval" 1; "~pflab" 1; "~PHP" 1; "~PHP/" 1; "~Ping" 1; "~PingALink" 1; "~Pingdom" 1; "~pirst" 1; "~Pita" 1; "~Pockey" 1; "~Poirot" 1; "~Port\ Huron\ Labs" 1; "~postano" 1; "~PostRank" 1; "~PrivacyAware" 1; "~Production\ Bot" 1; "~Program\ Shareware" 1; "~ProPowerBot" 1; "~ProWebWalker" 1; "~proximic" 1; "~psbot" 1; "~PSurf15" 1; "~psycheclone" 1; "~ptd-crawler" 1; "~Pump" 1; "~Purebot" 1; "~PycURL" 1; "~Python" 1; "~python-requests" 1; "~Python-urllib" 1; "~QRVA" 1; "~QueryN\ Metasearch" 1; "~QuerySeekerSpider" 1; "~Radiation\ Retriever" 1; "~RealDownload" 1; "~Reaper" 1; "~Recorder" 1; "~ReGet" 1; "~RepoMonkey" 1; "~Riddler" 1; "~RMA" 1; "~rogerbot" 1; "~RSurf15" 1; "~Ruby" 1; "~Runet-Research-Crawler" 1; "~SafeSearch" 1; "~Scooter" 1; "~Scrapy" 1; "~SearchBot" 1; "~searchpreview" 1; "~searchvoodoo" 1; "~Seeker" 1; "~semantic" 1; "~SemrushBot" 1; "~SEO\ search\ Crawler" 1; "~Seopult" 1; "~SEOsearch" 1; "~SetLinks" 1; "~SeznamBot" 1; "~ShablastBot" 1; "~Siphon" 1; "~SISTRIX" 1; "~SiteBot" 1; "~sitecheck" 1; "~SiteSnagger" 1; "~Slurp" 1; "~SlySearch" 1; "~SmartDownload" 1; "~SMTBot" 1; "~SMUrlExpander" 1; "~Snagger" 1; "~Snake" 1; "~snap.com" 1; "~Snapbot" 1; "~SNAPSHOT" 1; "~Snoopy" 1; "~socialmediascanner" 1; "~sogou" 1; "~Sogou" 1; "~sohu\ agent" 1; "~solomono" 1; "~Soup" 1; "~SpaceBison" 1; "~SpankBot" 1; "~spanner" 1; "~spbot" 1; "~spredbot" 1; "~sproose" 1; "~Sqworm" 1; "~SSurf15" 1; "~statdom" 1; "~StatOnlineRuBot" 1; "~Stripper" 1; "~Sucker" 1; "~suggybot" 1; "~SuperBot" 1; "~Superfeedr" 1; "~SuperHTTP" 1; "~Surfbot" 1; "~SurveyBot" 1; "~suzuran" 1; "~SWeb" 1; "~Synapse" 1; "~Szukacz" 1; "~tAkeOut" 1; "~Teleport" 1; "~Telesoft" 1; "~The\ Intraformant" 1; "~TheNomad" 1; "~TightTwatBot" 1; "~Titan" 1; "~toCrawl" 1; "~trendictionbot" 1; "~Triton" 1; "~True_Robot" 1; "~TSearcher" 1; "~TSurf15" 1; "~ttCrawler" 1; "~turingos" 1; "~TurnitinBot" 1; "~TweetmemeBot" 1; "~Twiceler" 1; "~ubermetrics" 1; "~Under\ the\ Rainbow" 1; "~UnwindFetchor" 1; "~URL\ Control" 1; "~UrlDispatcher" 1; "~urllib" 1; "~URLSpiderPro" 1; "~URLy\ Warning" 1; "~User-Agent" 1; "~uTorrent" 1; "~Vacuum" 1; "~VadixBot" 1; "~VCI" 1; "~veoozbot" 1; "~virus\ bot" 1; "~Virusdie" 1; "~VoidEYE" 1; "~voyager" 1; "~Voyager" 1; "~W3\ SiteSearch\ Crawler" 1; "~W3C" 1; "~Wayback Machine" 1; "~WBSearchBot" 1; "~Weazel" 1; "~Web\ Downloader" 1; "~Web\ Image\ Collector" 1; "~Web\ Spy" 1; "~Web\ Sucker" 1; "~WebAlta" 1; "~WebAuto" 1; "~Webbandit" 1; "~WebBandit" 1; "~WebCapture" 1; "~Webclipping.com" 1; "~webcollage" 1; "~WebCopier" 1; "~WebEMailExtrac" 1; "~WebEnhancer" 1; "~WebFetch" 1; "~WebGo\ IS" 1; "~WebHook" 1; "~WebLeacher" 1; "~weblist" 1; "~WebmasterWorld" 1; "~WebMiner" 1; "~WebMirror" 1; "~WebReaper" 1; "~WebRecorder" 1; "~WebSauger" 1; "~WebSite" 1; "~Website\ eXtractor" 1; "~Website\ Quester" 1; "~WebSpy" 1; "~Webster" 1; "~WebStripper" 1; "~WebVulnCrawl" 1; "~WebWhacker" 1; "~WebZIP" 1; "~wegobot" 1; "~Wells\ Search" 1; "~WEP\ Search" 1; "~Wget" 1; "~Whacker" 1; "~Widow" 1; "~Windows\ 95" 1; "~WISENutbot" 1; "~WordPress" 1; "~woriobot" 1; "~WWW-Collector-E" 1; "~WWWOFFLE" 1; "~Xaldon" 1; "~Xenu" 1; "~Xenu's" 1; "~x-Tractor" 1; "~Yanga" 1; "~Yeti" 1; "~YottosBot" 1; "~Zeus" 1; "~Zeus\ Link\ Scout" 1; "~zitebot" 1; "~ZmEu" 1; "~Zyborg" 1;}
- # Mime settings
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
- # Main settings
- #При одновременном включении AIO и sendfile в Linux для файлов, размер которых больше либо равен указанному в директиве directio, будет использоваться AIO,
- #а для файлов меньшего размера или при выключенном directio — sendfile
- #Если нужна большая производительность, нужен собранный nginx с флагом --with-threads https://habrahabr.ru/post/260669/
- sendfile on;
- sendfile_max_chunk 256k;
- tcp_nopush on;
- tcp_nodelay on;
- # Таймаут при чтении тела запроса клиента
- client_body_timeout 5;
- # Таймаут при чтении заголовка запроса клиента
- client_header_timeout 5;
- #Таймаут соединения позволяют избежать необходимости повторного создания соединения между клиентом и сервером.
- keepalive_timeout 15 2;
- # Максимальное количество keepalive запросов от одного клиента
- keepalive_requests 100;
- # Если клиент прекратит чтение ответа, Nginx подождет 1 секунду и сбросит соединение
- send_timeout 1;
- # Максимальный размер буфера для хранения тела запроса клиента
- client_body_buffer_size 10K;
- # Максимальный размер буфера для хранения заголовков запроса клиента
- client_header_buffer_size 5k;
- # Максимальный размер тела запроса клиента, прописанный в поле Content-Length заголовка.
- # Если сервер должен поддерживать загрузку файлов, это значение необходимо увеличить
- client_max_body_size 8m;
- # Количество и размер буферов для чтения большого заголовка запроса клиента
- large_client_header_buffers 2 5k;
- reset_timedout_connection on;
- server_tokens off;
- server_name_in_redirect off;
- server_names_hash_max_size 512;
- server_names_hash_bucket_size 512;
- # Proxy settings
- proxy_redirect off;
- proxy_connect_timeout 600;
- proxy_send_timeout 600;
- proxy_read_timeout 600;
- proxy_buffering on;
- proxy_buffers 4 256k;
- proxy_buffer_size 256k;
- proxy_busy_buffers_size 256k;
- # Cache
- #/с версии 0.7.48 Исправление: теперь nginx кэширует только ответы на запросы GET./
- proxy_cache_path /var/lib/nginx/cache levels=1:2 keys_zone=cache:10m inactive=10m max_size=15m; #inactive Время хранения данных с последнего обращения
- proxy_temp_path /var/lib/nginx/proxy 1 2;
- proxy_cache_key "$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri"; # Гарантируем, что разные пользователи не получат одну и ту же сессионную Cookie.
- #proxy_cache_min_uses 5; # Количество юзеров после которого включим кеширование
- proxy_set_header Accept-Encoding "";
- upstream backend {
- hash $remote_addr$remote_port consistent;
- server 127.0.0.1:81;
- #Указать IP сервера \ Web.Server.IP
- server хх.хх.хх.хх:81;
- }
- ############################## SERVER ####################################
- server {
- listen 80 reuseport; # Слушаем 80 порт listen for ipv4
- add_header X-Cache $upstream_cache_status;
- # Перенаправление всех не найденных файлов в апач
- error_page 404 502 503 504 = @apache2;
- ##################### Cache #######################
- set $no_cache 0;
- #Don't cache if the URL contains a query string
- if ($query_string != "")
- { set $no_cache 1; }
- #Don't cache the following URLs
- if ($request_uri ~* "/(wp-admin/|admin/|administrator/|login.php|phpmyadmin)")
- { set $no_cache 1; }
- #Don't cache if there is a cookie called session (! php.ini session.name = session )
- if ($http_cookie = "session") { set $no_cache 1; }
- ############################################
- #Блокируем запросы кроме HEAD POST GET
- if ($block = 0) { return 444;}
- # Блокируем менеджеры загрузки и некоторые типы ботов (update 15.10.2017)
- if ($agent = 1) { return 403;}
- #выставляем принудительно кодировку всех документов
- charset utf-8;
- #########################Динамическое определение доменов и поддоменов###################################
- #!Путь до папки с сайтом как в Vesta СP /home/admin/web/domen.ru/public_html
- #Если нужные другие пути, они редактируются в строка помеченных #1
- set $basepath "/home/admin/web"; #1
- set $domain $host;
- if ($domain ~ "^(.[^.]*)$") {
- set $domain $1;
- set $rootpath "${domain}/public_html"; #1
- set $servername "${domain}";
- }
- if ($domain ~ "^(.*)\.(.[^.]*)$") {
- set $subdomain $1;
- set $domain $2;
- set $rootpath "${subdomain}.${domain}/public_html"; #1
- set $servername "${subdomain}.${domain}";
- }
- #Отключена ошибка 404 при отсутствии директории для работы алисов доменов и адресов вида ip
- #if (!-d $basepath/$rootpath) { return 404; }
- #Редирект с www на без www
- if ($http_host ~* "^www\.(.+)\.(.+)$"){ #Запоминаем хост без www из предыдущего выражения в переменной $nowww
- set $nowww $1.$2;
- #Делаем 301 редирект (permanent) .В $request_uri - адрес без хоста со всеми GET параметрами. После $request_uri добавляем '?' чтобы GET параметры не добавились дважды (по умолчанию)
- rewrite ^ http://$nowww$request_uri? permanent; }
- #########################//////////////////////###########################################################
- server_name $servername;
- index index.php index.html index.htm;
- root $basepath/$rootpath; # Директория поиска файлов
- ###########################################################################################################
- #wordpress
- location ~* ^/wordpress/(wp-config.php) {
- deny all; # запретить все для всех
- return 404; # вернуть код ошибки
- }
- # bitrix internal locations
- location ~* ^/bitrix/(modules|local_cache|stack_cache|managed_cache|php_interface) {
- deny all;
- }
- #запрещается доступ к выполнению скриптов из записываемых каталогов:
- location ~* /(uploads|images|cache|media|logs|tmp)/.*.(php|pl|py|jsp|asp|sh|cgi)$ { deny all; }
- # в файлах, начинающихся на «.» могут лежать пароли или оставшиеся настройки от Апача - отдавать это ни к чему.
- location ~ /\. { deny all;}
- # Закрыт доступ к txt и db файлам
- location ~* ^.+\.(db|txt)$ { deny all; }
- # Открыт доступ к robots.txt u favicon
- location = /robots.txt { allow all; log_not_found off; access_log off; }
- location = /favicon.ico { allow all; log_not_found off; access_log off; }
- # phpmyadmin
- location ^/phpmyadmin { alias /usr/share/phpmyadmin/;
- location ~ /(libraries|setup) { return 404; }
- location ~ ^/phpmyadmin/(.*\.php)$ {
- alias /usr/share/phpmyadmin/$1;
- proxy_pass http://backend; }
- location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ { root /usr/share/; }
- } #/phpmyadmin
- # Эта секция отвечает за местонахождение и типы статичных файлов, обрабатываемых Nginx.
- # Вы можете добавить по аналогии расширения файлов, которые будут отдаваться Nginx'ом.
- # Динамические файлы мы будем отсылать на Apache
- location ~* ^.+\.(bmp|jpg|jpeg|gif|png|svg|js|css|html|htm|ico|pdf|pptx?|docx?|xlsx?|rtf|xpi|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
- access_log off; # не пишем логи
- # кешируем у клиента на 7 дней
- expires 7d;
- #Защита от хотлинкинга , указанных поисковых сайтов и соцсетей
- #Хитрая проверка на свой сайт, ввиду того что динамика и сайты у нас разные
- #Спасибо автору Maxim Dounin http://nginx.org/en/donation.html
- set $temp "$host:$http_referer";
- if ($temp ~* "^(.*):https?://\1") { set $invalid_referer "0"; }
- #Разрешено поисковым сайтам и соцсетям отображать у себя картинки и прочие файлы
- valid_referers none blocked server_names ~(duckduckgo|yandex|google|yahoo|bing|ok|twitter|vk|facebook|subscribe|feedburner|mail|rambler|nigma|ask|qip);
- if ($invalid_referer) {
- #return 403;
- #сюда можно засунуть вместо retunr 403 свою картинку
- rewrite ^(.*)$ http://mtdata.ru/u3/photo3768/20520253260-0/original.jpg redirect;
- }
- #
- #Повторный запрос при ошибке
- error_page 404 502 503 504 = @apache2;
- try_files $uri @apache2;
- }
- location / {
- try_files $uri @apache2;
- proxy_pass http://backend;
- proxy_cache cache;
- proxy_redirect off;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_cache_revalidate on;
- proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
- proxy_cache_valid 200 301 302 304 5m; #Время хранения данных в кеше
- proxy_cache_valid 404 1m;
- proxy_cache_bypass $no_cache;
- proxy_no_cache $no_cache;
- proxy_ignore_headers "Cache-Control" "Expires";
- #proxy_cache_purge Функция в платной подписке(
- #can rename PURGE to whatever you want, should restrict it to backend server requests for security
- #proxy_cache_purge PURGE from 127.0.0.1 Web.Server.IP; #Указать IP сервера \ Web.Server.IP (~from 127.0.0.1 xxx.xxx.xxx.xxx)
- #location ~ /purge(/.*) {
- #allow 127.0.0.1;
- #allow Web.Server.IP;
- #deny all;
- #proxy_cache_purge cache $scheme$host$1;}
- error_page 404 502 503 504 = @apache2;
- }
- location @apache2 {
- proxy_pass http://backend;
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- }
- # Wildcard include / Закоментили(отключили) дополнительные настройки
- #include /etc/nginx/conf.d/*.conf;
- } #/server
- # SSL PCI Compliance
- ssl_session_cache shared:SSL:10m;
- ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
- ssl_prefer_server_ciphers on;
- ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
- # Error pages / Страницы ошибок / Пути под Vesta CP
- error_page 403 /home/admin/web/$host/document_errors/403.html;
- error_page 404 /home/admin/web/$host/document_errors/404.html;
- error_page 502 503 504 /home/admin/web/$host/document_errors/50x.html;
- ################## Настройки GZIP###########################
- # http/ngx_http_gzip_module.html
- gzip on;
- gzip_static on;
- gzip_min_length 1024;
- gzip_buffers 64 8k;
- gzip_http_version 1.1;
- # Разрешает или запрещает сжатие ответа методом gzip для проксированных запросов в зависимости от запроса и ответа.
- gzip_proxied expired no-cache no-store private auth;
- # Разрешает сжатие ответа методом gzip для указанных MIME-типов в дополнение к text/html, который сжимается всегда.
- gzip_types text/plain text/css application/x-javascript application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml application/x-font-ttf font/opentype;
- # Запрещаем сжатие gzip для IE6. Специальная маска “msie6” (0.7.12) соответствует рег. выражению “MSIE [4-6]\.”, но работает быстрее. Начиная с версии 0.8.11, из этой маски исключается “MSIE 6.0; ... SV1”.
- gzip_disable "msie6";
- # Уровень gzip-компрессии.
- gzip_comp_level 5;
- gzip_proxied any;
- aio on; # включаем AIO
- # Директива автоматически запрещает (0.7.15) использование sendfile для данного запроса. Рекомендуется использовать для больших файлов
- directio 1m;
- # Log format
- log_format main '$remote_addr - $remote_user [$time_local] $request '
- '"$status" $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
- log_format bytes '$body_bytes_sent';
- access_log /var/log/nginx/access.log main;
- #access_log off;
- }#/http
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement