1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884218852188621887218882188921890218912189221893218942189521896218972189821899219002190121902219032190421905219062190721908219092191021911219122191321914219152191621917219182191921920219212192221923219242192521926219272192821929219302193121932219332193421935219362193721938219392194021941219422194321944219452194621947219482194921950219512195221953219542195521956219572195821959219602196121962219632196421965219662196721968219692197021971219722197321974219752197621977219782197921980219812198221983219842198521986219872198821989219902199121992219932199421995219962199721998219992200022001220022200322004220052200622007220082200922010220112201222013220142201522016220172201822019220202202122022220232202422025220262202722028220292203022031220322203322034220352203622037220382203922040220412204222043220442204522046220472204822049220502205122052220532205422055220562205722058220592206022061220622206322064220652206622067220682206922070220712207222073220742207522076220772207822079220802208122082220832208422085220862208722088220892209022091220922209322094220952209622097220982209922100221012210222103221042210522106221072210822109221102211122112221132211422115221162211722118221192212022121221222212322124221252212622127221282212922130221312213222133221342213522136221372213822139221402214122142221432214422145221462214722148221492215022151221522215322154221552215622157221582215922160221612216222163221642216522166221672216822169221702217122172221732217422175221762217722178221792218022181221822218322184221852218622187221882218922190221912219222193221942219522196221972219822199222002220122202222032220422205222062220722208222092221022211222122221322214222152221622217222182221922220222212222222223222242222522226222272222822229222302223122232222332223422235222362223722238222392224022241222422224322244222452224622247222482224922250222512225222253222542225522256222572225822259222602226122262222632226422265222662226722268222692227022271222722227322274222752227622277222782227922280222812228222283222842228522286222872228822289222902229122292222932229422295222962229722298222992230022301223022230322304223052230622307223082230922310223112231222313223142231522316223172231822319223202232122322223232232422325223262232722328223292233022331223322233322334223352233622337223382233922340223412234222343223442234522346223472234822349223502235122352223532235422355223562235722358223592236022361223622236322364223652236622367223682236922370223712237222373223742237522376223772237822379223802238122382223832238422385223862238722388223892239022391223922239322394223952239622397223982239922400224012240222403224042240522406224072240822409224102241122412224132241422415224162241722418224192242022421224222242322424224252242622427224282242922430224312243222433224342243522436224372243822439224402244122442224432244422445224462244722448224492245022451224522245322454224552245622457224582245922460224612246222463224642246522466224672246822469224702247122472224732247422475224762247722478224792248022481224822248322484224852248622487224882248922490224912249222493224942249522496224972249822499225002250122502225032250422505225062250722508225092251022511225122251322514225152251622517225182251922520225212252222523225242252522526225272252822529225302253122532225332253422535225362253722538225392254022541225422254322544225452254622547225482254922550225512255222553225542255522556225572255822559225602256122562225632256422565225662256722568225692257022571225722257322574225752257622577225782257922580225812258222583225842258522586225872258822589225902259122592225932259422595225962259722598225992260022601226022260322604226052260622607226082260922610226112261222613226142261522616226172261822619226202262122622226232262422625226262262722628226292263022631226322263322634226352263622637226382263922640226412264222643226442264522646226472264822649226502265122652226532265422655226562265722658226592266022661226622266322664226652266622667226682266922670226712267222673226742267522676226772267822679226802268122682226832268422685226862268722688226892269022691226922269322694226952269622697226982269922700227012270222703227042270522706227072270822709227102271122712227132271422715227162271722718227192272022721227222272322724227252272622727227282272922730227312273222733227342273522736227372273822739227402274122742227432274422745227462274722748227492275022751227522275322754227552275622757227582275922760227612276222763227642276522766227672276822769227702277122772227732277422775227762277722778227792278022781227822278322784227852278622787227882278922790227912279222793227942279522796227972279822799228002280122802228032280422805228062280722808228092281022811228122281322814228152281622817228182281922820228212282222823228242282522826228272282822829228302283122832228332283422835228362283722838228392284022841228422284322844228452284622847228482284922850228512285222853228542285522856228572285822859228602286122862228632286422865228662286722868228692287022871228722287322874228752287622877228782287922880228812288222883228842288522886228872288822889228902289122892228932289422895228962289722898228992290022901229022290322904229052290622907229082290922910229112291222913229142291522916229172291822919229202292122922229232292422925229262292722928229292293022931229322293322934229352293622937229382293922940229412294222943229442294522946229472294822949229502295122952229532295422955229562295722958229592296022961229622296322964229652296622967229682296922970229712297222973229742297522976229772297822979229802298122982229832298422985229862298722988229892299022991229922299322994229952299622997229982299923000230012300223003230042300523006230072300823009230102301123012230132301423015230162301723018230192302023021230222302323024230252302623027230282302923030230312303223033230342303523036230372303823039230402304123042230432304423045230462304723048230492305023051230522305323054230552305623057230582305923060230612306223063230642306523066230672306823069230702307123072230732307423075230762307723078230792308023081230822308323084230852308623087230882308923090230912309223093230942309523096230972309823099231002310123102231032310423105231062310723108231092311023111231122311323114231152311623117231182311923120231212312223123231242312523126231272312823129231302313123132231332313423135231362313723138231392314023141231422314323144231452314623147231482314923150231512315223153231542315523156231572315823159231602316123162231632316423165231662316723168231692317023171231722317323174231752317623177231782317923180231812318223183231842318523186231872318823189231902319123192231932319423195231962319723198231992320023201232022320323204232052320623207232082320923210232112321223213232142321523216232172321823219232202322123222232232322423225232262322723228232292323023231232322323323234232352323623237232382323923240232412324223243232442324523246232472324823249232502325123252232532325423255232562325723258232592326023261232622326323264232652326623267232682326923270232712327223273232742327523276232772327823279232802328123282232832328423285232862328723288232892329023291232922329323294232952329623297232982329923300233012330223303233042330523306233072330823309233102331123312233132331423315233162331723318233192332023321233222332323324233252332623327233282332923330233312333223333233342333523336233372333823339233402334123342233432334423345233462334723348233492335023351233522335323354233552335623357233582335923360233612336223363233642336523366233672336823369233702337123372233732337423375233762337723378233792338023381233822338323384233852338623387233882338923390233912339223393233942339523396233972339823399234002340123402234032340423405234062340723408234092341023411234122341323414234152341623417234182341923420234212342223423234242342523426234272342823429234302343123432234332343423435234362343723438234392344023441234422344323444234452344623447234482344923450234512345223453234542345523456234572345823459234602346123462234632346423465234662346723468234692347023471234722347323474234752347623477234782347923480234812348223483234842348523486234872348823489234902349123492234932349423495234962349723498234992350023501235022350323504235052350623507235082350923510235112351223513235142351523516235172351823519235202352123522235232352423525235262352723528235292353023531235322353323534235352353623537235382353923540235412354223543235442354523546235472354823549235502355123552235532355423555235562355723558235592356023561235622356323564235652356623567235682356923570235712357223573235742357523576235772357823579235802358123582235832358423585235862358723588235892359023591235922359323594235952359623597235982359923600236012360223603236042360523606236072360823609236102361123612236132361423615236162361723618236192362023621236222362323624236252362623627236282362923630236312363223633236342363523636236372363823639236402364123642236432364423645236462364723648236492365023651236522365323654236552365623657236582365923660236612366223663236642366523666236672366823669236702367123672236732367423675236762367723678236792368023681236822368323684236852368623687236882368923690236912369223693236942369523696236972369823699237002370123702237032370423705237062370723708237092371023711237122371323714237152371623717237182371923720237212372223723237242372523726237272372823729237302373123732237332373423735237362373723738237392374023741237422374323744237452374623747237482374923750237512375223753237542375523756237572375823759237602376123762237632376423765237662376723768237692377023771237722377323774237752377623777237782377923780237812378223783237842378523786237872378823789237902379123792237932379423795237962379723798237992380023801238022380323804238052380623807238082380923810238112381223813238142381523816238172381823819238202382123822238232382423825238262382723828238292383023831238322383323834238352383623837238382383923840238412384223843238442384523846238472384823849238502385123852238532385423855238562385723858238592386023861238622386323864238652386623867238682386923870238712387223873238742387523876238772387823879238802388123882238832388423885238862388723888238892389023891238922389323894238952389623897238982389923900239012390223903239042390523906239072390823909239102391123912239132391423915239162391723918239192392023921239222392323924239252392623927239282392923930239312393223933239342393523936239372393823939239402394123942239432394423945239462394723948239492395023951239522395323954239552395623957239582395923960239612396223963239642396523966239672396823969239702397123972239732397423975239762397723978239792398023981239822398323984239852398623987239882398923990239912399223993239942399523996239972399823999240002400124002240032400424005240062400724008240092401024011240122401324014240152401624017240182401924020240212402224023240242402524026240272402824029240302403124032240332403424035240362403724038240392404024041240422404324044240452404624047240482404924050240512405224053240542405524056240572405824059240602406124062240632406424065240662406724068240692407024071240722407324074240752407624077240782407924080240812408224083240842408524086240872408824089240902409124092240932409424095240962409724098240992410024101241022410324104241052410624107241082410924110241112411224113241142411524116241172411824119241202412124122241232412424125241262412724128241292413024131241322413324134241352413624137241382413924140241412414224143241442414524146241472414824149241502415124152241532415424155241562415724158241592416024161241622416324164241652416624167241682416924170241712417224173241742417524176241772417824179241802418124182241832418424185241862418724188241892419024191241922419324194241952419624197241982419924200242012420224203242042420524206242072420824209242102421124212242132421424215242162421724218242192422024221242222422324224242252422624227242282422924230242312423224233242342423524236242372423824239242402424124242242432424424245242462424724248242492425024251242522425324254242552425624257242582425924260242612426224263242642426524266242672426824269242702427124272242732427424275242762427724278242792428024281242822428324284242852428624287242882428924290242912429224293242942429524296242972429824299243002430124302243032430424305243062430724308243092431024311243122431324314243152431624317243182431924320243212432224323243242432524326243272432824329243302433124332243332433424335243362433724338243392434024341243422434324344243452434624347243482434924350243512435224353243542435524356243572435824359243602436124362243632436424365243662436724368243692437024371243722437324374243752437624377243782437924380243812438224383243842438524386243872438824389243902439124392243932439424395243962439724398243992440024401244022440324404244052440624407244082440924410244112441224413244142441524416244172441824419244202442124422244232442424425244262442724428244292443024431244322443324434244352443624437244382443924440244412444224443244442444524446244472444824449244502445124452244532445424455244562445724458244592446024461244622446324464244652446624467244682446924470244712447224473244742447524476244772447824479244802448124482244832448424485244862448724488244892449024491244922449324494244952449624497244982449924500245012450224503245042450524506245072450824509245102451124512245132451424515245162451724518245192452024521245222452324524245252452624527245282452924530245312453224533245342453524536245372453824539245402454124542245432454424545245462454724548245492455024551245522455324554245552455624557245582455924560245612456224563245642456524566245672456824569245702457124572245732457424575245762457724578245792458024581245822458324584245852458624587245882458924590245912459224593245942459524596245972459824599246002460124602246032460424605246062460724608246092461024611246122461324614246152461624617246182461924620246212462224623246242462524626246272462824629246302463124632246332463424635246362463724638246392464024641246422464324644246452464624647246482464924650246512465224653246542465524656246572465824659246602466124662246632466424665246662466724668246692467024671246722467324674246752467624677246782467924680246812468224683246842468524686246872468824689246902469124692246932469424695246962469724698246992470024701247022470324704247052470624707247082470924710247112471224713247142471524716247172471824719247202472124722247232472424725247262472724728247292473024731247322473324734247352473624737247382473924740247412474224743247442474524746247472474824749247502475124752247532475424755247562475724758247592476024761247622476324764247652476624767247682476924770247712477224773247742477524776247772477824779247802478124782247832478424785247862478724788247892479024791247922479324794247952479624797247982479924800248012480224803248042480524806248072480824809248102481124812248132481424815248162481724818248192482024821248222482324824248252482624827248282482924830248312483224833248342483524836248372483824839248402484124842248432484424845248462484724848248492485024851248522485324854248552485624857248582485924860248612486224863248642486524866248672486824869248702487124872248732487424875248762487724878248792488024881248822488324884248852488624887248882488924890248912489224893248942489524896248972489824899249002490124902249032490424905249062490724908249092491024911249122491324914249152491624917249182491924920249212492224923249242492524926249272492824929249302493124932249332493424935249362493724938249392494024941249422494324944249452494624947249482494924950249512495224953249542495524956249572495824959249602496124962249632496424965249662496724968249692497024971249722497324974249752497624977249782497924980249812498224983249842498524986249872498824989249902499124992249932499424995249962499724998249992500025001250022500325004250052500625007250082500925010250112501225013250142501525016250172501825019250202502125022250232502425025250262502725028250292503025031250322503325034250352503625037250382503925040250412504225043250442504525046250472504825049250502505125052250532505425055250562505725058250592506025061250622506325064250652506625067250682506925070250712507225073250742507525076250772507825079250802508125082250832508425085250862508725088250892509025091250922509325094250952509625097250982509925100251012510225103251042510525106251072510825109251102511125112251132511425115251162511725118251192512025121251222512325124251252512625127251282512925130251312513225133251342513525136251372513825139251402514125142251432514425145251462514725148251492515025151251522515325154251552515625157251582515925160251612516225163251642516525166251672516825169251702517125172251732517425175251762517725178251792518025181251822518325184251852518625187251882518925190251912519225193251942519525196251972519825199252002520125202252032520425205252062520725208252092521025211252122521325214252152521625217252182521925220252212522225223252242522525226252272522825229252302523125232252332523425235252362523725238252392524025241252422524325244252452524625247252482524925250252512525225253252542525525256252572525825259252602526125262252632526425265252662526725268252692527025271252722527325274252752527625277252782527925280252812528225283252842528525286252872528825289252902529125292252932529425295252962529725298252992530025301253022530325304253052530625307253082530925310253112531225313253142531525316253172531825319253202532125322253232532425325253262532725328253292533025331253322533325334253352533625337253382533925340253412534225343253442534525346253472534825349253502535125352253532535425355253562535725358253592536025361253622536325364253652536625367253682536925370253712537225373253742537525376253772537825379253802538125382253832538425385253862538725388253892539025391253922539325394253952539625397253982539925400254012540225403254042540525406254072540825409254102541125412254132541425415254162541725418254192542025421254222542325424254252542625427254282542925430254312543225433254342543525436254372543825439254402544125442254432544425445254462544725448254492545025451254522545325454254552545625457254582545925460254612546225463254642546525466254672546825469254702547125472254732547425475254762547725478254792548025481254822548325484254852548625487254882548925490254912549225493254942549525496254972549825499255002550125502255032550425505255062550725508255092551025511255122551325514255152551625517255182551925520255212552225523255242552525526255272552825529255302553125532255332553425535255362553725538255392554025541255422554325544255452554625547255482554925550255512555225553255542555525556255572555825559255602556125562255632556425565255662556725568255692557025571255722557325574255752557625577255782557925580255812558225583255842558525586255872558825589255902559125592255932559425595255962559725598255992560025601256022560325604256052560625607256082560925610256112561225613256142561525616256172561825619256202562125622256232562425625256262562725628256292563025631256322563325634256352563625637256382563925640256412564225643256442564525646256472564825649256502565125652256532565425655256562565725658256592566025661256622566325664256652566625667256682566925670256712567225673256742567525676256772567825679256802568125682256832568425685256862568725688256892569025691256922569325694256952569625697256982569925700257012570225703257042570525706257072570825709257102571125712257132571425715257162571725718257192572025721257222572325724257252572625727257282572925730257312573225733257342573525736257372573825739257402574125742257432574425745257462574725748257492575025751257522575325754257552575625757257582575925760257612576225763257642576525766257672576825769257702577125772257732577425775257762577725778257792578025781257822578325784257852578625787257882578925790257912579225793257942579525796257972579825799258002580125802258032580425805258062580725808258092581025811258122581325814258152581625817258182581925820258212582225823258242582525826258272582825829258302583125832258332583425835258362583725838258392584025841258422584325844258452584625847258482584925850258512585225853258542585525856258572585825859258602586125862258632586425865258662586725868258692587025871258722587325874258752587625877258782587925880258812588225883258842588525886258872588825889258902589125892258932589425895258962589725898258992590025901259022590325904259052590625907259082590925910259112591225913259142591525916259172591825919259202592125922259232592425925259262592725928259292593025931259322593325934259352593625937259382593925940259412594225943259442594525946259472594825949259502595125952259532595425955259562595725958259592596025961259622596325964259652596625967259682596925970259712597225973259742597525976259772597825979259802598125982259832598425985259862598725988259892599025991259922599325994259952599625997259982599926000260012600226003260042600526006260072600826009260102601126012260132601426015260162601726018260192602026021260222602326024260252602626027260282602926030260312603226033260342603526036260372603826039260402604126042260432604426045260462604726048260492605026051260522605326054260552605626057260582605926060260612606226063260642606526066260672606826069260702607126072260732607426075260762607726078260792608026081260822608326084260852608626087260882608926090260912609226093260942609526096260972609826099261002610126102261032610426105261062610726108261092611026111261122611326114261152611626117261182611926120261212612226123261242612526126261272612826129261302613126132261332613426135261362613726138261392614026141261422614326144261452614626147261482614926150261512615226153261542615526156261572615826159261602616126162261632616426165261662616726168261692617026171261722617326174261752617626177261782617926180261812618226183261842618526186261872618826189261902619126192261932619426195261962619726198261992620026201262022620326204262052620626207262082620926210262112621226213262142621526216262172621826219262202622126222262232622426225262262622726228262292623026231262322623326234262352623626237262382623926240262412624226243262442624526246262472624826249262502625126252262532625426255262562625726258262592626026261262622626326264262652626626267262682626926270262712627226273262742627526276262772627826279262802628126282262832628426285262862628726288262892629026291262922629326294262952629626297262982629926300263012630226303263042630526306263072630826309263102631126312263132631426315263162631726318263192632026321263222632326324263252632626327263282632926330263312633226333263342633526336263372633826339263402634126342263432634426345263462634726348263492635026351263522635326354263552635626357263582635926360263612636226363263642636526366263672636826369263702637126372263732637426375263762637726378263792638026381263822638326384263852638626387263882638926390263912639226393263942639526396263972639826399264002640126402264032640426405264062640726408264092641026411264122641326414264152641626417264182641926420264212642226423264242642526426264272642826429264302643126432264332643426435264362643726438264392644026441264422644326444264452644626447264482644926450264512645226453264542645526456264572645826459264602646126462264632646426465264662646726468264692647026471264722647326474264752647626477264782647926480264812648226483264842648526486264872648826489264902649126492264932649426495264962649726498264992650026501265022650326504265052650626507265082650926510265112651226513265142651526516265172651826519265202652126522265232652426525265262652726528265292653026531265322653326534265352653626537265382653926540265412654226543265442654526546265472654826549265502655126552265532655426555265562655726558265592656026561265622656326564265652656626567265682656926570265712657226573265742657526576265772657826579265802658126582265832658426585265862658726588265892659026591265922659326594265952659626597265982659926600266012660226603266042660526606266072660826609266102661126612266132661426615266162661726618266192662026621266222662326624266252662626627266282662926630266312663226633266342663526636266372663826639266402664126642266432664426645266462664726648266492665026651266522665326654266552665626657266582665926660266612666226663266642666526666266672666826669266702667126672266732667426675266762667726678266792668026681266822668326684266852668626687266882668926690266912669226693266942669526696266972669826699267002670126702267032670426705267062670726708267092671026711267122671326714267152671626717267182671926720267212672226723267242672526726267272672826729267302673126732267332673426735267362673726738267392674026741267422674326744267452674626747267482674926750267512675226753267542675526756267572675826759267602676126762267632676426765267662676726768267692677026771267722677326774267752677626777267782677926780267812678226783267842678526786267872678826789267902679126792267932679426795267962679726798267992680026801268022680326804268052680626807268082680926810268112681226813268142681526816268172681826819268202682126822268232682426825268262682726828268292683026831268322683326834268352683626837268382683926840268412684226843268442684526846268472684826849268502685126852268532685426855268562685726858268592686026861268622686326864268652686626867268682686926870268712687226873268742687526876268772687826879268802688126882268832688426885268862688726888268892689026891268922689326894268952689626897268982689926900269012690226903269042690526906269072690826909269102691126912269132691426915269162691726918269192692026921269222692326924269252692626927269282692926930269312693226933269342693526936269372693826939269402694126942269432694426945269462694726948269492695026951269522695326954269552695626957269582695926960269612696226963269642696526966269672696826969269702697126972269732697426975269762697726978269792698026981269822698326984269852698626987269882698926990269912699226993269942699526996269972699826999270002700127002270032700427005270062700727008270092701027011270122701327014270152701627017270182701927020270212702227023270242702527026270272702827029270302703127032270332703427035270362703727038270392704027041270422704327044270452704627047270482704927050270512705227053270542705527056270572705827059270602706127062270632706427065270662706727068270692707027071270722707327074270752707627077270782707927080270812708227083270842708527086270872708827089270902709127092270932709427095270962709727098270992710027101271022710327104271052710627107271082710927110271112711227113271142711527116271172711827119271202712127122271232712427125271262712727128271292713027131271322713327134271352713627137271382713927140271412714227143271442714527146271472714827149271502715127152271532715427155271562715727158271592716027161271622716327164271652716627167271682716927170271712717227173271742717527176271772717827179271802718127182271832718427185271862718727188271892719027191271922719327194271952719627197271982719927200272012720227203272042720527206272072720827209272102721127212272132721427215272162721727218272192722027221272222722327224272252722627227272282722927230272312723227233272342723527236272372723827239272402724127242272432724427245272462724727248272492725027251272522725327254272552725627257272582725927260272612726227263272642726527266272672726827269272702727127272272732727427275272762727727278272792728027281272822728327284272852728627287272882728927290272912729227293272942729527296272972729827299273002730127302273032730427305273062730727308273092731027311273122731327314273152731627317273182731927320273212732227323273242732527326273272732827329273302733127332273332733427335273362733727338273392734027341273422734327344273452734627347273482734927350273512735227353273542735527356273572735827359273602736127362273632736427365273662736727368273692737027371273722737327374273752737627377273782737927380273812738227383273842738527386273872738827389273902739127392273932739427395273962739727398273992740027401274022740327404274052740627407274082740927410274112741227413274142741527416274172741827419274202742127422274232742427425274262742727428274292743027431274322743327434274352743627437274382743927440274412744227443274442744527446274472744827449274502745127452274532745427455274562745727458274592746027461274622746327464274652746627467274682746927470274712747227473274742747527476274772747827479274802748127482274832748427485274862748727488274892749027491274922749327494274952749627497274982749927500275012750227503275042750527506275072750827509275102751127512275132751427515275162751727518275192752027521275222752327524275252752627527275282752927530275312753227533275342753527536275372753827539275402754127542275432754427545275462754727548275492755027551275522755327554275552755627557275582755927560275612756227563275642756527566275672756827569275702757127572275732757427575275762757727578275792758027581275822758327584275852758627587275882758927590275912759227593275942759527596275972759827599276002760127602276032760427605276062760727608276092761027611276122761327614276152761627617276182761927620276212762227623276242762527626276272762827629276302763127632276332763427635276362763727638276392764027641276422764327644276452764627647276482764927650276512765227653276542765527656276572765827659276602766127662276632766427665276662766727668276692767027671276722767327674276752767627677276782767927680276812768227683276842768527686276872768827689276902769127692276932769427695276962769727698276992770027701277022770327704277052770627707277082770927710277112771227713277142771527716277172771827719277202772127722277232772427725277262772727728277292773027731277322773327734277352773627737277382773927740277412774227743277442774527746277472774827749277502775127752277532775427755277562775727758277592776027761277622776327764277652776627767277682776927770277712777227773277742777527776277772777827779277802778127782277832778427785277862778727788277892779027791277922779327794277952779627797277982779927800278012780227803278042780527806278072780827809278102781127812278132781427815278162781727818278192782027821278222782327824278252782627827278282782927830278312783227833278342783527836278372783827839278402784127842278432784427845278462784727848278492785027851278522785327854278552785627857278582785927860278612786227863278642786527866278672786827869278702787127872278732787427875278762787727878278792788027881278822788327884278852788627887278882788927890278912789227893278942789527896278972789827899279002790127902279032790427905279062790727908279092791027911279122791327914279152791627917279182791927920279212792227923279242792527926279272792827929279302793127932279332793427935279362793727938279392794027941279422794327944279452794627947279482794927950279512795227953279542795527956279572795827959279602796127962279632796427965279662796727968279692797027971279722797327974279752797627977279782797927980279812798227983279842798527986279872798827989279902799127992279932799427995279962799727998279992800028001280022800328004280052800628007280082800928010280112801228013280142801528016280172801828019280202802128022280232802428025280262802728028280292803028031280322803328034280352803628037280382803928040280412804228043280442804528046280472804828049280502805128052280532805428055280562805728058280592806028061280622806328064280652806628067280682806928070280712807228073280742807528076280772807828079280802808128082280832808428085280862808728088280892809028091280922809328094280952809628097280982809928100281012810228103281042810528106281072810828109281102811128112281132811428115281162811728118281192812028121281222812328124281252812628127281282812928130281312813228133281342813528136281372813828139281402814128142281432814428145281462814728148281492815028151281522815328154281552815628157281582815928160281612816228163281642816528166281672816828169281702817128172281732817428175281762817728178281792818028181281822818328184281852818628187281882818928190281912819228193281942819528196281972819828199282002820128202282032820428205282062820728208282092821028211282122821328214282152821628217282182821928220282212822228223282242822528226282272822828229282302823128232282332823428235282362823728238282392824028241282422824328244282452824628247282482824928250282512825228253282542825528256282572825828259282602826128262282632826428265282662826728268282692827028271282722827328274282752827628277282782827928280282812828228283282842828528286282872828828289282902829128292282932829428295282962829728298282992830028301283022830328304283052830628307283082830928310283112831228313283142831528316283172831828319283202832128322283232832428325283262832728328283292833028331283322833328334283352833628337283382833928340283412834228343283442834528346283472834828349283502835128352283532835428355283562835728358283592836028361283622836328364283652836628367283682836928370283712837228373283742837528376283772837828379283802838128382283832838428385283862838728388283892839028391283922839328394283952839628397283982839928400284012840228403284042840528406284072840828409284102841128412284132841428415284162841728418284192842028421284222842328424284252842628427284282842928430284312843228433284342843528436284372843828439284402844128442284432844428445284462844728448284492845028451284522845328454284552845628457284582845928460284612846228463284642846528466284672846828469284702847128472284732847428475284762847728478284792848028481284822848328484284852848628487284882848928490284912849228493284942849528496284972849828499285002850128502285032850428505285062850728508285092851028511285122851328514285152851628517285182851928520285212852228523285242852528526285272852828529285302853128532285332853428535285362853728538285392854028541285422854328544285452854628547285482854928550285512855228553285542855528556285572855828559285602856128562285632856428565285662856728568285692857028571285722857328574285752857628577285782857928580285812858228583285842858528586285872858828589285902859128592285932859428595285962859728598285992860028601286022860328604286052860628607286082860928610286112861228613286142861528616286172861828619286202862128622286232862428625286262862728628286292863028631286322863328634286352863628637286382863928640286412864228643286442864528646286472864828649286502865128652286532865428655286562865728658286592866028661286622866328664286652866628667286682866928670286712867228673286742867528676286772867828679286802868128682286832868428685286862868728688286892869028691286922869328694286952869628697286982869928700287012870228703287042870528706287072870828709287102871128712287132871428715287162871728718287192872028721287222872328724287252872628727287282872928730287312873228733287342873528736287372873828739287402874128742287432874428745287462874728748287492875028751287522875328754287552875628757287582875928760287612876228763287642876528766287672876828769287702877128772287732877428775287762877728778287792878028781287822878328784287852878628787287882878928790287912879228793287942879528796287972879828799288002880128802288032880428805288062880728808288092881028811288122881328814288152881628817288182881928820288212882228823288242882528826288272882828829288302883128832288332883428835288362883728838288392884028841288422884328844288452884628847288482884928850288512885228853288542885528856288572885828859288602886128862288632886428865288662886728868288692887028871288722887328874288752887628877288782887928880288812888228883288842888528886288872888828889288902889128892288932889428895288962889728898288992890028901289022890328904289052890628907289082890928910289112891228913289142891528916289172891828919289202892128922289232892428925289262892728928289292893028931289322893328934289352893628937289382893928940289412894228943289442894528946289472894828949289502895128952289532895428955289562895728958289592896028961289622896328964289652896628967289682896928970289712897228973289742897528976289772897828979289802898128982289832898428985289862898728988289892899028991289922899328994289952899628997289982899929000290012900229003290042900529006290072900829009290102901129012290132901429015290162901729018290192902029021290222902329024290252902629027290282902929030290312903229033290342903529036290372903829039290402904129042290432904429045290462904729048290492905029051290522905329054290552905629057290582905929060290612906229063290642906529066290672906829069290702907129072290732907429075290762907729078290792908029081290822908329084290852908629087290882908929090290912909229093290942909529096290972909829099291002910129102291032910429105291062910729108291092911029111291122911329114291152911629117291182911929120291212912229123291242912529126291272912829129291302913129132291332913429135291362913729138291392914029141291422914329144291452914629147291482914929150291512915229153291542915529156291572915829159291602916129162291632916429165291662916729168291692917029171291722917329174291752917629177291782917929180291812918229183291842918529186291872918829189291902919129192291932919429195291962919729198291992920029201292022920329204292052920629207292082920929210292112921229213292142921529216292172921829219292202922129222292232922429225292262922729228292292923029231292322923329234292352923629237292382923929240292412924229243292442924529246292472924829249292502925129252292532925429255292562925729258292592926029261292622926329264292652926629267292682926929270292712927229273292742927529276292772927829279292802928129282292832928429285292862928729288292892929029291292922929329294292952929629297292982929929300293012930229303293042930529306293072930829309293102931129312293132931429315293162931729318293192932029321293222932329324293252932629327293282932929330293312933229333293342933529336293372933829339293402934129342293432934429345293462934729348293492935029351293522935329354293552935629357293582935929360293612936229363293642936529366293672936829369293702937129372293732937429375293762937729378293792938029381293822938329384293852938629387293882938929390293912939229393293942939529396293972939829399294002940129402294032940429405294062940729408294092941029411294122941329414294152941629417294182941929420294212942229423294242942529426294272942829429294302943129432294332943429435294362943729438294392944029441294422944329444294452944629447294482944929450294512945229453294542945529456294572945829459294602946129462294632946429465294662946729468294692947029471294722947329474294752947629477294782947929480294812948229483294842948529486294872948829489294902949129492294932949429495294962949729498294992950029501295022950329504295052950629507295082950929510295112951229513295142951529516295172951829519295202952129522295232952429525295262952729528295292953029531295322953329534295352953629537295382953929540295412954229543295442954529546295472954829549295502955129552295532955429555295562955729558295592956029561295622956329564295652956629567295682956929570295712957229573295742957529576295772957829579295802958129582295832958429585295862958729588295892959029591295922959329594295952959629597295982959929600296012960229603296042960529606296072960829609296102961129612296132961429615296162961729618296192962029621296222962329624296252962629627296282962929630296312963229633296342963529636296372963829639296402964129642296432964429645296462964729648296492965029651296522965329654296552965629657296582965929660296612966229663296642966529666296672966829669296702967129672296732967429675296762967729678296792968029681296822968329684296852968629687296882968929690296912969229693296942969529696296972969829699297002970129702297032970429705297062970729708297092971029711297122971329714297152971629717297182971929720297212972229723297242972529726297272972829729297302973129732297332973429735297362973729738297392974029741297422974329744297452974629747297482974929750297512975229753297542975529756297572975829759297602976129762297632976429765297662976729768297692977029771297722977329774297752977629777297782977929780297812978229783297842978529786297872978829789297902979129792297932979429795297962979729798297992980029801298022980329804298052980629807298082980929810298112981229813298142981529816298172981829819298202982129822298232982429825298262982729828298292983029831298322983329834298352983629837298382983929840298412984229843298442984529846298472984829849298502985129852298532985429855298562985729858298592986029861298622986329864298652986629867298682986929870298712987229873298742987529876298772987829879298802988129882298832988429885298862988729888298892989029891298922989329894298952989629897298982989929900299012990229903299042990529906299072990829909299102991129912299132991429915299162991729918299192992029921299222992329924299252992629927299282992929930299312993229933299342993529936299372993829939299402994129942299432994429945299462994729948299492995029951299522995329954299552995629957299582995929960299612996229963299642996529966299672996829969299702997129972299732997429975299762997729978299792998029981299822998329984299852998629987299882998929990299912999229993299942999529996299972999829999300003000130002300033000430005300063000730008300093001030011300123001330014300153001630017300183001930020300213002230023300243002530026300273002830029300303003130032300333003430035300363003730038300393004030041300423004330044300453004630047300483004930050300513005230053300543005530056300573005830059300603006130062300633006430065300663006730068300693007030071300723007330074300753007630077300783007930080300813008230083300843008530086300873008830089300903009130092300933009430095300963009730098300993010030101301023010330104301053010630107301083010930110301113011230113301143011530116301173011830119301203012130122301233012430125301263012730128301293013030131301323013330134301353013630137301383013930140301413014230143301443014530146301473014830149301503015130152301533015430155301563015730158301593016030161301623016330164301653016630167301683016930170301713017230173301743017530176301773017830179301803018130182301833018430185301863018730188301893019030191301923019330194301953019630197301983019930200302013020230203302043020530206302073020830209302103021130212302133021430215302163021730218302193022030221302223022330224302253022630227302283022930230302313023230233302343023530236302373023830239302403024130242302433024430245302463024730248302493025030251302523025330254302553025630257302583025930260302613026230263302643026530266302673026830269302703027130272302733027430275302763027730278302793028030281302823028330284302853028630287302883028930290302913029230293302943029530296302973029830299303003030130302303033030430305303063030730308303093031030311303123031330314303153031630317303183031930320303213032230323303243032530326303273032830329303303033130332303333033430335303363033730338303393034030341303423034330344303453034630347303483034930350303513035230353303543035530356303573035830359303603036130362303633036430365303663036730368303693037030371303723037330374303753037630377303783037930380303813038230383303843038530386303873038830389303903039130392303933039430395303963039730398303993040030401304023040330404304053040630407304083040930410304113041230413 |
- <?xml version="1.0" ?>
- <!DOCTYPE change_log SYSTEM "../../dtd/changes.dtd" >
- <change_log title="nginx">
- <changes ver="1.27.2" date="2024-10-02">
- <change type="feature">
- <para lang="ru">
- SSL-сертификаты, секретные ключи и списки CRL теперь кешируются
- на старте или во время переконфигурации.
- </para>
- <para lang="en">
- SSL certificates, secret keys, and CRLs are now cached
- on start or during reconfiguration.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- проверка клиентских сертификатов с помощью OCSP в модуле stream.
- </para>
- <para lang="en">
- client certificate validation with OCSP in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка OCSP stapling в модуле stream.
- </para>
- <para lang="en">
- OCSP stapling support in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_pass_trailers в модуле ngx_http_proxy_module.
- </para>
- <para lang="en">
- the "proxy_pass_trailers" directive in the ngx_http_proxy_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_client_certificate теперь поддерживает сертификаты
- с дополнительными данными.
- </para>
- <para lang="en">
- the "ssl_client_certificate" directive now supports certificates
- with auxiliary information.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь наличие директивы ssl_client_certificate не обязательно
- для проверки клиентских SSL-сертификатов.
- </para>
- <para lang="en">
- now the "ssl_client_certificate" directive is not required
- for client SSL certificates verification.
- </para>
- </change>
- </changes>
- <changes ver="1.27.1" date="2024-08-14">
- <change type="security">
- <para lang="ru">
- обработка специально созданного mp4-файла модулем ngx_http_mp4_module
- могла приводить к падению рабочего процесса (CVE-2024-7347).<br/>
- Спасибо Nils Bars.
- </para>
- <para lang="en">
- processing of a specially crafted mp4 file by the ngx_http_mp4_module
- might cause a worker process crash (CVE-2024-7347).<br/>
- Thanks to Nils Bars.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь обработчик в модуле stream не является обязательным.
- </para>
- <para lang="en">
- now the stream module handler is not mandatory.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- новые HTTP/2-соединения могли игнорировать
- плавное завершение старых рабочих процессов.<br/>
- Спасибо Kasei Wang.
- </para>
- <para lang="en">
- new HTTP/2 connections might ignore
- graceful shutdown of old worker processes.<br/>
- Thanks to Kasei Wang.
- </para>
- </change>
- <change>
- <para lang="ru">
- Исправления в HTTP/3.
- </para>
- <para lang="en">
- Bugfixes in HTTP/3.
- </para>
- </change>
- </changes>
- <changes ver="1.27.0" date="2024-05-29">
- <change type="security">
- <para lang="ru">
- при использовании HTTP/3 обработка специально созданной QUIC-сессии могла
- приводить к падению рабочего процесса, отправке клиенту содержимого памяти
- рабочего процесса на системах с MTU больше 4096 байт, а также потенциально
- могла иметь другие последствия
- (CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161).<br/>
- Спасибо Nils Bars из CISPA.
- </para>
- <para lang="en">
- when using HTTP/3, processing of a specially crafted QUIC session might
- cause a worker process crash, worker process memory disclosure on systems
- with MTU larger than 4096 bytes, or might have potential other impact
- (CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161).<br/>
- Thanks to Nils Bars of CISPA.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_limit_rate, fastcgi_limit_rate,
- scgi_limit_rate и uwsgi_limit_rate поддерживают переменные.
- </para>
- <para lang="en">
- variables support
- in the "proxy_limit_rate", "fastcgi_limit_rate", "scgi_limit_rate",
- and "uwsgi_limit_rate" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- уменьшено потребление памяти для долгоживущих запросов,
- если используются директивы gzip, gunzip, ssi, sub_filter или grpc_pass.
- </para>
- <para lang="en">
- reduced memory consumption for long-lived requests
- if "gzip", "gunzip", "ssi", "sub_filter", or "grpc_pass" directives are used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался gcc 14,
- если использовался параметр --with-libatomic.<br/>
- Спасибо Edgar Bonet.
- </para>
- <para lang="en">
- nginx could not be built by gcc 14
- if the --with-libatomic option was used.<br/>
- Thanks to Edgar Bonet.
- </para>
- </change>
- <change>
- <para lang="ru">
- Исправления в HTTP/3.
- </para>
- <para lang="en">
- Bugfixes in HTTP/3.
- </para>
- </change>
- </changes>
- <changes ver="1.25.5" date="2024-04-16">
- <change type="feature">
- <para lang="ru">
- виртуальные сервера в модуле stream.
- </para>
- <para lang="en">
- virtual servers in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_stream_pass_module.
- </para>
- <para lang="en">
- the ngx_stream_pass_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметры deferred, accept_filter и setfib директивы listen в модуле stream.
- </para>
- <para lang="en">
- the "deferred", "accept_filter", and "setfib" parameters of the "listen"
- directive in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- определение размера строки кеша процессора для некоторых архитектур.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- cache line size detection for some architectures.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка Homebrew на Apple Silicon.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- support for Homebrew on Apple Silicon.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- улучшения и исправления кросс-компиляции для Windows.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- Windows cross-compilation bugfixes and improvements.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- неожиданное закрытие соединения при использовании 0-RTT в QUIC.<br/>
- Спасибо Владимиру Хомутову.
- </para>
- <para lang="en">
- unexpected connection closure while using 0-RTT in QUIC.<br/>
- Thanks to Vladimir Khomutov.
- </para>
- </change>
- </changes>
- <changes ver="1.25.4" date="2024-02-14">
- <change type="security">
- <para lang="ru">
- при использовании HTTP/3 в рабочем процессе мог произойти segmentation fault
- во время обработки специально созданной QUIC-сессии
- (CVE-2024-24989, CVE-2024-24990).
- </para>
- <para lang="en">
- when using HTTP/3 a segmentation fault might occur in a worker process
- while processing a specially crafted QUIC session
- (CVE-2024-24989, CVE-2024-24990).
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- соединения с незавершенными AIO-операциями могли закрываться преждевременно
- во время плавного завершения старых рабочих процессов.
- </para>
- <para lang="en">
- connections with pending AIO operations might be closed prematurely
- during graceful shutdown of old worker processes.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь nginx не пишет в лог сообщения об утечке сокетов,
- если во время плавного завершения старых рабочих процессов
- было запрошено быстрое завершение.
- </para>
- <para lang="en">
- socket leak alerts no longer logged when fast shutdown
- was requested after graceful shutdown of old worker processes.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании AIO в подзапросе могла происходить
- ошибка на сокете, утечка сокетов,
- либо segmentation fault в рабочем процессе (при SSL-проксировании).
- </para>
- <para lang="en">
- a socket descriptor error, a socket leak,
- or a segmentation fault in a worker process (for SSL proxying)
- might occur if AIO was used in a subrequest.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалось SSL-проксирование и директива image_filter,
- а ошибки с кодом 415 перенаправлялись с помощью директивы error_page.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if SSL proxying was used along with the "image_filter" directive
- and errors with code 415 were redirected with the "error_page" directive.
- </para>
- </change>
- <change>
- <para lang="ru">
- Исправления и улучшения в HTTP/3.
- </para>
- <para lang="en">
- Bugfixes and improvements in HTTP/3.
- </para>
- </change>
- </changes>
- <changes ver="1.25.3" date="2023-10-24">
- <change type="change">
- <para lang="ru">
- улучшено детектирование некорректного поведения клиентов
- при использовании HTTP/2.
- </para>
- <para lang="en">
- improved detection of misbehaving clients
- when using HTTP/2.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- уменьшение времени запуска
- при использовании большого количества location'ов.<br/>
- Спасибо Yusuke Nojima.
- </para>
- <para lang="en">
- startup speedup
- when using a large number of locations.<br/>
- Thanks to Yusuke Nojima.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 без SSL
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 1.25.1.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using HTTP/2 without SSL;
- the bug had appeared in 1.25.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строка "Status" в заголовке ответа бэкенда с пустой поясняющей фразой
- обрабатывалась некорректно.
- </para>
- <para lang="en">
- the "Status" backend response header line with an empty reason phrase
- was handled incorrectly.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти во время переконфигурации
- при использовании библиотеки PCRE2.<br/>
- Спасибо ZhenZhong Wu.
- </para>
- <para lang="en">
- memory leak during reconfiguration
- when using the PCRE2 library.<br/>
- Thanks to ZhenZhong Wu.
- </para>
- </change>
- <change>
- <para lang="ru">
- Исправления и улучшения в HTTP/3.
- </para>
- <para lang="en">
- Bugfixes and improvements in HTTP/3.
- </para>
- </change>
- </changes>
- <changes ver="1.25.2" date="2023-08-15">
- <change type="feature">
- <para lang="ru">
- path MTU discovery при использовании HTTP/3.
- </para>
- <para lang="en">
- path MTU discovery when using HTTP/3.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка шифра TLS_AES_128_CCM_SHA256 при использовании HTTP/3.
- </para>
- <para lang="en">
- TLS_AES_128_CCM_SHA256 cipher suite support when using HTTP/3.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь при загрузке конфигурации OpenSSL
- nginx использует appname "nginx".
- </para>
- <para lang="en">
- now nginx uses appname "nginx"
- when loading OpenSSL configuration.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx не пытается загружать конфигурацию OpenSSL,
- если для сборки OpenSSL использовался параметр --with-openssl
- и переменная окружения OPENSSL_CONF не установлена.
- </para>
- <para lang="en">
- now nginx does not try to load OpenSSL configuration
- if the --with-openssl option was used to built OpenSSL
- and the OPENSSL_CONF environment variable is not set.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в переменной $body_bytes_sent при использовании HTTP/3.
- </para>
- <para lang="en">
- in the $body_bytes_sent variable when using HTTP/3.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в HTTP/3.
- </para>
- <para lang="en">
- in HTTP/3.
- </para>
- </change>
- </changes>
- <changes ver="1.25.1" date="2023-06-13">
- <change type="feature">
- <para lang="ru">
- директива http2, позволяющая включать HTTP/2 в отдельных блоках server;
- параметр http2 директивы listen объявлен устаревшим.
- </para>
- <para lang="en">
- the "http2" directive, which enables HTTP/2 on a per-server basis;
- the "http2" parameter of the "listen" directive is now deprecated.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- поддержка HTTP/2 server push упразднена.
- </para>
- <para lang="en">
- HTTP/2 server push support has been removed.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- устаревшая директива ssl больше не поддерживается.
- </para>
- <para lang="en">
- the deprecated "ssl" directive is not supported anymore.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в HTTP/3 при использовании OpenSSL.
- </para>
- <para lang="en">
- in HTTP/3 when using OpenSSL.
- </para>
- </change>
- </changes>
- <changes ver="1.25.0" date="2023-05-23">
- <change type="feature">
- <para lang="ru">
- экспериментальная поддержка HTTP/3.
- </para>
- <para lang="en">
- experimental HTTP/3 support.
- </para>
- </change>
- </changes>
- <changes ver="1.23.4" date="2023-03-28">
- <change type="change">
- <para lang="ru">
- теперь протокол TLSv1.3 разрешён по умолчанию.
- </para>
- <para lang="en">
- now TLSv1.3 protocol is enabled by default.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx выдаёт предупреждение
- при переопределении параметров listen-сокета, задающих используемые протоколы.
- </para>
- <para lang="en">
- now nginx issues a warning
- if protocol parameters of a listening socket are redefined.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь, если клиент использует pipelining,
- nginx закрывает соединения с ожиданием дополнительных данных (lingering close).
- </para>
- <para lang="en">
- now nginx closes connections with lingering
- if pipelining was used by the client.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка byte ranges для ответов модуля ngx_http_gzip_static_module.
- </para>
- <para lang="en">
- byte ranges support in the ngx_http_gzip_static_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- диапазоны портов в директиве listen не работали;
- ошибка появилась в 1.23.3.<br/>
- Спасибо Валентину Бартеневу.
- </para>
- <para lang="en">
- port ranges in the "listen" directive did not work;
- the bug had appeared in 1.23.3.<br/>
- Thanks to Valentin Bartenev.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- для обработки запроса мог быть выбран неверный location,
- если в конфигурации использовался
- префиксный location длиннее 255 символов.
- </para>
- <para lang="en">
- incorrect location might be chosen to process a request
- if a prefix location longer than 255 characters
- was used in the configuration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- не-ASCII символы в именах файлов на Windows
- не поддерживались модулями ngx_http_autoindex_module и
- ngx_http_dav_module, а также директивой include.
- </para>
- <para lang="en">
- non-ASCII characters in file names on Windows were not supported
- by the ngx_http_autoindex_module, the ngx_http_dav_module,
- and the "include" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- уровень логгирования ошибок SSL
- "data length too long", "length too short", "bad legacy version",
- "no shared signature algorithms", "bad digest length",
- "missing sigalgs extension", "encrypted length too long",
- "bad length", "bad key update", "mixed handshake and non handshake data",
- "ccs received early", "data between ccs and finished",
- "packet length too long", "too many warn alerts", "record too small",
- и "got a fin before a ccs"
- понижен с уровня crit до info.
- </para>
- <para lang="en">
- the logging level of the
- "data length too long", "length too short", "bad legacy version",
- "no shared signature algorithms", "bad digest length",
- "missing sigalgs extension", "encrypted length too long",
- "bad length", "bad key update", "mixed handshake and non handshake data",
- "ccs received early", "data between ccs and finished",
- "packet length too long", "too many warn alerts", "record too small",
- and "got a fin before a ccs" SSL errors
- has been lowered from "crit" to "info".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 и директивы error_page
- для перенаправления ошибок с кодом 400
- могла происходить утечка сокетов.
- </para>
- <para lang="en">
- a socket leak might occur
- when using HTTP/2 and the "error_page" directive
- to redirect errors with code 400.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- сообщения об ошибках записи в syslog
- не содержали информации о том, что
- ошибки происходили в процессе записи в syslog.<br/>
- Спасибо Safar Safarly.
- </para>
- <para lang="en">
- messages about logging to syslog errors
- did not contain information
- that the errors happened while logging to syslog.<br/>
- Thanks to Safar Safarly.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- при использовании zlib-ng
- в логах появлялись сообщения "gzip filter failed to use preallocated memory".
- </para>
- <para lang="en">
- "gzip filter failed to use preallocated memory" alerts appeared in logs
- when using zlib-ng.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в почтовом прокси-сервере.
- </para>
- <para lang="en">
- in the mail proxy server.
- </para>
- </change>
- </changes>
- <changes ver="1.23.3" date="2022-12-13">
- <change type="bugfix">
- <para lang="ru">
- при чтении заголовка протокола PROXY версии 2, содержащего
- большое количество TLV, могла возникать ошибка.
- </para>
- <para lang="en">
- an error might occur when reading PROXY protocol version 2 header
- with large number of TLVs.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании SSI для обработки подзапросов, созданных другими модулями,
- в рабочем процессе мог произойти segmentation fault.<br/>
- Спасибо Ciel Zhao.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if SSI was used to process subrequests created by other modules.<br/>
- Thanks to Ciel Zhao.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- теперь, если при преобразовании в адреса имени хоста,
- указанного в директиве listen, возвращается несколько адресов,
- nginx игнорирует дубликаты среди этих адресов.
- </para>
- <para lang="en">
- when a hostname used in the "listen" directive
- resolves to multiple addresses,
- nginx now ignores duplicates within these addresses.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог нагружать процессор
- при небуферизированном проксировании,
- если использовались SSL-соединения с бэкендами.
- </para>
- <para lang="en">
- nginx might hog CPU
- during unbuffered proxying
- if SSL connections to backends were used.
- </para>
- </change>
- </changes>
- <changes ver="1.23.2" date="2022-10-19">
- <change type="security">
- <para lang="ru">
- обработка специально созданного mp4-файла модулем ngx_http_mp4_module
- могла приводить к падению рабочего процесса,
- отправке клиенту части содержимого памяти рабочего процесса,
- а также потенциально могла иметь другие последствия
- (CVE-2022-41741, CVE-2022-41742).
- </para>
- <para lang="en">
- processing of a specially crafted mp4 file by the ngx_http_mp4_module
- might cause a worker process crash,
- worker process memory disclosure,
- or might have potential other impact
- (CVE-2022-41741, CVE-2022-41742).
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные "$proxy_protocol_tlv_...".
- </para>
- <para lang="en">
- the "$proxy_protocol_tlv_..." variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ключи шифрования TLS session tickets теперь автоматически меняются
- при использовании разделяемой памяти в ssl_session_cache.
- </para>
- <para lang="en">
- TLS session tickets encryption keys are now automatically rotated
- when using shared memory in the "ssl_session_cache" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- уровень логгирования ошибок SSL "bad record type"
- понижен с уровня crit до info.<br/>
- Спасибо Murilo Andrade.
- </para>
- <para lang="en">
- the logging level of the "bad record type" SSL errors
- has been lowered from "crit" to "info".<br/>
- Thanks to Murilo Andrade.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь при использовании разделяемой памяти в ssl_session_cache
- сообщения "could not allocate new session"
- логгируются на уровне warn вместо alert
- и не чаще одного раза в секунду.
- </para>
- <para lang="en">
- now when using shared memory in the "ssl_session_cache" directive
- the "could not allocate new session" errors
- are logged at the "warn" level instead of "alert"
- and not more often than once per second.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows не собирался с OpenSSL 3.0.x.
- </para>
- <para lang="en">
- nginx/Windows could not be built with OpenSSL 3.0.x.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в логгировании ошибок протокола PROXY.<br/>
- Спасибо Сергею Брестеру.
- </para>
- <para lang="en">
- in logging of the PROXY protocol errors.<br/>
- Thanks to Sergey Brester.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- при использовании TLSv1.3 с OpenSSL
- разделяемая память из ssl_session_cache расходовалась
- в том числе на сессии, использующие TLS session tickets.
- </para>
- <para lang="en">
- shared memory from the "ssl_session_cache" directive
- was spent on sessions using TLS session tickets
- when using TLSv1.3 with OpenSSL.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- таймаут, заданный с помощью директивы ssl_session_timeout,
- не работал при использовании TLSv1.3 с OpenSSL или BoringSSL.
- </para>
- <para lang="en">
- timeout specified with the "ssl_session_timeout" directive
- did not work when using TLSv1.3 with OpenSSL or BoringSSL.
- </para>
- </change>
- </changes>
- <changes ver="1.23.1" date="2022-07-19">
- <change type="feature">
- <para lang="ru">
- оптимизация использования памяти
- в конфигурациях с SSL-проксированием.
- </para>
- <para lang="en">
- memory usage optimization
- in configurations with SSL proxying.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь с помощью параметра "ipv4=off" директивы "resolver"
- можно запретить поиск IPv4-адресов при преобразовании имён в адреса.
- </para>
- <para lang="en">
- looking up of IPv4 addresses while resolving now can be disabled
- with the "ipv4=off" parameter of the "resolver" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- уровень логгирования ошибок SSL "bad key share", "bad extension",
- "bad cipher" и "bad ecpoint"
- понижен с уровня crit до info.
- </para>
- <para lang="en">
- the logging level of the "bad key share", "bad extension",
- "bad cipher", and "bad ecpoint" SSL errors
- has been lowered from "crit" to "info".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при возврате диапазонов
- nginx не удалял строку заголовка "Content-Range",
- если она присутствовала в исходном ответе бэкенда.
- </para>
- <para lang="en">
- while returning byte ranges
- nginx did not remove the "Content-Range" header line
- if it was present in the original backend response.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- проксированный ответ мог быть отправлен не полностью
- при переконфигурации на Linux;
- ошибка появилась в 1.17.5.
- </para>
- <para lang="en">
- a proxied response might be truncated
- during reconfiguration on Linux;
- the bug had appeared in 1.17.5.
- </para>
- </change>
- </changes>
- <changes ver="1.23.0" date="2022-06-21">
- <change>
- <para lang="ru">
- Изменение во внутреннем API:
- теперь строки заголовков представлены связными списками.
- </para>
- <para lang="en">
- Change in internal API:
- now header lines are represented as linked lists.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx объединяет произвольные строки заголовков с одинаковыми именами
- при отправке на FastCGI-, SCGI- и uwsgi-бэкенды,
- в методе $r->header_in() модуля ngx_http_perl_module,
- и при доступе через переменные "$http_...", "$sent_http_...",
- "$sent_trailer_...", "$upstream_http_..." и "$upstream_trailer_...".
- </para>
- <para lang="en">
- now nginx combines arbitrary header lines with identical names
- when sending to FastCGI, SCGI, and uwsgi backends,
- in the $r->header_in() method of the ngx_http_perl_module,
- and during lookup of the "$http_...", "$sent_http_...",
- "$sent_trailer_...", "$upstream_http_...", and "$upstream_trailer_..."
- variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в заголовке ответа бэкенда было несколько строк "Vary",
- при кэшировании nginx учитывал только последнюю из них.
- </para>
- <para lang="en">
- if there were multiple "Vary" header lines in the backend response,
- nginx only used the last of them when caching.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в заголовке ответа бэкенда было несколько строк "WWW-Authenticate"
- и использовался перехват ошибок с кодом 401 от бэкенда
- или директива auth_request,
- nginx пересылал клиенту только первую из этих строк.
- </para>
- <para lang="en">
- if there were multiple "WWW-Authenticate" header lines in the backend response
- and errors with code 401 were intercepted
- or the "auth_request" directive was used,
- nginx only sent the first of the header lines to the client.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- уровень логгирования ошибок SSL "application data after close notify"
- понижен с уровня crit до info.
- </para>
- <para lang="en">
- the logging level of the "application data after close notify" SSL errors
- has been lowered from "crit" to "info".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- соединения могли зависать, если nginx был собран на Linux 2.6.17 и новее,
- а использовался на системах без поддержки EPOLLRDHUP, в частности, на
- системах с эмуляцией epoll;
- ошибка появилась в 1.17.5.<br/>
- Спасибо Marcus Ball.
- </para>
- <para lang="en">
- connections might hang if nginx was built on Linux 2.6.17 or newer,
- but was used on systems without EPOLLRDHUP support, notably with epoll
- emulation layers;
- the bug had appeared in 1.17.5.<br/>
- Thanks to Marcus Ball.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не кэшировал ответ,
- если строка заголовка ответа "Expires" запрещала кэширование,
- а последующая строка заголовка "Cache-Control" разрешала кэширование.
- </para>
- <para lang="en">
- nginx did not cache the response
- if the "Expires" response header line disabled caching,
- but following "Cache-Control" header line enabled caching.
- </para>
- </change>
- </changes>
- <changes ver="1.21.6" date="2022-01-25">
- <change type="bugfix">
- <para lang="ru">
- при использование EPOLLEXCLUSIVE на Linux
- распределение клиентских соединений между рабочими процессами
- было неравномерным.
- </para>
- <para lang="en">
- when using EPOLLEXCLUSIVE on Linux
- client connections were unevenly distributed
- among worker processes.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- во время плавного завершения старых рабочих процессов
- nginx возвращал в ответах строку заголовка "Connection: keep-alive".
- </para>
- <para lang="en">
- nginx returned the "Connection: keep-alive" header line in responses
- during graceful shutdown of old worker processes.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве ssl_session_ticket_key при использовании TLSv1.3.
- </para>
- <para lang="en">
- in the "ssl_session_ticket_key" when using TLSv1.3.
- </para>
- </change>
- </changes>
- <changes ver="1.21.5" date="2021-12-28">
- <change type="change">
- <para lang="ru">
- теперь nginx по умолчанию собирается с библиотекой PCRE2.
- </para>
- <para lang="en">
- now nginx is built with the PCRE2 library by default.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx всегда использует sendfile(SF_NODISKIO) на FreeBSD.
- </para>
- <para lang="en">
- now nginx always uses sendfile(SF_NODISKIO) on FreeBSD.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка sendfile(SF_NOCACHE) на FreeBSD.
- </para>
- <para lang="en">
- support for sendfile(SF_NOCACHE) on FreeBSD.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $ssl_curve.
- </para>
- <para lang="en">
- the $ssl_curve variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 без SSL вместе с директивами sendfile и aio
- соединения могли зависать.
- </para>
- <para lang="en">
- connections might hang
- when using HTTP/2 without SSL with the "sendfile" and "aio" directives.
- </para>
- </change>
- </changes>
- <changes ver="1.21.4" date="2021-11-02">
- <change type="change">
- <para lang="ru">
- поддержка NPN вместо ALPN для установления HTTP/2-соединений
- упразднена.
- </para>
- <para lang="en">
- support for NPN instead of ALPN to establish HTTP/2 connections
- has been removed.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx закрывает SSL соединение, если клиент использует ALPN,
- но nginx не поддерживает ни один из присланных клиентом протоколов.
- </para>
- <para lang="en">
- now nginx rejects SSL connections if ALPN is used by the client,
- but no supported protocols can be negotiated.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- в директиве sendfile_max_chunk значение по умолчанию
- изменено на 2 мегабайта.
- </para>
- <para lang="en">
- the default value of the "sendfile_max_chunk" directive
- was changed to 2 megabytes.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_half_close в модуле stream.
- </para>
- <para lang="en">
- the "proxy_half_close" directive in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_alpn в модуле stream.
- </para>
- <para lang="en">
- the "ssl_alpn" directive in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $ssl_alpn_protocol.
- </para>
- <para lang="en">
- the $ssl_alpn_protocol variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка SSL_sendfile() при использовании OpenSSL 3.0.
- </para>
- <para lang="en">
- support for SSL_sendfile() when using OpenSSL 3.0.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива mp4_start_key_frame в модуле ngx_http_mp4_module.<br/>
- Спасибо Tracey Jaquith.
- </para>
- <para lang="en">
- the "mp4_start_key_frame" directive in the ngx_http_mp4_module.<br/>
- Thanks to Tracey Jaquith.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в переменной $content_length при использовании chunked transfer encoding.
- </para>
- <para lang="en">
- in the $content_length variable when using chunked transfer encoding.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при получении ответа некорректной длины от проксируемого бэкенда
- nginx мог тем не менее закэшировать соединение.<br/>
- Спасибо Awdhesh Mathpal.
- </para>
- <para lang="en">
- after receiving a response with incorrect length from a proxied backend
- nginx might nevertheless cache the connection.<br/>
- Thanks to Awdhesh Mathpal.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- некорректные заголовки от бэкендов
- логгировались на уровне info вместо error;
- ошибка появилась в 1.21.1.
- </para>
- <para lang="en">
- invalid headers from backends
- were logged at the "info" level instead of "error";
- the bug had appeared in 1.21.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 и директивы aio_write
- запросы могли зависать.
- </para>
- <para lang="en">
- requests might hang
- when using HTTP/2 and the "aio_write" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.21.3" date="2021-09-07">
- <change type="change">
- <para lang="ru">
- оптимизация чтения тела запроса
- при использовании HTTP/2.
- </para>
- <para lang="en">
- optimization of client request body reading
- when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- во внутреннем API для обработки тела запроса
- при использовании HTTP/2 и буферизации обрабатываемых данных.
- </para>
- <para lang="en">
- in request body filters internal API
- when using HTTP/2 and buffering of the data being processed.
- </para>
- </change>
- </changes>
- <changes ver="1.21.2" date="2021-08-31">
- <change type="change">
- <para lang="ru">
- теперь nginx возвращает ошибку,
- если в запросе по протоколу HTTP/1.0 присутствует
- строка заголовка "Transfer-Encoding".
- </para>
- <para lang="en">
- now nginx rejects HTTP/1.0 requests
- with the "Transfer-Encoding" header line.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- экспортные шифры больше не поддерживаются.
- </para>
- <para lang="en">
- export ciphers are no longer supported.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- совместимость с OpenSSL 3.0.
- </para>
- <para lang="en">
- OpenSSL 3.0 compatibility.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь серверу аутентификации почтового прокси-сервера
- передаются строки заголовка "Auth-SSL-Protocol" и "Auth-SSL-Cipher".<br/>
- Спасибо Rob Mueller.
- </para>
- <para lang="en">
- the "Auth-SSL-Protocol" and "Auth-SSL-Cipher" header lines
- are now passed to the mail proxy authentication server.<br/>
- Thanks to Rob Mueller.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- API для обработки тела запроса
- теперь позволяет буферизировать обрабатываемые данные.
- </para>
- <para lang="en">
- request body filters API
- now permits buffering of the data being processed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL-соединения к бэкендам в модуле stream
- могли зависать после SSL handshake.
- </para>
- <para lang="en">
- backend SSL connections in the stream module
- might hang after an SSL handshake.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- уровень безопасности, доступный в OpenSSL 1.1.0 и новее,
- не учитывался при загрузке сертификатов сервера,
- если был задан через "@SECLEVEL=N" в директиве ssl_ciphers.
- </para>
- <para lang="en">
- the security level, which is available in OpenSSL 1.1.0 or newer,
- did not affect loading of the server certificates
- when set with "@SECLEVEL=N" in the "ssl_ciphers" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL-соединения с gRPC-бэкендами могли зависать,
- если использовались методы select, poll или /dev/poll.
- </para>
- <para lang="en">
- SSL connections with gRPC backends might hang
- if select, poll, or /dev/poll methods were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2
- тело запроса всегда записывалось на диск,
- если в запросе не было строки заголовка "Content-Length".
- </para>
- <para lang="en">
- when using HTTP/2
- client request body was always written to disk
- if the "Content-Length" header line was not present in the request.
- </para>
- </change>
- </changes>
- <changes ver="1.21.1" date="2021-07-06">
- <change type="change">
- <para lang="ru">
- теперь nginx для метода CONNECT всегда возвращает ошибку.
- </para>
- <para lang="en">
- now nginx always returns an error for the CONNECT method.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx всегда возвращает ошибку,
- если в запросе одновременно присутствуют строки заголовка "Content-Length"
- и "Transfer-Encoding".
- </para>
- <para lang="en">
- now nginx always returns an error
- if both "Content-Length" and "Transfer-Encoding" header lines
- are present in the request.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx всегда возвращает ошибку,
- если в строке запроса используются пробелы или управляющие символы.
- </para>
- <para lang="en">
- now nginx always returns an error
- if spaces or control characters are used in the request line.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx всегда возвращает ошибку,
- если в имени заголовка используются пробелы или управляющие символы.
- </para>
- <para lang="en">
- now nginx always returns an error
- if spaces or control characters are used in a header name.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx всегда возвращает ошибку,
- если в строке "Host" заголовка запроса
- используются пробелы или управляющие символы.
- </para>
- <para lang="en">
- now nginx always returns an error
- if spaces or control characters
- are used in the "Host" request header line.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- оптимизация тестирования конфигурации
- при использовании большого количества listen-сокетов.
- </para>
- <para lang="en">
- optimization of configuration testing
- when using many listening sockets.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не экранировал
- символы """, "<", ">", "\", "^", "`", "{", "|", и "}"
- при проксировании с изменением URI запроса.
- </para>
- <para lang="en">
- nginx did not escape
- """, "<", ">", "\", "^", "`", "{", "|", and "}" characters
- when proxying with changed URI.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL-переменные могли быть пустыми при записи в лог;
- ошибка появилась в 1.19.5.
- </para>
- <para lang="en">
- SSL variables might be empty when used in logs;
- the bug had appeared in 1.19.5.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- keepalive-соединения с gRPC-бэкендами могли не закрываться
- после получения GOAWAY-фрейма.
- </para>
- <para lang="en">
- keepalive connections with gRPC backends might not be closed
- after receiving a GOAWAY frame.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- уменьшено потребление памяти для долгоживущих запросов
- при проксировании с использованием более 64 буферов.
- </para>
- <para lang="en">
- reduced memory consumption for long-lived requests
- when proxying with more than 64 buffers.
- </para>
- </change>
- </changes>
- <changes ver="1.21.0" date="2021-05-25">
- <change type="security">
- <para lang="ru">
- при использовании директивы resolver
- во время обработки ответа DNS-сервера
- могла происходить перезапись одного байта памяти,
- что позволяло атакующему,
- имеющему возможность подделывать UDP-пакеты от DNS-сервера,
- вызвать падение рабочего процесса
- или, потенциально, выполнение произвольного кода (CVE-2021-23017).
- </para>
- <para lang="en">
- 1-byte memory overwrite might occur
- during DNS server response processing
- if the "resolver" directive was used,
- allowing an attacker
- who is able to forge UDP packets from the DNS server
- to cause worker process crash
- or, potentially, arbitrary code execution (CVE-2021-23017).
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_ssl_certificate, proxy_ssl_certificate_key,
- grpc_ssl_certificate, grpc_ssl_certificate_key,
- uwsgi_ssl_certificate и uwsgi_ssl_certificate_key
- поддерживают переменные.
- </para>
- <para lang="en">
- variables support
- in the "proxy_ssl_certificate", "proxy_ssl_certificate_key"
- "grpc_ssl_certificate", "grpc_ssl_certificate_key",
- "uwsgi_ssl_certificate", and "uwsgi_ssl_certificate_key" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива max_errors в почтовом прокси-сервере.
- </para>
- <para lang="en">
- the "max_errors" directive in the mail proxy module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- почтовый прокси-сервер поддерживает POP3 и IMAP pipelining.
- </para>
- <para lang="en">
- the mail proxy module supports POP3 and IMAP pipelining.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр fastopen директивы listen в модуле stream.<br/>
- Спасибо Anbang Wen.
- </para>
- <para lang="en">
- the "fastopen" parameter of the "listen" directive in the stream module.<br/>
- Thanks to Anbang Wen.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- специальные символы не экранировались
- при автоматическом перенаправлении с добавлением завершающего слэша.
- </para>
- <para lang="en">
- special characters were not escaped
- during automatic redirect with appended trailing slash.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании SMTP pipelining
- соединения с клиентами в почтовом прокси-сервере
- могли неожиданно закрываться.
- </para>
- <para lang="en">
- connections with clients in the mail proxy module
- might be closed unexpectedly
- when using SMTP pipelining.
- </para>
- </change>
- </changes>
- <changes ver="1.19.10" date="2021-04-13">
- <change type="change">
- <para lang="ru">
- в директиве keepalive_requests значение по умолчанию изменено на 1000.
- </para>
- <para lang="en">
- the default value of the "keepalive_requests" directive was changed to 1000.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива keepalive_time.
- </para>
- <para lang="en">
- the "keepalive_time" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $connection_time.
- </para>
- <para lang="en">
- the $connection_time variable.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- при использовании zlib-ng
- в логах появлялись сообщения "gzip filter failed to use preallocated memory".
- </para>
- <para lang="en">
- "gzip filter failed to use preallocated memory" alerts appeared in logs
- when using zlib-ng.
- </para>
- </change>
- </changes>
- <changes ver="1.19.9" date="2021-03-30">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с почтовым прокси-сервером,
- но без модуля ngx_mail_ssl_module;
- ошибка появилась в 1.19.8.
- </para>
- <para lang="en">
- nginx could not be built with the mail proxy module,
- but without the ngx_mail_ssl_module;
- the bug had appeared in 1.19.8.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при работе с gRPC-бэкендами могли возникать ошибки
- "upstream sent response body larger than indicated content length";
- ошибка появилась в 1.19.1.
- </para>
- <para lang="en">
- "upstream sent response body larger than indicated content length"
- errors might occur when working with gRPC backends;
- the bug had appeared in 1.19.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если клиент закрывал соединение в момент отбрасывания тела запроса,
- nginx мог не закрыть соединение до истечения keepalive-таймаута.
- </para>
- <para lang="en">
- nginx might not close a connection till keepalive timeout expiration
- if the connection was closed by the client while discarding the request body.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при ожидании задержки limit_req или auth_delay, а также при работе с бэкендами
- nginx мог не обнаружить, что соединение уже закрыто клиентом.
- </para>
- <para lang="en">
- nginx might not detect that a connection was already closed by the client
- when waiting for auth_delay or limit_req delay, or when working with backends.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в методе обработки соединений eventport.
- </para>
- <para lang="en">
- in the eventport method.
- </para>
- </change>
- </changes>
- <changes ver="1.19.8" date="2021-03-09">
- <change type="feature">
- <para lang="ru">
- в директиве proxy_cookie_flags теперь
- флаги можно задавать с помощью переменных.
- </para>
- <para lang="en">
- flags in the "proxy_cookie_flags" directive
- can now contain variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр proxy_protocol в директиве listen,
- директивы proxy_protocol и set_real_ip_from
- в почтовом прокси-сервере.
- </para>
- <para lang="en">
- the "proxy_protocol" parameter of the "listen" directive,
- the "proxy_protocol" and "set_real_ip_from" directives
- in mail proxy.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- HTTP/2-соединения сразу закрывались
- при использовании "keepalive_timeout 0";
- ошибка появилась в 1.19.7.
- </para>
- <para lang="en">
- HTTP/2 connections were immediately closed
- when using "keepalive_timeout 0";
- the bug had appeared in 1.19.7.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- некоторые ошибки логгировались как неизвестные,
- если nginx был собран с glibc 2.32.
- </para>
- <para lang="en">
- some errors were logged as unknown
- if nginx was built with glibc 2.32.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в методе обработки соединений eventport.
- </para>
- <para lang="en">
- in the eventport method.
- </para>
- </change>
- </changes>
- <changes ver="1.19.7" date="2021-02-16">
- <change type="change">
- <para lang="ru">
- обработка соединений в HTTP/2 была изменена
- и теперь более соответствует HTTP/1.x;
- директивы http2_recv_timeout, http2_idle_timeout
- и http2_max_requests упразднены,
- вместо них следует использовать директивы
- keepalive_timeout и keepalive_requests.
- </para>
- <para lang="en">
- connections handling in HTTP/2 has been changed
- to better match HTTP/1.x;
- the "http2_recv_timeout", "http2_idle_timeout",
- and "http2_max_requests" directives have been removed,
- the "keepalive_timeout" and "keepalive_requests" directives
- should be used instead.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директивы http2_max_field_size и http2_max_header_size упразднены,
- вместо них следует использовать директиву large_client_header_buffers.
- </para>
- <para lang="en">
- the "http2_max_field_size" and "http2_max_header_size" directives
- have been removed,
- the "large_client_header_buffers" directive should be used instead.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь при исчерпании свободных соединений
- nginx закрывает не только keepalive-соединения,
- но и соединения в lingering close.
- </para>
- <para lang="en">
- now, if free worker connections are exhausted,
- nginx starts closing not only keepalive connections,
- but also connections in lingering close.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в логах могли появляться сообщения "zero size buf in output",
- если бэкенд возвращал некорректный ответ
- при небуферизированном проксировании;
- ошибка появилась в 1.19.1.
- </para>
- <para lang="en">
- "zero size buf in output" alerts might appear in logs
- if an upstream server returned an incorrect response
- during unbuffered proxying;
- the bug had appeared in 1.19.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы return
- вместе с image_filter или xslt_stylesheet
- HEAD-запросы обрабатывались некорректно.
- </para>
- <para lang="en">
- HEAD requests were handled incorrectly
- if the "return" directive was used
- with the "image_filter" or "xslt_stylesheet" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве add_trailer.
- </para>
- <para lang="en">
- in the "add_trailer" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.19.6" date="2020-12-15">
- <change type="bugfix">
- <para lang="ru">
- ошибки "no live upstreams",
- если server в блоке upstream был помечен как down.
- </para>
- <para lang="en">
- "no live upstreams" errors
- if a "server" inside "upstream" block was marked as "down".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTPS в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 1.19.5.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process if HTTPS was used;
- the bug had appeared in 1.19.5.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx возвращал ошибку 400 на запросы вида
- <nobr>"GET http://example.com?args HTTP/1.0"</nobr>.
- </para>
- <para lang="en">
- nginx returned the 400 response on requests like
- <nobr>"GET http://example.com?args HTTP/1.0"</nobr>.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модулях ngx_http_flv_module и ngx_http_mp4_module.<br/>
- Спасибо Chris Newton.
- </para>
- <para lang="en">
- in the ngx_http_flv_module and ngx_http_mp4_module.<br/>
- Thanks to Chris Newton.
- </para>
- </change>
- </changes>
- <changes ver="1.19.5" date="2020-11-24">
- <change type="feature">
- <para lang="ru">
- ключ -e.
- </para>
- <para lang="en">
- the -e switch.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- при сборке дополнительных модулей
- теперь можно указывать одни и те же исходные файлы в разных модулях.
- </para>
- <para lang="en">
- the same source files can now be specified in different modules
- while building addon modules.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL shutdown не работал
- при закрытии соединений с ожиданием дополнительных данных (lingering close).
- </para>
- <para lang="en">
- SSL shutdown did not work
- when lingering close was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при работе с gRPC-бэкендами
- могли возникать ошибки "upstream sent frame for closed stream".
- </para>
- <para lang="en">
- "upstream sent frame for closed stream" errors might occur
- when working with gRPC backends.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- во внутреннем API для обработки тела запроса.
- </para>
- <para lang="en">
- in request body filters internal API.
- </para>
- </change>
- </changes>
- <changes ver="1.19.4" date="2020-10-27">
- <change type="feature">
- <para lang="ru">
- директивы ssl_conf_command, proxy_ssl_conf_command, grpc_ssl_conf_command
- и uwsgi_ssl_conf_command.
- </para>
- <para lang="en">
- the "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command",
- and "uwsgi_ssl_conf_command" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_reject_handshake.
- </para>
- <para lang="en">
- the "ssl_reject_handshake" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_smtp_auth в почтовом прокси-сервере.
- </para>
- <para lang="en">
- the "proxy_smtp_auth" directive in mail proxy.
- </para>
- </change>
- </changes>
- <changes ver="1.19.3" date="2020-09-29">
- <change type="feature">
- <para lang="ru">
- модуль ngx_stream_set_module.
- </para>
- <para lang="en">
- the ngx_stream_set_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_cookie_flags.
- </para>
- <para lang="en">
- the "proxy_cookie_flags" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива userid_flags.
- </para>
- <para lang="en">
- the "userid_flags" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- расширение управления кэшированием stale-if-error
- ошибочно применялось, если бэкенд возвращал ответ
- с кодом 500, 502, 503, 504, 403, 404 или 429.
- </para>
- <para lang="en">
- the "stale-if-error" cache control extension
- was erroneously applied if backend returned a response
- with status code 500, 502, 503, 504, 403, 404, or 429.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если использовалось кэширование
- и бэкенд возвращал ответы с строкой заголовка Vary,
- в логах могли появляться сообщения "[crit] cache file ... has too long header".
- </para>
- <para lang="en">
- "[crit] cache file ... has too long header" messages might appear in logs
- if caching was used
- and the backend returned responses with the "Vary" header line.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- при использовании OpenSSL 1.1.1
- в логах могли появляться сообщения "[crit] SSL_write() failed".
- </para>
- <para lang="en">
- "[crit] SSL_write() failed" messages might appear in logs
- when using OpenSSL 1.1.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в логах могли появляться сообщения
- "SSL_shutdown() failed (SSL: ... bad write retry)";
- ошибка появилась в 1.19.2.
- </para>
- <para lang="en">
- "SSL_shutdown() failed (SSL: ... bad write retry)"
- messages might appear in logs;
- the bug had appeared in 1.19.2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2
- в рабочем процессе мог произойти segmentation fault,
- если ошибки с кодом 400 с помощью директивы error_page
- перенаправлялись в проксируемый location.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using HTTP/2
- if errors with code 400 were redirected to a proxied location
- using the "error_page" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов при использовании HTTP/2 и подзапросов в модуле njs.
- </para>
- <para lang="en">
- socket leak when using HTTP/2 and subrequests in the njs module.
- </para>
- </change>
- </changes>
- <changes ver="1.19.2" date="2020-08-11">
- <change type="change">
- <para lang="ru">
- теперь nginx начинает закрывать keepalive-соединения,
- не дожидаясь исчерпания всех свободных соединений,
- а также пишет об этом предупреждение в лог ошибок.
- </para>
- <para lang="en">
- now nginx starts closing keepalive connections
- before all free worker connections are exhausted,
- and logs a warning about this to the error log.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- оптимизация чтения тела запроса
- при использовании chunked transfer encoding.
- </para>
- <para lang="en">
- optimization of client request body reading
- when using chunked transfer encoding.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти при использовании директивы ssl_ocsp.
- </para>
- <para lang="en">
- memory leak if the "ssl_ocsp" directive was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в логах могли появляться сообщения "zero size buf in output",
- если FastCGI-сервер возвращал некорректный ответ;
- ошибка появилась в 1.19.1.
- </para>
- <para lang="en">
- "zero size buf in output" alerts might appear in logs
- if a FastCGI server returned an incorrect response;
- the bug had appeared in 1.19.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если размеры large_client_header_buffers отличались
- в разных виртуальных серверах.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if different large_client_header_buffers sizes were used
- in different virtual servers.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL shutdown мог не работать.
- </para>
- <para lang="en">
- SSL shutdown might not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в логах могли появляться сообщения
- "SSL_shutdown() failed (SSL: ... bad write retry)".
- </para>
- <para lang="en">
- "SSL_shutdown() failed (SSL: ... bad write retry)"
- messages might appear in logs.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_slice_module.
- </para>
- <para lang="en">
- in the ngx_http_slice_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_xslt_filter_module.
- </para>
- <para lang="en">
- in the ngx_http_xslt_filter_module.
- </para>
- </change>
- </changes>
- <changes ver="1.19.1" date="2020-07-07">
- <change type="change">
- <para lang="ru">
- директивы lingering_close, lingering_time и lingering_timeout
- теперь работают при использовании HTTP/2.
- </para>
- <para lang="en">
- the "lingering_close", "lingering_time", and "lingering_timeout" directives
- now work when using HTTP/2.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь лишние данные, присланные бэкендом, всегда отбрасываются.
- </para>
- <para lang="en">
- now extra data sent by a backend are always discarded.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь при получении слишком короткого ответа от FastCGI-сервера
- nginx пытается отправить клиенту доступную часть ответа,
- после чего закрывает соединение с клиентом.
- </para>
- <para lang="en">
- now after receiving a too short response from a FastCGI server
- nginx tries to send the available part of the response to the client,
- and then closes the client connection.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь при получении ответа некорректной длины от gRPC-бэкенда
- nginx прекращает обработку ответа с ошибкой.
- </para>
- <para lang="en">
- now after receiving a response with incorrect length from a gRPC backend
- nginx stops response processing with an error.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр min_free в директивах proxy_cache_path, fastcgi_cache_path,
- scgi_cache_path и uwsgi_cache_path.<br/>
- Спасибо Adam Bambuch.
- </para>
- <para lang="en">
- the "min_free" parameter of the "proxy_cache_path", "fastcgi_cache_path",
- "scgi_cache_path", and "uwsgi_cache_path" directives.<br/>
- Thanks to Adam Bambuch.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не удалял unix domain listen-сокеты
- при плавном завершении по сигналу SIGQUIT.
- </para>
- <para lang="en">
- nginx did not delete unix domain listen sockets
- during graceful shutdown on the SIGQUIT signal.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- UDP-пакеты нулевого размера не проксировались.
- </para>
- <para lang="en">
- zero length UDP datagrams were not proxied.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- проксирование на uwsgi-бэкенды с использованием SSL могло не работать.<br/>
- Спасибо Guanzhong Chen.
- </para>
- <para lang="en">
- proxying to uwsgi backends using SSL might not work.<br/>
- Thanks to Guanzhong Chen.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок при использовании директивы ssl_ocsp.
- </para>
- <para lang="en">
- in error handling when using the "ssl_ocsp" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании файловых систем XFS и NFS
- размер кэша на диске мог считаться некорректно.
- </para>
- <para lang="en">
- on XFS and NFS file systems
- disk cache size might be calculated incorrectly.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если сервер memcached возвращал некорректный ответ,
- в логах могли появляться сообщения "negative size buf in writer".
- </para>
- <para lang="en">
- "negative size buf in writer" alerts might appear in logs
- if a memcached server returned a malformed response.
- </para>
- </change>
- </changes>
- <changes ver="1.19.0" date="2020-05-26">
- <change type="feature">
- <para lang="ru">
- проверка клиентских сертификатов с помощью OCSP.
- </para>
- <para lang="en">
- client certificate validation with OCSP.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при работе с gRPC-бэкендами
- могли возникать ошибки "upstream sent frame for closed stream".
- </para>
- <para lang="en">
- "upstream sent frame for closed stream" errors might occur
- when working with gRPC backends.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- OCSP stapling мог не работать,
- если не была указана директива resolver.
- </para>
- <para lang="en">
- OCSP stapling might not work
- if the "resolver" directive was not specified.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- соединения с некорректным HTTP/2 preface не логгировались.
- </para>
- <para lang="en">
- connections with incorrect HTTP/2 preface were not logged.
- </para>
- </change>
- </changes>
- <changes ver="1.17.10" date="2020-04-14">
- <change type="feature">
- <para lang="ru">
- директива auth_delay.
- </para>
- <para lang="en">
- the "auth_delay" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.17.9" date="2020-03-03">
- <change type="change">
- <para lang="ru">
- теперь nginx не разрешает
- несколько строк "Host" в заголовке запроса.
- </para>
- <para lang="en">
- now nginx does not allow
- several "Host" request header lines.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx игнорировал дополнительные
- строки "Transfer-Encoding" в заголовке запроса.
- </para>
- <para lang="en">
- nginx ignored additional
- "Transfer-Encoding" request header lines.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов при использовании HTTP/2.
- </para>
- <para lang="en">
- socket leak when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовался OCSP stapling.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if OCSP stapling was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_mp4_module.
- </para>
- <para lang="en">
- in the ngx_http_mp4_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при перенаправлении ошибок с кодом 494 с помощью директивы error_page
- nginx возвращал ответ с кодом 494 вместо 400.
- </para>
- <para lang="en">
- nginx used status code 494 instead of 400
- if errors with code 494 were redirected with the "error_page" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов при использовании подзапросов в модуле njs и директивы aio.
- </para>
- <para lang="en">
- socket leak when using subrequests in the njs module and the "aio" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.17.8" date="2020-01-21">
- <change type="feature">
- <para lang="ru">
- директива grpc_pass поддерживает переменные.
- </para>
- <para lang="en">
- variables support in the "grpc_pass" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при обработке pipelined-запросов по SSL-соединению мог произойти таймаут;
- ошибка появилась в 1.17.5.
- </para>
- <para lang="en">
- a timeout might occur while handling pipelined requests in an SSL connection;
- the bug had appeared in 1.17.5.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве debug_points при использовании HTTP/2.<br/>
- Спасибо Даниилу Бондареву.
- </para>
- <para lang="en">
- in the "debug_points" directive when using HTTP/2.<br/>
- Thanks to Daniil Bondarev.
- </para>
- </change>
- </changes>
- <changes ver="1.17.7" date="2019-12-24">
- <change type="bugfix">
- <para lang="ru">
- на старте или во время переконфигурации мог произойти segmentation fault,
- если в конфигурации использовалась
- директива rewrite с пустой строкой замены.
- </para>
- <para lang="en">
- a segmentation fault might occur on start or during reconfiguration
- if the "rewrite" directive with an empty replacement string
- was used in the configuration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если директива break использовалась совместно с директивой alias
- или директивой proxy_pass с URI.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "break" directive was used with the "alias" directive
- or with the "proxy_pass" directive with a URI.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строка Location заголовка ответа могла содержать мусор,
- если URI запроса был изменён на URI, содержащий нулевой символ.
- </para>
- <para lang="en">
- the "Location" response header line might contain garbage
- if the request URI was rewritten to the one containing a null character.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при возврате перенаправлений с помощью директивы error_page
- запросы с телом обрабатывались некорректно;
- ошибка появилась в 0.7.12.
- </para>
- <para lang="en">
- requests with bodies were handled incorrectly
- when returning redirections with the "error_page" directive;
- the bug had appeared in 0.7.12.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов при использовании HTTP/2.
- </para>
- <para lang="en">
- socket leak when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при обработке pipelined-запросов по SSL-соединению мог произойти таймаут;
- ошибка появилась в 1.17.5.
- </para>
- <para lang="en">
- a timeout might occur while handling pipelined requests in an SSL connection;
- the bug had appeared in 1.17.5.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_dav_module.
- </para>
- <para lang="en">
- in the ngx_http_dav_module.
- </para>
- </change>
- </changes>
- <changes ver="1.17.6" date="2019-11-19">
- <change type="feature">
- <para lang="ru">
- переменные $proxy_protocol_server_addr и $proxy_protocol_server_port.
- </para>
- <para lang="en">
- the $proxy_protocol_server_addr and $proxy_protocol_server_port variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива limit_conn_dry_run.
- </para>
- <para lang="en">
- the "limit_conn_dry_run" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $limit_req_status и $limit_conn_status.
- </para>
- <para lang="en">
- the $limit_req_status and $limit_conn_status variables.
- </para>
- </change>
- </changes>
- <changes ver="1.17.5" date="2019-10-22">
- <change type="feature">
- <para lang="ru">
- теперь nginx использует вызов ioctl(FIONREAD), если он доступен,
- чтобы избежать чтения из быстрого соединения в течение долгого времени.
- </para>
- <para lang="en">
- now nginx uses ioctl(FIONREAD), if available,
- to avoid reading from a fast connection for a long time.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- неполные закодированные символы в конце URI запроса игнорировались.
- </para>
- <para lang="en">
- incomplete escaped characters at the end of the request URI were ignored.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- "/." и "/.." в конце URI запроса не нормализовывались.
- </para>
- <para lang="en">
- "/." and "/.." at the end of the request URI were not normalized.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве merge_slashes.
- </para>
- <para lang="en">
- in the "merge_slashes" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве ignore_invalid_headers.<br/>
- Спасибо Alan Kemp.
- </para>
- <para lang="en">
- in the "ignore_invalid_headers" directive.<br/>
- Thanks to Alan Kemp.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с MinGW-w64 gcc 8.1 и новее.
- </para>
- <para lang="en">
- nginx could not be built with MinGW-w64 gcc 8.1 or newer.
- </para>
- </change>
- </changes>
- <changes ver="1.17.4" date="2019-09-24">
- <change type="change">
- <para lang="ru">
- улучшено детектирование некорректного поведения клиентов в HTTP/2.
- </para>
- <para lang="en">
- better detection of incorrect client behavior in HTTP/2.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- в обработке непрочитанного тела запроса
- при возврате ошибок в HTTP/2.
- </para>
- <para lang="en">
- in handling of not fully read client request body
- when returning errors in HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива worker_shutdown_timeout могла не работать
- при использовании HTTP/2.
- </para>
- <para lang="en">
- the "worker_shutdown_timeout" directive might not work
- when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 и директивы proxy_request_buffering
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using HTTP/2 and the "proxy_request_buffering" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на Windows при использовании SSL
- уровень записи в лог ошибки ECONNABORTED был "crit" вместо "error".
- </para>
- <para lang="en">
- the ECONNABORTED error log level was "crit" instead of "error"
- on Windows when using SSL.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx игнорировал лишние данные при использовании chunked transfer encoding.
- </para>
- <para lang="en">
- nginx ignored extra data when using chunked transfer encoding.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если использовалась директива return и
- при чтении тела запроса возникала ошибка,
- nginx всегда возвращал ошибку 500.
- </para>
- <para lang="en">
- nginx always returned the 500 error
- if the "return" directive was used
- and an error occurred during reading client request body.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок выделения памяти.
- </para>
- <para lang="en">
- in memory allocation error handling.
- </para>
- </change>
- </changes>
- <changes ver="1.17.3" date="2019-08-13">
- <change type="security">
- <para lang="ru">
- при использовании HTTP/2 клиент мог вызвать
- чрезмерное потребление памяти и ресурсов процессора
- (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).
- </para>
- <para lang="en">
- when using HTTP/2 a client might cause
- excessive memory consumption and CPU usage
- (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании сжатия в логах могли появляться сообщения "zero size buf";
- ошибка появилась в 1.17.2.
- </para>
- <para lang="en">
- "zero size buf" alerts might appear in logs when using gzipping;
- the bug had appeared in 1.17.2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы resolver в SMTP прокси-сервере
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "resolver" directive was used in SMTP proxy.
- </para>
- </change>
- </changes>
- <changes ver="1.17.2" date="2019-07-23">
- <change type="change">
- <para lang="ru">
- минимальная поддерживаемая версия zlib—1.2.0.4.<br/>
- Спасибо Илье Леошкевичу.
- </para>
- <para lang="en">
- minimum supported zlib version is 1.2.0.4.<br/>
- Thanks to Ilya Leoshkevich.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- метод $r->internal_redirect() встроенного перла
- теперь ожидает закодированный URI.
- </para>
- <para lang="en">
- the $r->internal_redirect() embedded perl method
- now expects escaped URIs.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь с помощью метода $r->internal_redirect() встроенного перла
- можно перейти в именованный location.
- </para>
- <para lang="en">
- it is now possible to switch to a named location
- using the $r->internal_redirect() embedded perl method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок во встроенном перле.
- </para>
- <para lang="en">
- in error handling in embedded perl.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на старте или во время переконфигурации мог произойти segmentation fault,
- если в конфигурации использовалось значение hash bucket size больше 64 килобайт.
- </para>
- <para lang="en">
- a segmentation fault might occur on start or during reconfiguration
- if hash bucket size larger than 64 kilobytes was used in the configuration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании методов обработки соединений select, poll и /dev/poll
- nginx мог нагружать процессор во время небуферизованного проксирования
- и при проксировании WebSocket-соединений.
- </para>
- <para lang="en">
- nginx might hog CPU during unbuffered proxying
- and when proxying WebSocket connections
- if the select, poll, or /dev/poll methods were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_xslt_filter_module.
- </para>
- <para lang="en">
- in the ngx_http_xslt_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_ssi_filter_module.
- </para>
- <para lang="en">
- in the ngx_http_ssi_filter_module.
- </para>
- </change>
- </changes>
- <changes ver="1.17.1" date="2019-06-25">
- <change type="feature">
- <para lang="ru">
- директива limit_req_dry_run.
- </para>
- <para lang="en">
- the "limit_req_dry_run" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- при использовании директивы hash в блоке upstream
- пустой ключ хэширования теперь приводит к переключению
- на round-robin балансировку.<br/>
- Спасибо Niklas Keller.
- </para>
- <para lang="en">
- when using the "hash" directive inside the "upstream" block
- an empty hash key now triggers round-robin balancing.<br/>
- Thanks to Niklas Keller.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалось кэширование и директива image_filter,
- а ошибки с кодом 415 перенаправлялись с помощью директивы error_page;
- ошибка появилась в 1.11.10.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if caching was used along with the "image_filter" directive,
- and errors with code 415 were redirected with the "error_page" directive;
- the bug had appeared in 1.11.10.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовался встроенный перл;
- ошибка появилась в 1.7.3.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if embedded perl was used;
- the bug had appeared in 1.7.3.
- </para>
- </change>
- </changes>
- <changes ver="1.17.0" date="2019-05-21">
- <change type="feature">
- <para lang="ru">
- директивы limit_rate и limit_rate_after поддерживают переменные.
- </para>
- <para lang="en">
- variables support in the "limit_rate" and "limit_rate_after" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_upload_rate и proxy_download_rate в модуле stream
- поддерживают переменные.
- </para>
- <para lang="en">
- variables support
- in the "proxy_upload_rate" and "proxy_download_rate" directives
- in the stream module.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- минимальная поддерживаемая версия OpenSSL—0.9.8.
- </para>
- <para lang="en">
- minimum supported OpenSSL version is 0.9.8.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь postpone-фильтр собирается всегда.
- </para>
- <para lang="en">
- now the postpone filter is always built.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива include не работала в блоках if и limit_except.
- </para>
- <para lang="en">
- the "include" directive did not work inside the "if" and "limit_except" blocks.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке byte ranges.
- </para>
- <para lang="en">
- in byte ranges processing.
- </para>
- </change>
- </changes>
- <changes ver="1.15.12" date="2019-04-16">
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если в директивах ssl_certificate или ssl_certificate_key
- использовались переменные
- и был включён OCSP stapling.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if variables were used
- in the "ssl_certificate" or "ssl_certificate_key" directives
- and OCSP stapling was enabled.
- </para>
- </change>
- </changes>
- <changes ver="1.15.11" date="2019-04-09">
- <change type="bugfix">
- <para lang="ru">
- в директиве ssl_stapling_file на Windows.
- </para>
- <para lang="en">
- in the "ssl_stapling_file" directive on Windows.
- </para>
- </change>
- </changes>
- <changes ver="1.15.10" date="2019-03-26">
- <change type="change">
- <para lang="ru">
- теперь при использовании имени хоста в директиве listen
- nginx создаёт listen-сокеты для всех адресов,
- соответствующих этому имени
- (ранее использовался только первый адрес).
- </para>
- <para lang="en">
- when using a hostname in the "listen" directive
- nginx now creates listening sockets
- for all addresses the hostname resolves to
- (previously, only the first address was used).
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- диапазоны портов в директиве listen.
- </para>
- <para lang="en">
- port ranges in the "listen" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- возможность загрузки SSL-сертификатов и секретных ключей из переменных.
- </para>
- <para lang="en">
- loading of SSL certificates and secret keys from variables.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- переменная $ssl_server_name могла быть пустой
- при использовании OpenSSL 1.1.1.
- </para>
- <para lang="en">
- the $ssl_server_name variable might be empty
- when using OpenSSL 1.1.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows не собирался с Visual Studio 2015 и новее;
- ошибка появилась в 1.15.9.
- </para>
- <para lang="en">
- nginx/Windows could not be built with Visual Studio 2015 or newer;
- the bug had appeared in 1.15.9.
- </para>
- </change>
- </changes>
- <changes ver="1.15.9" date="2019-02-26">
- <change type="feature">
- <para lang="ru">
- директивы ssl_certificate и ssl_certificate_key
- поддерживают переменные.
- </para>
- <para lang="en">
- variables support
- in the "ssl_certificate" and "ssl_certificate_key" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- метод poll теперь доступен на Windows
- при использовании Windows Vista и новее.
- </para>
- <para lang="en">
- the "poll" method is now available on Windows
- when using Windows Vista or newer.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если при использовании метода select на Windows
- происходила ошибка при установлении соединения с бэкендом,
- nginx ожидал истечения таймаута на установление соединения.
- </para>
- <para lang="en">
- if the "select" method was used on Windows
- and an error occurred while establishing a backend connection,
- nginx waited for the connection establishment timeout to expire.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_upload_rate и proxy_download_rate
- в модуле stream
- работали некорректно при проксировании UDP-пакетов.
- </para>
- <para lang="en">
- the "proxy_upload_rate" and "proxy_download_rate" directives
- in the stream module
- worked incorrectly when proxying UDP datagrams.
- </para>
- </change>
- </changes>
- <changes ver="1.15.8" date="2018-12-25">
- <change type="feature">
- <para lang="ru">
- переменная $upstream_bytes_sent.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the $upstream_bytes_sent variable.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- новые директивы в скриптах подсветки синтаксиса для vim.<br/>
- Спасибо Геннадию Махомеду.
- </para>
- <para lang="en">
- new directives in vim syntax highlighting scripts.<br/>
- Thanks to Gena Makhomed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_cache_background_update.
- </para>
- <para lang="en">
- in the "proxy_cache_background_update" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве geo при использовании unix domain listen-сокетов.
- </para>
- <para lang="en">
- in the "geo" directive when using unix domain listen sockets.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- при использовании директивы ssl_early_data с OpenSSL
- в логах могли появляться сообщения
- "ignoring stale global SSL error ... bad length".
- </para>
- <para lang="en">
- the "ignoring stale global SSL error ... bad length"
- alerts might appear in logs
- when using the "ssl_early_data" directive with OpenSSL.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в nginx/Windows.
- </para>
- <para lang="en">
- in nginx/Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_autoindex_module на 32-битных платформах.
- </para>
- <para lang="en">
- in the ngx_http_autoindex_module on 32-bit platforms.
- </para>
- </change>
- </changes>
- <changes ver="1.15.7" date="2018-11-27">
- <change type="feature">
- <para lang="ru">
- директива proxy_requests в модуле stream.
- </para>
- <para lang="en">
- the "proxy_requests" directive in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр "delay" директивы "limit_req".<br/>
- Спасибо Владиславу Шабанову и Петру Щучкину.
- </para>
- <para lang="en">
- the "delay" parameter of the "limit_req" directive.<br/>
- Thanks to Vladislav Shabanov and Peter Shchuchkin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти в случае ошибок при переконфигурации.
- </para>
- <para lang="en">
- memory leak on errors during reconfiguration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в переменных $upstream_response_time, $upstream_connect_time и
- $upstream_header_time.
- </para>
- <para lang="en">
- in the $upstream_response_time, $upstream_connect_time, and
- $upstream_header_time variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовался модуль ngx_http_mp4_module на 32-битных платформах.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the ngx_http_mp4_module was used on 32-bit platforms.
- </para>
- </change>
- </changes>
- <changes ver="1.15.6" date="2018-11-06">
- <change type="security">
- <para lang="ru">
- при использовании HTTP/2 клиент мог вызвать
- чрезмерное потреблению памяти (CVE-2018-16843)
- и ресурсов процессора (CVE-2018-16844).
- </para>
- <para lang="en">
- when using HTTP/2 a client might cause
- excessive memory consumption (CVE-2018-16843)
- and CPU usage (CVE-2018-16844).
- </para>
- </change>
- <change type="security">
- <para lang="ru">
- при обработке специально созданного mp4-файла модулем ngx_http_mp4_module
- содержимое памяти рабочего процесса могло быть отправлено клиенту
- (CVE-2018-16845).
- </para>
- <para lang="en">
- processing of a specially crafted mp4 file with the ngx_http_mp4_module
- might result in worker process memory disclosure
- (CVE-2018-16845).
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_socket_keepalive, fastcgi_socket_keepalive,
- grpc_socket_keepalive, memcached_socket_keepalive,
- scgi_socket_keepalive и uwsgi_socket_keepalive.
- </para>
- <para lang="en">
- the "proxy_socket_keepalive", "fastcgi_socket_keepalive",
- "grpc_socket_keepalive", "memcached_socket_keepalive",
- "scgi_socket_keepalive", and "uwsgi_socket_keepalive" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если nginx был собран с OpenSSL 1.1.0, а использовался с OpenSSL 1.1.1,
- протокол TLS 1.3 всегда был разрешён.
- </para>
- <para lang="en">
- if nginx was built with OpenSSL 1.1.0 and used with OpenSSL 1.1.1,
- the TLS 1.3 protocol was always enabled.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при работе с gRPC-бэкендами могло расходоваться большое количество памяти.
- </para>
- <para lang="en">
- working with gRPC backends might result in excessive memory consumption.
- </para>
- </change>
- </changes>
- <changes ver="1.15.5" date="2018-10-02">
- <change type="bugfix">
- <para lang="ru">
- при использовании OpenSSL 1.1.0h и новее
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 1.15.4.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using OpenSSL 1.1.0h or newer;
- the bug had appeared in 1.15.4.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- незначительных потенциальных ошибок.
- </para>
- <para lang="en">
- of minor potential bugs.
- </para>
- </change>
- </changes>
- <changes ver="1.15.4" date="2018-09-25">
- <change type="feature">
- <para lang="ru">
- теперь директиву ssl_early_data можно использовать с OpenSSL.
- </para>
- <para lang="en">
- now the "ssl_early_data" directive can be used with OpenSSL.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_uwsgi_module.<br/>
- Спасибо Chris Caputo.
- </para>
- <para lang="en">
- in the ngx_http_uwsgi_module.<br/>
- Thanks to Chris Caputo.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- соединения к некоторым gRPC-бэкендам могли не кэшироваться
- при использовании директивы keepalive.
- </para>
- <para lang="en">
- connections with some gRPC backends might not be cached
- when using the "keepalive" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы error_page для перенаправления ошибок,
- возникающих на ранних этапах обработки запроса,
- в частности ошибок с кодом 400,
- могла происходить утечка сокетов.
- </para>
- <para lang="en">
- a socket leak might occur
- when using the "error_page" directive
- to redirect early request processing errors,
- notably errors with code 400.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива return при возврате ошибок не изменяла код ответа,
- если запрос был перенаправлен с помощью директивы error_page.
- </para>
- <para lang="en">
- the "return" directive did not change the response code when returning errors
- if the request was redirected by the "error_page" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- стандартные сообщения об ошибках и ответы модуля ngx_http_autoindex_module
- содержали атрибут bgcolor, что могло приводить к их некорректному отображению
- при использовании пользовательских настроек цветов в браузерах.<br/>
- Спасибо Nova DasSarma.
- </para>
- <para lang="en">
- standard error pages and responses of the ngx_http_autoindex_module module
- used the "bgcolor" attribute, and might be displayed incorrectly when using
- custom color settings in browsers.<br/>
- Thanks to Nova DasSarma.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- уровень логгирования ошибок SSL "no suitable key share" и
- "no suitable signature algorithm"
- понижен с уровня crit до info.
- </para>
- <para lang="en">
- the logging level of the "no suitable key share" and
- "no suitable signature algorithm" SSL errors
- has been lowered from "crit" to "info".
- </para>
- </change>
- </changes>
- <changes ver="1.15.3" date="2018-08-28">
- <change type="feature">
- <para lang="ru">
- теперь TLSv1.3 можно использовать с BoringSSL.
- </para>
- <para lang="en">
- now TLSv1.3 can be used with BoringSSL.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_early_data,
- сейчас доступна при использовании BoringSSL.
- </para>
- <para lang="en">
- the "ssl_early_data" directive,
- currently available with BoringSSL.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы keepalive_timeout и keepalive_requests
- в блоке upstream.
- </para>
- <para lang="en">
- the "keepalive_timeout" and "keepalive_requests" directives
- in the "upstream" block.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_dav_module
- при копировании файла поверх существующего файла с помощью метода COPY
- не обнулял целевой файл.
- </para>
- <para lang="en">
- the ngx_http_dav_module
- did not truncate destination file when copying a file over an existing one
- with the COPY method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_dav_module
- при перемещении файла между файловыми системами с помощью метода MOVE
- устанавливал нулевые права доступа на результирующий файл
- и не сохранял время изменения файла.
- </para>
- <para lang="en">
- the ngx_http_dav_module
- used zero access rights on the destination file
- and did not preserve file modification time
- when moving a file between different file systems with the MOVE method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_dav_module
- при копировании файла с помощью метода COPY
- для результирующего файла использовал права доступа по умолчанию.
- </para>
- <para lang="en">
- the ngx_http_dav_module
- used default access rights
- when copying a file with the COPY method.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- некоторые клиенты могли не работать при использовании HTTP/2;
- ошибка появилась в 1.13.5.
- </para>
- <para lang="en">
- some clients might not work when using HTTP/2;
- the bug had appeared in 1.13.5.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с LibreSSL 2.8.0.
- </para>
- <para lang="en">
- nginx could not be built with LibreSSL 2.8.0.
- </para>
- </change>
- </changes>
- <changes ver="1.15.2" date="2018-07-24">
- <change type="feature">
- <para lang="ru">
- переменная $ssl_preread_protocol
- в модуле ngx_stream_ssl_preread_module.
- </para>
- <para lang="en">
- the $ssl_preread_protocol variable
- in the ngx_stream_ssl_preread_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь при использовании директивы reset_timedout_connection
- nginx сбрасывает соединения, закрываемые с кодом 444.
- </para>
- <para lang="en">
- now when using the "reset_timedout_connection" directive
- nginx will reset connections being closed with the 444 code.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- уровень логгирования ошибок SSL "http request", "https proxy request",
- "unsupported protocol" и "version too low"
- понижен с уровня crit до info.
- </para>
- <para lang="en">
- a logging level of the "http request", "https proxy request",
- "unsupported protocol", and "version too low" SSL errors
- has been lowered from "crit" to "info".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- запросы к DNS-серверу не отправлялись повторно,
- если при первой попытке отправки происходила ошибка.
- </para>
- <para lang="en">
- DNS requests were not resent
- if initial sending of a request failed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр reuseport директивы listen игнорировался,
- если количество рабочих процессов было задано после директивы listen.
- </para>
- <para lang="en">
- the "reuseport" parameter of the "listen" directive was ignored
- if the number of worker processes was specified after the "listen" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании OpenSSL 1.1.0 и новее
- директиву ssl_prefer_server_ciphers нельзя было выключить
- в виртуальном сервере, если она была включена в сервере по умолчанию.
- </para>
- <para lang="en">
- when using OpenSSL 1.1.0 or newer
- it was not possible to switch off "ssl_prefer_server_ciphers" in
- a virtual server if it was switched on in the default server.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- повторное использование SSL-сессий к бэкендам
- не работало с протоколом TLS 1.3.
- </para>
- <para lang="en">
- SSL session reuse with upstream servers
- did not work with the TLS 1.3 protocol.
- </para>
- </change>
- </changes>
- <changes ver="1.15.1" date="2018-07-03">
- <change type="feature">
- <para lang="ru">
- директива random в блоке upstream.
- </para>
- <para lang="en">
- the "random" directive inside the "upstream" block.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- улучшена производительность при использовании директив hash и ip_hash
- совместно с директивой zone.
- </para>
- <para lang="en">
- improved performance when using the "hash" and "ip_hash" directives
- with the "zone" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр reuseport директивы listen
- теперь использует SO_REUSEPORT_LB на FreeBSD 12.
- </para>
- <para lang="en">
- the "reuseport" parameter of the "listen" directive
- now uses SO_REUSEPORT_LB on FreeBSD 12.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- HTTP/2 server push не работал, если SSL терминировался прокси-сервером
- перед nginx'ом.
- </para>
- <para lang="en">
- HTTP/2 server push did not work if SSL was terminated by a proxy server
- in front of nginx.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива tcp_nopush всегда использовалась для соединений к бэкендам.
- </para>
- <para lang="en">
- the "tcp_nopush" directive was always used on backend connections.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при отправке сохранённого на диск тела запроса на gRPC-бэкенд
- могли возникать ошибки.
- </para>
- <para lang="en">
- sending a disk-buffered request body to a gRPC backend
- might fail.
- </para>
- </change>
- </changes>
- <changes ver="1.15.0" date="2018-06-05">
- <change type="change">
- <para lang="ru">
- директива "ssl" теперь считается устаревшей;
- вместо неё следует использовать параметр ssl директивы listen.
- </para>
- <para lang="en">
- the "ssl" directive is deprecated;
- the "ssl" parameter of the "listen" directive should be used instead.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь при использовании директивы listen с параметром ssl
- nginx определяет отсутствие SSL-сертификатов при тестировании конфигурации.
- </para>
- <para lang="en">
- now nginx detects missing SSL certificates during configuration testing
- when using the "ssl" parameter of the "listen" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь модуль stream умеет обрабатывать
- несколько входящих UDP-пакетов от клиента в рамках одной сессии.
- </para>
- <para lang="en">
- now the stream module can handle
- multiple incoming UDP datagrams from a client within a single session.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_cache_valid
- можно было указать некорректный код ответа.
- </para>
- <para lang="en">
- it was possible to specify an incorrect response code
- in the "proxy_cache_valid" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался gcc 8.1.
- </para>
- <para lang="en">
- nginx could not be built by gcc 8.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- логгирование в syslog останавливалось при изменении локального IP-адреса.
- </para>
- <para lang="en">
- logging to syslog stopped on local IP address changes.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался компилятором clang, если был установлен CUDA SDK;
- ошибка появилась в 1.13.8.
- </para>
- <para lang="en">
- nginx could not be built by clang with CUDA SDK installed;
- the bug had appeared in 1.13.8.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании unix domain listen-сокетов на FreeBSD
- в процессе обновления исполняемого файла
- в логе могли появляться сообщения "getsockopt(TCP_FASTOPEN) ... failed".
- </para>
- <para lang="en">
- "getsockopt(TCP_FASTOPEN) ... failed" messages might appear in logs
- during binary upgrade
- when using unix domain listen sockets on FreeBSD.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Fedora 28 Linux.
- </para>
- <para lang="en">
- nginx could not be built on Fedora 28 Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы limit_req
- заданная скорость обработки запросов могла не соблюдаться.
- </para>
- <para lang="en">
- request processing rate might exceed configured rate
- when using the "limit_req" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке адресов клиентов при использовании unix domain listen-сокетов
- для работы с датаграммами на Linux.
- </para>
- <para lang="en">
- in handling of client addresses when using unix domain listen sockets
- to work with datagrams on Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок выделения памяти.
- </para>
- <para lang="en">
- in memory allocation error handling.
- </para>
- </change>
- </changes>
- <changes ver="1.13.12" date="2018-04-10">
- <change type="bugfix">
- <para lang="ru">
- при возврате большого ответа
- соединения с gRPC-бэкендами могли неожиданно закрываться.
- </para>
- <para lang="en">
- connections with gRPC backends might be closed unexpectedly
- when returning a large response.
- </para>
- </change>
- </changes>
- <changes ver="1.13.11" date="2018-04-03">
- <change type="feature">
- <para lang="ru">
- параметр proxy_protocol директивы listen
- теперь поддерживает протокол PROXY версии 2.
- </para>
- <para lang="en">
- the "proxy_protocol" parameter of the "listen" directive
- now supports the PROXY protocol version 2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с OpenSSL 1.1.1 статически на Linux.
- </para>
- <para lang="en">
- nginx could not be built with OpenSSL 1.1.1 statically on Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в параметрах http_404, http_500 и им подобных
- директивы proxy_next_upstream.
- </para>
- <para lang="en">
- in the "http_404", "http_500", etc. parameters
- of the "proxy_next_upstream" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.13.10" date="2018-03-20">
- <change type="feature">
- <para lang="ru">
- теперь параметр set в SSI-директиве include
- позволяет сохранять в переменную любые ответы;
- максимальный размер ответа задаётся директивой subrequest_output_buffer_size.
- </para>
- <para lang="en">
- the "set" parameter of the "include" SSI directive now allows
- writing arbitrary responses to a variable;
- the "subrequest_output_buffer_size" directive defines maximum response size.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь nginx использует вызов clock_gettime(CLOCK_MONOTONIC), если он доступен,
- что позволяет избежать некорректного срабатывания таймаутов
- при изменениях системного времени.
- </para>
- <para lang="en">
- now nginx uses clock_gettime(CLOCK_MONOTONIC) if available,
- to avoid timeouts being incorrectly triggered
- on system time changes.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр "escape=none" директивы log_format.<br/>
- Спасибо Johannes Baiter и Calin Don.
- </para>
- <para lang="en">
- the "escape=none" parameter of the "log_format" directive.<br/>
- Thanks to Johannes Baiter and Calin Don.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $ssl_preread_alpn_protocols
- в модуле ngx_stream_ssl_preread_module.
- </para>
- <para lang="en">
- the $ssl_preread_alpn_protocols variable
- in the ngx_stream_ssl_preread_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_grpc_module.
- </para>
- <para lang="en">
- the ngx_http_grpc_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок выделения памяти в директиве geo.
- </para>
- <para lang="en">
- in memory allocation error handling in the "geo" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании переменных в директиве auth_basic_user_file
- в лог мог выводиться символ '\0'.<br/>
- Спасибо Вадиму Филимонову.
- </para>
- <para lang="en">
- when using variables in the "auth_basic_user_file" directive
- a null character might appear in logs.<br/>
- Thanks to Vadim Filimonov.
- </para>
- </change>
- </changes>
- <changes ver="1.13.9" date="2018-02-20">
- <change type="feature">
- <para lang="ru">
- поддержка HTTP/2 server push;
- директивы http2_push и http2_push_preload.
- </para>
- <para lang="en">
- HTTP/2 server push support;
- the "http2_push" and "http2_push_preload" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании кэша
- в логах могли появляться сообщения "header already sent";
- ошибка появилась в 1.9.13.
- </para>
- <para lang="en">
- "header already sent" alerts might appear in logs
- when using cache;
- the bug had appeared in 1.9.13.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы ssl_verify_client
- в рабочем процессе мог произойти segmentation fault,
- если в виртуальном сервере не был указан SSL-сертификат.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "ssl_verify_client" directive was used
- and no SSL certificate was specified in a virtual server.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_v2_module.
- </para>
- <para lang="en">
- in the ngx_http_v2_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_dav_module.
- </para>
- <para lang="en">
- in the ngx_http_dav_module.
- </para>
- </change>
- </changes>
- <changes ver="1.13.8" date="2017-12-26">
- <change type="feature">
- <para lang="ru">
- теперь при использовании параметра transparent директив proxy_bind,
- fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
- nginx автоматически сохраняет capability CAP_NET_RAW в рабочих процессах.
- </para>
- <para lang="en">
- now nginx automatically preserves the CAP_NET_RAW capability in worker processes
- when using the "transparent" parameter of the "proxy_bind",
- "fastcgi_bind", "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- улучшения в определении размера строки кэша процессора.<br/>
- Спасибо Debayan Ghosh.
- </para>
- <para lang="en">
- improved CPU cache line size detection.<br/>
- Thanks to Debayan Ghosh.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- новые директивы в скриптах подсветки синтаксиса для vim.<br/>
- Спасибо Геннадию Махомеду.
- </para>
- <para lang="en">
- new directives in vim syntax highlighting scripts.<br/>
- Thanks to Gena Makhomed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- процедура обновления исполняемого файла не работала,
- если после завершения родительского процесса
- новым родительским процессом nginx'а становился процесс с PID, отличным от 1.
- </para>
- <para lang="en">
- binary upgrade refused to work
- if nginx was re-parented to a process with PID different from 1
- after its parent process has finished.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_autoindex_module неправильно обрабатывал запросы с телом.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module incorrectly handled requests with bodies.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_limit_rate при использовании с директивой keepalive.
- </para>
- <para lang="en">
- in the "proxy_limit_rate" directive when used with the "keepalive" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании "proxy_buffering off" часть ответа могла буферизироваться,
- если клиентское соединение использовало SSL.<br/>
- Спасибо Patryk Lesiewicz.
- </para>
- <para lang="en">
- some parts of a response might be buffered when using "proxy_buffering off"
- if the client connection used SSL.<br/>
- Thanks to Patryk Lesiewicz.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_cache_background_update.
- </para>
- <para lang="en">
- in the "proxy_cache_background_update" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменную вида "${name}" с именем в фигурных скобках
- нельзя было использовать в начале параметра
- не заключив весь параметр в кавычки.
- </para>
- <para lang="en">
- it was not possible to start a parameter
- with a variable in the "${name}" form with the name in curly brackets
- without enclosing the parameter into single or double quotes.
- </para>
- </change>
- </changes>
- <changes ver="1.13.7" date="2017-11-21">
- <change type="bugfix">
- <para lang="ru">
- в переменной $upstream_status.
- </para>
- <para lang="en">
- in the $upstream_status variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if a backend returned a "101 Switching Protocols" response to a subrequest.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если при переконфигурации изменялся размер зоны разделяемой памяти
- и переконфигурация завершалась неудачно,
- то в главном процессе происходил segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault occurred in a master process
- if a shared memory zone size was changed during a reconfiguration
- and the reconfiguration failed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_fastcgi_module.
- </para>
- <para lang="en">
- in the ngx_http_fastcgi_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx возвращал ошибку 500,
- если в директиве xslt_stylesheet
- были заданы параметры без использования переменных.
- </para>
- <para lang="en">
- nginx returned the 500 error
- if parameters without variables were specified
- in the "xslt_stylesheet" directive.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- при использовании варианта библиотеки zlib от Intel
- в лог писались сообщения "gzip filter failed to use preallocated memory".
- </para>
- <para lang="en">
- "gzip filter failed to use preallocated memory" alerts appeared in logs
- when using a zlib library variant from Intel.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива worker_shutdown_timeout не работала
- при использовании почтового прокси-сервера
- и при проксировании WebSocket-соединений.
- </para>
- <para lang="en">
- the "worker_shutdown_timeout" directive did not work
- when using mail proxy and when proxying WebSocket connections.
- </para>
- </change>
- </changes>
- <changes ver="1.13.6" date="2017-10-10">
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы ssl_preread
- в модуле stream не работало переключение на следующий бэкенд.
- </para>
- <para lang="en">
- switching to the next upstream server in the stream module did not work
- when using the "ssl_preread" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_v2_module.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in the ngx_http_v2_module.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не поддерживал даты после 2038 года
- на 32-битных платформах с 64-битным time_t.
- </para>
- <para lang="en">
- nginx did not support dates after the year 2038
- on 32-bit platforms with 64-bit time_t.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке дат до 1970 года и после 10000 года.
- </para>
- <para lang="en">
- in handling of dates prior to the year 1970 and after the year 10000.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле stream таймауты ожидания UDP-пакетов от бэкендов
- не логгировались или логгировались на уровне info вместо error.
- </para>
- <para lang="en">
- in the stream module timeouts waiting for UDP datagrams from upstream servers
- were not logged or logged at the "info" level instead of "error".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 nginx мог вернуть ошибку 400,
- не указав в логе причину.
- </para>
- <para lang="en">
- when using HTTP/2 nginx might return the 400 response
- without logging the reason.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке повреждённых файлов кэша.
- </para>
- <para lang="en">
- in processing of corrupted cache files.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при кэшировании ошибок, перехваченных error_page,
- не учитывались заголовки управления кэшированием.
- </para>
- <para lang="en">
- cache control headers were ignored
- when caching errors intercepted by error_page.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 тело запроса могло быть повреждено.
- </para>
- <para lang="en">
- when using HTTP/2 client request body might be corrupted.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке адресов клиентов при использовании unix domain сокетов.
- </para>
- <para lang="en">
- in handling of client addresses when using unix domain sockets.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы "hash ... consistent" в блоке upstream
- nginx нагружал процессор, если использовались большие веса
- и все или почти все бэкенды были недоступны.
- </para>
- <para lang="en">
- nginx hogged CPU
- when using the "hash ... consistent" directive in the upstream block
- if large weights were used and all or most of the servers were unavailable.
- </para>
- </change>
- </changes>
- <changes ver="1.13.5" date="2017-09-05">
- <change type="feature">
- <para lang="ru">
- переменная $ssl_client_escaped_cert.
- </para>
- <para lang="en">
- the $ssl_client_escaped_cert variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива ssl_session_ticket_key и параметр include директивы geo
- не работали на Windows.
- </para>
- <para lang="en">
- the "ssl_session_ticket_key" directive and
- the "include" parameter of the "geo" directive did not work on Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на 32-битных платформах
- при запросе более 4 гигабайт с помощью нескольких диапазонов
- возвращалась некорректная длина ответа.
- </para>
- <para lang="en">
- incorrect response length was returned
- on 32-bit platforms when requesting more than 4 gigabytes
- with multiple ranges.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива "expires modified" и
- обработка строки If-Range заголовка запроса
- не учитывали время последнего изменения ответа,
- если использовалось проксирование без кэширования.
- </para>
- <para lang="en">
- the "expires modified" directive and
- processing of the "If-Range" request header line
- did not use the response last modification time
- if proxying without caching was used.
- </para>
- </change>
- </changes>
- <changes ver="1.13.4" date="2017-08-08">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_mirror_module.
- </para>
- <para lang="en">
- the ngx_http_mirror_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- клиентские соединения могли сбрасываться при тестировании конфигурации,
- если использовался параметр reuseport директивы listen на Linux.
- </para>
- <para lang="en">
- client connections might be dropped during configuration testing
- when using the "reuseport" parameter of the "listen" directive on Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- тело запроса могло быть недоступно в подзапросах,
- если оно было сохранено в файл и использовалось проксирование.
- </para>
- <para lang="en">
- request body might not be available in subrequests
- if it was saved to a file and proxying was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- очистка кэша по max_size не работала на Windows.
- </para>
- <para lang="en">
- cleaning cache based on the "max_size" parameter did not work on Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- любое выделение разделяемой памяти на Windows требовало 4096 байт памяти.
- </para>
- <para lang="en">
- any shared memory allocation required 4096 bytes on Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы zone в блоке upstream на Windows
- рабочий процесс мог завершаться аварийно.
- </para>
- <para lang="en">
- nginx worker might be terminated abnormally
- when using the "zone" directive inside the "upstream" block on Windows.
- </para>
- </change>
- </changes>
- <changes ver="1.13.3" date="2017-07-11">
- <change type="security">
- <para lang="ru">
- специально созданный запрос мог вызвать целочисленное переполнение
- в range-фильтре и последующую некорректную обработку запрошенных диапазонов,
- что потенциально могло привести к утечке конфиденциальной информации
- (CVE-2017-7529).
- </para>
- <para lang="en">
- a specially crafted request might result in an integer overflow
- and incorrect processing of ranges in the range filter,
- potentially resulting in sensitive information leak
- (CVE-2017-7529).
- </para>
- </change>
- </changes>
- <changes ver="1.13.2" date="2017-06-27">
- <change type="change">
- <para lang="ru">
- теперь при запросе диапазона, начинающегося с 0, из пустого файла
- nginx возвращает ответ 200 вместо 416.
- </para>
- <para lang="en">
- nginx now returns 200 instead of 416
- when a range starting with 0 is requested from an empty file.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива add_trailer.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the "add_trailer" directive.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался под Cygwin и NetBSD;
- ошибка появилась в 1.13.0.
- </para>
- <para lang="en">
- nginx could not be built on Cygwin and NetBSD;
- the bug had appeared in 1.13.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался под MSYS2 / MinGW 64-bit.<br/>
- Спасибо Orgad Shaneh.
- </para>
- <para lang="en">
- nginx could not be built under MSYS2 / MinGW 64-bit.<br/>
- Thanks to Orgad Shaneh.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании SSI с большим количеством подзапросов
- и proxy_pass с переменными
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using SSI with many includes
- and proxy_pass with variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_v2_module.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in the ngx_http_v2_module.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- </changes>
- <changes ver="1.13.1" date="2017-05-30">
- <change type="feature">
- <para lang="ru">
- теперь в качестве параметра директивы set_real_ip_from
- можно указывать имя хоста.
- </para>
- <para lang="en">
- now a hostname can be used
- as the "set_real_ip_from" directive parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- улучшения в скриптах подсветки синтаксиса для vim.
- </para>
- <para lang="en">
- vim syntax highlighting scripts improvements.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива worker_cpu_affinity теперь работает на DragonFly BSD.<br/>
- Спасибо Sepherosa Ziehau.
- </para>
- <para lang="en">
- the "worker_cpu_affinity" directive now works on DragonFly BSD.<br/>
- Thanks to Sepherosa Ziehau.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL renegotiation в соединениях к бэкендам
- не работал при использовании OpenSSL до 1.1.0.
- </para>
- <para lang="en">
- SSL renegotiation on backend connections
- did not work when using OpenSSL before 1.1.0.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- nginx не собирался с Oracle Developer Studio 12.5.
- </para>
- <para lang="en">
- nginx could not be built with Oracle Developer Studio 12.5.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- теперь cache manager пропускает заблокированные записи
- при очистке кэша по max_size.
- </para>
- <para lang="en">
- now cache manager ignores long locked cache entries
- when cleaning cache based on the "max_size" parameter.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- клиентские SSL-соединения сразу закрывались, если использовался
- отложенный accept и параметр proxy_protocol директивы listen.
- </para>
- <para lang="en">
- client SSL connections were immediately closed if deferred accept
- and the "proxy_protocol" parameter of the "listen" directive were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_cache_background_update.
- </para>
- <para lang="en">
- in the "proxy_cache_background_update" directive.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- теперь директива tcp_nodelay
- устанавливает опцию TCP_NODELAY перед SSL handshake.
- </para>
- <para lang="en">
- now the "tcp_nodelay" directive
- sets the TCP_NODELAY option before an SSL handshake.
- </para>
- </change>
- </changes>
- <changes ver="1.13.0" date="2017-04-25">
- <change type="change">
- <para lang="ru">
- теперь SSL renegotiation допускается в соединениях к бэкендам.
- </para>
- <para lang="en">
- SSL renegotiation is now allowed on backend connections.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметры rcvbuf и sndbuf директив listen
- в почтовом прокси-сервере и модуле stream.
- </para>
- <para lang="en">
- the "rcvbuf" and "sndbuf" parameters of the "listen" directives
- of the mail proxy and stream modules.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы return и error_page теперь могут использоваться для возврата
- перенаправлений с кодом 308.<br/>
- Спасибо Simon Leblanc.
- </para>
- <para lang="en">
- the "return" and "error_page" directives can now be used to return 308
- redirections.<br/>
- Thanks to Simon Leblanc.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр TLSv1.3 в директиве ssl_protocols.
- </para>
- <para lang="en">
- the "TLSv1.3" parameter of the "ssl_protocols" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- при логгировании сигналов теперь указывается PID отправившего сигнал процесса.
- </para>
- <para lang="en">
- when logging signals nginx now logs PID of the process which sent the signal.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок выделения памяти.
- </para>
- <para lang="en">
- in memory allocation error handling.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если сервер в модуле stream слушал на wildcard-адресе,
- исходящий адрес ответного UDP-пакета
- мог отличаться от адреса назначения исходного пакета.
- </para>
- <para lang="en">
- if a server in the stream module listened on a wildcard address,
- the source address of a response UDP datagram could differ
- from the original datagram destination address.
- </para>
- </change>
- </changes>
- <changes ver="1.11.13" date="2017-04-04">
- <change type="feature">
- <para lang="ru">
- параметр http_429 в директивах proxy_next_upstream, fastcgi_next_upstream,
- scgi_next_upstream и uwsgi_next_upstream.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the "http_429" parameter of the "proxy_next_upstream", "fastcgi_next_upstream",
- "scgi_next_upstream", and "uwsgi_next_upstream" directives.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок выделения памяти.
- </para>
- <para lang="en">
- in memory allocation error handling.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директив sendfile и timer_resolution на Linux
- запросы могли зависать.
- </para>
- <para lang="en">
- requests might hang
- when using the "sendfile" and "timer_resolution" directives on Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании с подзапросами директив sendfile и aio_write
- запросы могли зависать.
- </para>
- <para lang="en">
- requests might hang
- when using the "sendfile" and "aio_write" directives with subrequests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_v2_module.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in the ngx_http_v2_module.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- запросы могли зависать
- при использовании с подзапросами директив limit_rate, sendfile_max_chunk,
- limit_req или метода $r->sleep() встроенного перла.
- </para>
- <para lang="en">
- requests might hang
- when using the "limit_rate", "sendfile_max_chunk", "limit_req" directives,
- or the $r->sleep() embedded perl method with subrequests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_slice_module.
- </para>
- <para lang="en">
- in the ngx_http_slice_module.
- </para>
- </change>
- </changes>
- <changes ver="1.11.12" date="2017-03-24">
- <change type="bugfix">
- <para lang="ru">
- nginx мог нагружать процессор;
- ошибка появилась в 1.11.11.
- </para>
- <para lang="en">
- nginx might hog CPU;
- the bug had appeared in 1.11.11.
- </para>
- </change>
- </changes>
- <changes ver="1.11.11" date="2017-03-21">
- <change type="feature">
- <para lang="ru">
- директива worker_shutdown_timeout.
- </para>
- <para lang="en">
- the "worker_shutdown_timeout" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- улучшения в скриптах подсветки синтаксиса для vim.<br/>
- Спасибо Wei-Ko Kao.
- </para>
- <para lang="en">
- vim syntax highlighting scripts improvements.<br/>
- Thanks to Wei-Ko Kao.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при попытке установить переменную $limit_rate в пустую строку
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the $limit_rate variable was set to an empty string.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_cache_background_update, fastcgi_cache_background_update,
- scgi_cache_background_update и uwsgi_cache_background_update
- могли работать некорректно, если использовалась директива if.
- </para>
- <para lang="en">
- the "proxy_cache_background_update", "fastcgi_cache_background_update",
- "scgi_cache_background_update", and "uwsgi_cache_background_update" directives
- might work incorrectly if the "if" directive was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если количество large_client_header_buffers в виртуальном сервере
- отличалось от такового в сервере по умолчанию.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if number of large_client_header_buffers in a virtual server
- was different from the one in the default server.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в почтовом прокси-сервере.
- </para>
- <para lang="en">
- in the mail proxy server.
- </para>
- </change>
- </changes>
- <changes ver="1.11.10" date="2017-02-14">
- <change type="change">
- <para lang="ru">
- формат заголовка кэша был изменен,
- ранее закэшированные ответы будут загружены заново.
- </para>
- <para lang="en">
- cache header format has been changed,
- previously cached responses will be invalidated.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка расширений stale-while-revalidate и stale-if-error
- в строке "Cache-Control" в заголовке ответа бэкенда.
- </para>
- <para lang="en">
- support of "stale-while-revalidate" and "stale-if-error" extensions
- in the "Cache-Control" backend response header line.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_cache_background_update, fastcgi_cache_background_update,
- scgi_cache_background_update и uwsgi_cache_background_update.
- </para>
- <para lang="en">
- the "proxy_cache_background_update", "fastcgi_cache_background_update",
- "scgi_cache_background_update", and "uwsgi_cache_background_update" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь nginx может кэшировать ответы
- со строкой Vary заголовка длиной до 128 символов
- (вместо 42 символов в предыдущих версиях).
- </para>
- <para lang="en">
- nginx is now able to cache responses
- with the "Vary" header line up to 128 characters long
- (instead of 42 characters in previous versions).
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр build директивы server_tokens.<br/>
- Спасибо Tom Thorogood.
- </para>
- <para lang="en">
- the "build" parameter of the "server_tokens" directive.<br/>
- Thanks to Tom Thorogood.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при обработке запросов со строкой "Expect: 100-continue" в заголовке запроса
- в логах могли появляться сообщения "[crit] SSL_write() failed".
- </para>
- <para lang="en">
- "[crit] SSL_write() failed" messages might appear in logs
- when handling requests with the "Expect: 100-continue" request header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_slice_module не работал в именованных location'ах.
- </para>
- <para lang="en">
- the ngx_http_slice_module did not work in named locations.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании AIO после перенаправления запроса с помощью X-Accel-Redirect
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using AIO after an "X-Accel-Redirect" redirection.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- уменьшено потребление памяти для долгоживущих запросов, использующих сжатие.
- </para>
- <para lang="en">
- reduced memory consumption for long-lived requests using gzipping.
- </para>
- </change>
- </changes>
- <changes ver="1.11.9" date="2017-01-24">
- <change type="bugfix">
- <para lang="ru">
- при использовании модуля stream nginx мог нагружать процессор;
- ошибка появилась в 1.11.5.
- </para>
- <para lang="en">
- nginx might hog CPU when using the stream module;
- the bug had appeared in 1.11.5.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- метод аутентификации EXTERNAL в почтовом прокси-сервере
- можно было использовать, даже если он не был разрешён в конфигурации.
- </para>
- <para lang="en">
- EXTERNAL authentication mechanism in mail proxy
- was accepted even if it was not enabled in the configuration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы ssl_verify_client модуля stream
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "ssl_verify_client" directive of the stream module was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива ssl_verify_client модуля stream могла не работать.
- </para>
- <para lang="en">
- the "ssl_verify_client" directive of the stream module might not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при исчерпании рабочим процессом свободных соединений
- keepalive-соединения могли закрываться излишне агрессивно.<br/>
- Спасибо Joel Cunningham.
- </para>
- <para lang="en">
- closing keepalive connections due to no free worker connections
- might be too aggressive.<br/>
- Thanks to Joel Cunningham.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы sendfile на FreeBSD и macOS
- мог возвращаться некорректный ответ;
- ошибка появилась в 1.7.8.
- </para>
- <para lang="en">
- an incorrect response might be returned
- when using the "sendfile" directive on FreeBSD and macOS;
- the bug had appeared in 1.7.8.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы aio_write
- ответ мог сохраняться в кэш не полностью.
- </para>
- <para lang="en">
- a truncated response might be stored in cache
- when using the "aio_write" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы aio_write
- могла происходить утечка сокетов.
- </para>
- <para lang="en">
- a socket leak might occur
- when using the "aio_write" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.11.8" date="2016-12-27">
- <change type="feature">
- <para lang="ru">
- директива absolute_redirect.
- </para>
- <para lang="en">
- the "absolute_redirect" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр escape директивы log_format.
- </para>
- <para lang="en">
- the "escape" parameter of the "log_format" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- проверка клиентских SSL-сертификатов в модуле stream.
- </para>
- <para lang="en">
- client SSL certificates verification in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_session_ticket_key поддерживает
- шифрование TLS session tickets с помощью AES256
- при использовании с 80-байтными ключами.
- </para>
- <para lang="en">
- the "ssl_session_ticket_key" directive supports
- AES256 encryption of TLS session tickets
- when used with 80-byte keys.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка vim-commentary в скриптах для vim.<br/>
- Спасибо Armin Grodon.
- </para>
- <para lang="en">
- vim-commentary support in vim scripts.<br/>
- Thanks to Armin Grodon.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- рекурсия при получении значений переменных не ограничивалась.
- </para>
- <para lang="en">
- recursion when evaluating variables was not limited.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_stream_ssl_preread_module.
- </para>
- <para lang="en">
- in the ngx_stream_ssl_preread_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если сервер, описанный в блоке upstream в модуле stream,
- был признан неработающим, то после истечения fail_timeout он
- признавался работающим только после завершения тестового соединения;
- теперь достаточно, чтобы соединение было успешно установлено.
- </para>
- <para lang="en">
- if a server in an upstream in the stream module failed,
- it was considered alive only when a test connection sent
- to it after fail_timeout was closed;
- now a successfully established connection is enough.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows не собирался с 64-битным Visual Studio.
- </para>
- <para lang="en">
- nginx/Windows could not be built with 64-bit Visual Studio.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows не собирался с OpenSSL 1.1.0.
- </para>
- <para lang="en">
- nginx/Windows could not be built with OpenSSL 1.1.0.
- </para>
- </change>
- </changes>
- <changes ver="1.11.7" date="2016-12-13">
- <change type="change">
- <para lang="ru">
- переменная $ssl_client_verify теперь
- в случае ошибки проверки клиентского сертификата
- содержит строку с описанием ошибки,
- например, "FAILED:certificate has expired".
- </para>
- <para lang="en">
- now in case of a client certificate verification error
- the $ssl_client_verify variable contains a string with the failure reason,
- for example, "FAILED:certificate has expired".
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $ssl_ciphers, $ssl_curves,
- $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
- </para>
- <para lang="en">
- the $ssl_ciphers, $ssl_curves,
- $ssl_client_v_start, $ssl_client_v_end, and $ssl_client_v_remain variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр volatile директивы map.
- </para>
- <para lang="en">
- the "volatile" parameter of the "map" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при сборке динамических модулей
- не учитывались заданные для модуля зависимости.
- </para>
- <para lang="en">
- dependencies specified for a module
- were ignored while building dynamic modules.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 и директив limit_req или auth_request
- тело запроса могло быть повреждено;
- ошибка появилась в 1.11.0.
- </para>
- <para lang="en">
- when using HTTP/2 and the "limit_req" or "auth_request" directives
- client request body might be corrupted;
- the bug had appeared in 1.11.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 1.11.3.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process when using HTTP/2;
- the bug had appeared in 1.11.3.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_mp4_module.<br/>
- Спасибо Congcong Hu.
- </para>
- <para lang="en">
- in the ngx_http_mp4_module.<br/>
- Thanks to Congcong Hu.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_perl_module.
- </para>
- <para lang="en">
- in the ngx_http_perl_module.
- </para>
- </change>
- </changes>
- <changes ver="1.11.6" date="2016-11-15">
- <change type="change">
- <para lang="ru">
- формат переменных $ssl_client_s_dn и $ssl_client_i_dn
- изменён на соответствующий RFC 2253 (RFC 4514);
- значения в старом формате доступны через переменные
- $ssl_client_s_dn_legacy и $ssl_client_i_dn_legacy.
- </para>
- <para lang="en">
- format of the $ssl_client_s_dn and $ssl_client_i_dn variables
- has been changed to follow RFC 2253 (RFC 4514);
- values in the old format are available in
- the $ssl_client_s_dn_legacy and $ssl_client_i_dn_legacy variables.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- при сохранении временных файлов в каталоге кэша
- они теперь располагаются не в отдельном подкаталоге для временных файлов,
- а в том же подкаталоге, что и соответствующие файлы в кэше.
- </para>
- <para lang="en">
- when storing temporary files in a cache directory
- they will be stored in the same subdirectories as corresponding cache files
- instead of a separate subdirectory for temporary files.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка метода аутентификации EXTERNAL
- в почтовом прокси-сервере.<br/>
- Спасибо Robert Norris.
- </para>
- <para lang="en">
- EXTERNAL authentication mechanism support
- in mail proxy.<br/>
- Thanks to Robert Norris.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка WebP в модуле ngx_http_image_filter_module.
- </para>
- <para lang="en">
- WebP support in the ngx_http_image_filter_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_method поддерживает переменные.<br/>
- Спасибо Дмитрию Лазуркину.
- </para>
- <para lang="en">
- variables support in the "proxy_method" directive.<br/>
- Thanks to Dmitry Lazurkin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива http2_max_requests в модуле ngx_http_v2_module.
- </para>
- <para lang="en">
- the "http2_max_requests" directive in the ngx_http_v2_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_cache_max_range_offset, fastcgi_cache_max_range_offset,
- scgi_cache_max_range_offset и uwsgi_cache_max_range_offset.
- </para>
- <para lang="en">
- the "proxy_cache_max_range_offset", "fastcgi_cache_max_range_offset",
- "scgi_cache_max_range_offset", and "uwsgi_cache_max_range_offset" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- плавное завершение старых рабочих процессов могло занимать бесконечное время
- при использовании HTTP/2.
- </para>
- <para lang="en">
- graceful shutdown of old worker processes might require infinite time
- when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_mp4_module.
- </para>
- <para lang="en">
- in the ngx_http_mp4_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при проксировании WebSocket-соединений и включённом кэшировании
- в логах могли появляться сообщения "ignore long locked inactive cache entry".
- </para>
- <para lang="en">
- "ignore long locked inactive cache entry" alerts might appear in logs
- when proxying WebSocket connections with caching enabled.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если во время SSL handshake с бэкендом происходил таймаут,
- nginx ничего не писал в лог
- и возвращал ответ с кодом 502 вместо 504.
- </para>
- <para lang="en">
- nginx did not write anything to log
- and returned a response with code 502 instead of 504
- when a timeout occurred during an SSL handshake to a backend.
- </para>
- </change>
- </changes>
- <changes ver="1.11.5" date="2016-10-11">
- <change type="change">
- <para lang="ru">
- параметр configure --with-ipv6 упразднён,
- поддержка IPv6 теперь собирается автоматически.
- </para>
- <para lang="en">
- the --with-ipv6 configure option was removed,
- now IPv6 support is configured automatically.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь, если в блоке upstream не оказалось доступных серверов,
- nginx не сбрасывает статистику ошибок всех серверов, как делал ранее,
- а ожидает истечения fail_timeout.
- </para>
- <para lang="en">
- now if there are no available servers in an upstream,
- nginx will not reset number of failures of all servers as it previously did,
- but will wait for fail_timeout to expire.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_stream_ssl_preread_module.
- </para>
- <para lang="en">
- the ngx_stream_ssl_preread_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива server в блоке upstream поддерживает параметр max_conns.
- </para>
- <para lang="en">
- the "server" directive in the "upstream" context supports
- the "max_conns" parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр configure --with-compat.
- </para>
- <para lang="en">
- the --with-compat configure option.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметры manager_files, manager_threshold и manager_sleep
- директив proxy_cache_path, fastcgi_cache_path, scgi_cache_path и
- uwsgi_cache_path.
- </para>
- <para lang="en">
- "manager_files", "manager_threshold", and "manager_sleep" parameters
- of the "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path", and
- "uwsgi_cache_path" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при сборке perl-модуля не использовались флаги,
- заданные с помощью параметра configure --with-ld-opt.
- </para>
- <para lang="en">
- flags passed by the --with-ld-opt configure option
- were not used while building perl module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве add_after_body при использовании совместно с директивой sub_filter.
- </para>
- <para lang="en">
- in the "add_after_body" directive when used with the "sub_filter" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в переменной $realip_remote_addr.
- </para>
- <para lang="en">
- in the $realip_remote_addr variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы dav_access, proxy_store_access, fastcgi_store_access,
- scgi_store_access и uwsgi_store_access
- игнорировали права, заданные для пользователя.
- </para>
- <para lang="en">
- the "dav_access", "proxy_store_access", "fastcgi_store_access",
- "scgi_store_access", and "uwsgi_store_access" directives
- ignored permissions specified for user.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- unix domain listen-сокеты могли не наследоваться
- при обновлении исполняемого файла на Linux.
- </para>
- <para lang="en">
- unix domain listen sockets might not be inherited
- during binary upgrade on Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx возвращал ошибку 400 на запросы
- с символом "-" в HTTP-методе.
- </para>
- <para lang="en">
- nginx returned the 400 response on requests
- with the "-" character in the HTTP method.
- </para>
- </change>
- </changes>
- <changes ver="1.11.4" date="2016-09-13">
- <change type="feature">
- <para lang="ru">
- переменная $upstream_bytes_received.
- </para>
- <para lang="en">
- the $upstream_bytes_received variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $bytes_received, $session_time, $protocol, $status,
- $upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
- $upstream_connect_time, $upstream_first_byte_time
- и $upstream_session_time в модуле stream.
- </para>
- <para lang="en">
- the $bytes_received, $session_time, $protocol, $status,
- $upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
- $upstream_connect_time, $upstream_first_byte_time,
- and $upstream_session_time variables in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_stream_log_module.
- </para>
- <para lang="en">
- the ngx_stream_log_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр proxy_protocol в директиве listen,
- переменные $proxy_protocol_addr и $proxy_protocol_port
- в модуле stream.
- </para>
- <para lang="en">
- the "proxy_protocol" parameter of the "listen" directive,
- the $proxy_protocol_addr and $proxy_protocol_port variables
- in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_stream_realip_module.
- </para>
- <para lang="en">
- the ngx_stream_realip_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с модулем stream и модулем ngx_http_ssl_module,
- но без модуля ngx_stream_ssl_module;
- ошибка появилась в 1.11.3.
- </para>
- <para lang="en">
- nginx could not be built with the stream module and the ngx_http_ssl_module,
- but without ngx_stream_ssl_module;
- the bug had appeared in 1.11.3.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
- ошибка появилась в 1.11.2.
- </para>
- <para lang="en">
- the IP_BIND_ADDRESS_NO_PORT socket option was not used;
- the bug had appeared in 1.11.2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в параметре ranges директивы geo.
- </para>
- <para lang="en">
- in the "ranges" parameter of the "geo" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директив "aio threads" и sendfile
- мог возвращаться некорректный ответ; ошибка появилась в 1.9.13.
- </para>
- <para lang="en">
- an incorrect response might be returned
- when using the "aio threads" and "sendfile" directives;
- the bug had appeared in 1.9.13.
- </para>
- </change>
- </changes>
- <changes ver="1.11.3" date="2016-07-26">
- <change type="change">
- <para lang="ru">
- теперь accept_mutex по умолчанию выключен.
- </para>
- <para lang="en">
- now the "accept_mutex" directive is turned off by default.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь nginx использует EPOLLEXCLUSIVE на Linux.
- </para>
- <para lang="en">
- now nginx uses EPOLLEXCLUSIVE on Linux.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_stream_geo_module.
- </para>
- <para lang="en">
- the ngx_stream_geo_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_stream_geoip_module.
- </para>
- <para lang="en">
- the ngx_stream_geoip_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_stream_split_clients_module.
- </para>
- <para lang="en">
- the ngx_stream_split_clients_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_pass и proxy_ssl_name в модуле stream
- поддерживают переменные.
- </para>
- <para lang="en">
- variables support
- in the "proxy_pass" and "proxy_ssl_name" directives in the stream module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов при использовании HTTP/2.
- </para>
- <para lang="en">
- socket leak when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в configure.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in configure tests.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- </changes>
- <changes ver="1.11.2" date="2016-07-05">
- <change type="change">
- <para lang="ru">
- теперь nginx всегда использует внутренние реализации MD5 и SHA1;
- параметры configure --with-md5 и --with-sha1 упразднены.
- </para>
- <para lang="en">
- now nginx always uses internal MD5 and SHA1 implementations;
- the --with-md5 and --with-sha1 configure options were canceled.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка переменных в модуле stream.
- </para>
- <para lang="en">
- variables support in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_stream_map_module.
- </para>
- <para lang="en">
- the ngx_stream_map_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_stream_return_module.
- </para>
- <para lang="en">
- the ngx_stream_return_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в директивах proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
- теперь можно указывать порт.
- </para>
- <para lang="en">
- a port can be specified in the "proxy_bind", "fastcgi_bind",
- "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь nginx использует опцию сокета IP_BIND_ADDRESS_NO_PORT, если она доступна.
- </para>
- <para lang="en">
- now nginx uses the IP_BIND_ADDRESS_NO_PORT socket option when available.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 и директивы proxy_request_buffering
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using HTTP/2 and the "proxy_request_buffering" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2
- к запросам, передаваемым на бэкенд,
- всегда добавлялась строка заголовка "Content-Length",
- даже если у запроса не было тела.
- </para>
- <para lang="en">
- the "Content-Length" request header line
- was always added to requests passed to backends,
- including requests without body,
- when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2
- в логах могли появляться сообщения "http request count is zero".
- </para>
- <para lang="en">
- "http request count is zero" alerts might appear in logs
- when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы sub_filter
- могло буферизироваться больше данных, чем это необходимо;
- проблема появилась в 1.9.4.
- </para>
- <para lang="en">
- unnecessary buffering might occur
- when using the "sub_filter" directive;
- the issue had appeared in 1.9.4.
- </para>
- </change>
- </changes>
- <changes ver="1.11.1" date="2016-05-31">
- <change type="security">
- <para lang="ru">
- при записи тела специально созданного запроса во временный файл
- в рабочем процессе мог происходить segmentation fault
- (CVE-2016-4450);
- ошибка появилась в 1.3.9.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- while writing a specially crafted request body to a temporary file
- (CVE-2016-4450);
- the bug had appeared in 1.3.9.
- </para>
- </change>
- </changes>
- <changes ver="1.11.0" date="2016-05-24">
- <change type="feature">
- <para lang="ru">
- параметр transparent директив proxy_bind, fastcgi_bind,
- memcached_bind, scgi_bind и uwsgi_bind.
- </para>
- <para lang="en">
- the "transparent" parameter of the "proxy_bind", "fastcgi_bind",
- "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $request_id.
- </para>
- <para lang="en">
- the $request_id variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива map поддерживает комбинации нескольких переменных
- в качестве результирующих значений.
- </para>
- <para lang="en">
- the "map" directive supports combinations of multiple variables
- as resulting values.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь при использовании метода epoll
- nginx проверяет, поддерживает ли ядро события EPOLLRDHUP,
- и соответственно оптимизирует обработку соединений.
- </para>
- <para lang="en">
- now nginx checks if EPOLLRDHUP events are supported by kernel,
- and optimizes connection handling accordingly
- if the "epoll" method is used.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы ssl_certificate и ssl_certificate_key
- теперь можно указывать несколько раз
- для загрузки сертификатов разных типов (например, RSA и ECDSA).
- </para>
- <para lang="en">
- the "ssl_certificate" and "ssl_certificate_key" directives
- can be specified multiple times
- to load certificates of different types (for example, RSA and ECDSA).
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- при использовании OpenSSL 1.0.2 и новее
- с помощью директивы ssl_ecdh_curve теперь можно задать список кривых;
- по умолчанию используется встроенный в OpenSSL список кривых.
- </para>
- <para lang="en">
- the "ssl_ecdh_curve" directive now allows specifying a list of curves
- when using OpenSSL 1.0.2 or newer;
- by default a list built into OpenSSL is used.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- для использования DHE-шифров теперь надо явно задавать файл параметров
- с помощью директивы ssl_dhparam.
- </para>
- <para lang="en">
- to use DHE ciphers it is now required to specify parameters
- using the "ssl_dhparam" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $proxy_protocol_port.
- </para>
- <para lang="en">
- the $proxy_protocol_port variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $realip_remote_port в модуле ngx_http_realip_module.
- </para>
- <para lang="en">
- the $realip_remote_port variable in the ngx_http_realip_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_realip_module теперь позволяет устанавливать
- не только адрес, но и порт клиента.
- </para>
- <para lang="en">
- the ngx_http_realip_module is now able to set the client port
- in addition to the address.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- при попытке запросить виртуальный сервер,
- отличающийся от согласованного в процессе SSL handshake,
- теперь возвращается ответ "421 Misdirected Request";
- это улучшает совместимость с некоторыми HTTP/2-клиентами
- в случае использования клиентских сертификатов.
- </para>
- <para lang="en">
- the "421 Misdirected Request" response now used
- when rejecting requests to a virtual server
- different from one negotiated during an SSL handshake;
- this improves interoperability with some HTTP/2 clients
- when using client certificates.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- HTTP/2-клиенты теперь могут сразу присылать тело запроса;
- директива http2_body_preread_size позволяет указать размер буфера, который
- будет использоваться до того, как nginx начнёт читать тело.
- </para>
- <para lang="en">
- HTTP/2 clients can now start sending request body immediately;
- the "http2_body_preread_size" directive controls size of the buffer used
- before nginx will start reading client request body.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы proxy_cache_bypass
- не обновлялись закэшированные ошибочные ответы.
- </para>
- <para lang="en">
- cached error responses were not updated
- when using the "proxy_cache_bypass" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.9.15" date="2016-04-19">
- <change type="bugfix">
- <para lang="ru">
- при использовании HHVM в качестве FastCGI-сервера
- могли возникать ошибки "recv() failed".
- </para>
- <para lang="en">
- "recv() failed" errors might occur
- when using HHVM as a FastCGI server.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 и директив limit_req или auth_request
- при чтении тела запроса мог произойти таймаут
- или ошибка "client violated flow control";
- ошибка появилась в 1.9.14.
- </para>
- <para lang="en">
- when using HTTP/2 and the "limit_req" or "auth_request" directives
- a timeout or a "client violated flow control" error
- might occur while reading client request body;
- the bug had appeared in 1.9.14.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- при использовании HTTP/2 ответ мог не показываться некоторыми браузерами,
- если тело запроса было прочитано не целиком;
- ошибка появилась в 1.9.14.
- </para>
- <para lang="en">
- a response might not be shown by some browsers
- if HTTP/2 was used and client request body was not fully read;
- the bug had appeared in 1.9.14.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы "aio threads" соединения могли зависать.<br/>
- Спасибо Mindaugas Rasiukevicius.
- </para>
- <para lang="en">
- connections might hang when using the "aio threads" directive.<br/>
- Thanks to Mindaugas Rasiukevicius.
- </para>
- </change>
- </changes>
- <changes ver="1.9.14" date="2016-04-05">
- <change type="feature">
- <para lang="ru">
- совместимость с OpenSSL 1.1.0.
- </para>
- <para lang="en">
- OpenSSL 1.1.0 compatibility.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_request_buffering, fastcgi_request_buffering,
- scgi_request_buffering и uwsgi_request_buffering
- теперь работают при использовании HTTP/2.
- </para>
- <para lang="en">
- the "proxy_request_buffering", "fastcgi_request_buffering",
- "scgi_request_buffering", and "uwsgi_request_buffering" directives
- now work with HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2
- в логах могли появляться сообщения "zero size buf in output".
- </para>
- <para lang="en">
- "zero size buf in output" alerts might appear in logs
- when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2
- директива client_max_body_size могла работать неверно.
- </para>
- <para lang="en">
- the "client_max_body_size" directive might work incorrectly
- when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- незначительных ошибок логгирования.
- </para>
- <para lang="en">
- of minor bugs in logging.
- </para>
- </change>
- </changes>
- <changes ver="1.9.13" date="2016-03-29">
- <change type="change">
- <para lang="ru">
- неидемпотентные запросы (POST, LOCK, PATCH)
- теперь по умолчанию не передаются на другой сервер,
- если запрос уже был отправлен на бэкенд;
- параметр non_idempotent директивы proxy_next_upstream
- явно разрешает повторять такие запросы.
- </para>
- <para lang="en">
- non-idempotent requests (POST, LOCK, PATCH)
- are no longer passed to the next server by default
- if a request has been sent to a backend;
- the "non_idempotent" parameter of the "proxy_next_upstream" directive
- explicitly allows retrying such requests.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module теперь можно собрать динамически.
- </para>
- <para lang="en">
- the ngx_http_perl_module can be built dynamically.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка UDP в модуле stream.
- </para>
- <para lang="en">
- UDP support in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива aio_write.
- </para>
- <para lang="en">
- the "aio_write" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь cache manager следит за количеством элементов в кэше
- и старается не допускать переполнений зоны разделяемой памяти.
- </para>
- <para lang="en">
- now cache manager monitors number of elements in caches
- and tries to avoid cache keys zone overflows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директив sendfile и aio с подзапросами
- в логах могли появляться сообщения "task already active" и "second aio post".
- </para>
- <para lang="en">
- "task already active" and "second aio post" alerts might appear in logs
- when using the "sendfile" and "aio" directives with subrequests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании кэширования
- в логах могли появляться сообщения "zero size buf in output",
- если клиент закрывал соединение преждевременно.
- </para>
- <para lang="en">
- "zero size buf in output" alerts might appear in logs
- if caching was used
- and a client closed a connection prematurely.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании кэширования
- соединения с клиентами могли закрываться без необходимости.<br/>
- Спасибо Justin Li.
- </para>
- <para lang="en">
- connections with clients might be closed needlessly
- if caching was used.<br/>
- Thanks to Justin Li.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог нагружать процессор
- при использовании директивы sendfile на Linux и Solaris,
- если отправляемый файл был изменён в процессе отправки.
- </para>
- <para lang="en">
- nginx might hog CPU
- if the "sendfile" directive was used on Linux or Solaris
- and a file being sent was changed during sending.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директив sendfile и "aio threads"
- соединения могли зависать.
- </para>
- <para lang="en">
- connections might hang
- when using the "sendfile" and "aio threads" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директивах proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass
- при использовании переменных.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives
- when using variables.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_sub_filter_module.
- </para>
- <para lang="en">
- in the ngx_http_sub_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в закэшированном соединении к бэкенду происходила ошибка,
- запрос передавался на другой сервер
- без учёта директивы proxy_next_upstream.
- </para>
- <para lang="en">
- if an error occurred in a cached backend connection,
- the request was passed to the next server
- regardless of the proxy_next_upstream directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки "CreateFile() failed" при создании временных файлов на Windows.
- </para>
- <para lang="en">
- "CreateFile() failed" errors when creating temporary files on Windows.
- </para>
- </change>
- </changes>
- <changes ver="1.9.12" date="2016-02-24">
- <change type="feature">
- <para lang="ru">
- кодирование Хаффмана заголовков ответов в HTTP/2.<br/>
- Спасибо Владу Краснову.
- </para>
- <para lang="en">
- Huffman encoding of response headers in HTTP/2.<br/>
- Thanks to Vlad Krasnov.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива worker_cpu_affinity теперь поддерживает более 64 процессоров.
- </para>
- <para lang="en">
- the "worker_cpu_affinity" directive now supports more than 64 CPUs.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость со сторонними модулями на C++;
- ошибка появилась в 1.9.11.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- compatibility with 3rd party C++ modules;
- the bug had appeared in 1.9.11.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался статически с OpenSSL на Linux;
- ошибка появилась в 1.9.11.
- </para>
- <para lang="en">
- nginx could not be built statically with OpenSSL on Linux;
- the bug had appeared in 1.9.11.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива "add_header ... always" с пустым значением
- не удаляла из заголовков ошибочных ответов
- строки Last-Modified и ETag.
- </para>
- <para lang="en">
- the "add_header ... always" directive with an empty value
- did not delete "Last-Modified" and "ETag" header lines
- from error responses.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- при использовании OpenSSL 1.0.2f в логах могли появляться
- сообщения "called a function you should not call" и
- "shutdown while in init".
- </para>
- <para lang="en">
- "called a function you should not call"
- and "shutdown while in init" messages might appear in logs
- when using OpenSSL 1.0.2f.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибочные заголовки могли логгироваться некорректно.
- </para>
- <para lang="en">
- invalid headers might be logged incorrectly.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов при использовании HTTP/2.
- </para>
- <para lang="en">
- socket leak when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_v2_module.
- </para>
- <para lang="en">
- in the ngx_http_v2_module.
- </para>
- </change>
- </changes>
- <changes ver="1.9.11" date="2016-02-09">
- <change type="feature">
- <para lang="ru">
- теперь resolver поддерживает TCP.
- </para>
- <para lang="en">
- TCP support in resolver.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- динамические модули.
- </para>
- <para lang="en">
- dynamic modules.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2
- переменная $request_length не учитывала размер заголовков запроса.
- </para>
- <para lang="en">
- the $request_length variable did not include size of request headers
- when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_v2_module.
- </para>
- <para lang="en">
- in the ngx_http_v2_module.
- </para>
- </change>
- </changes>
- <changes ver="1.9.10" date="2016-01-26">
- <change type="security">
- <para lang="ru">
- при использовании директивы resolver
- во время обработки ответов DNS-сервера
- могло происходить разыменование некорректного адреса,
- что позволяло атакующему,
- имеющему возможность подделывать UDP-пакеты от DNS-сервера,
- вызвать segmentation fault в рабочем процессе (CVE-2016-0742).
- </para>
- <para lang="en">
- invalid pointer dereference might occur
- during DNS server response processing
- if the "resolver" directive was used,
- allowing an attacker who is able to forge UDP packets from the DNS server
- to cause segmentation fault in a worker process (CVE-2016-0742).
- </para>
- </change>
- <change type="security">
- <para lang="ru">
- при использовании директивы resolver
- во время обработки CNAME-записей
- могло произойти обращение к ранее освобождённой памяти,
- что позволяло атакующему,
- имеющему возможность инициировать преобразование произвольных имён в адреса,
- вызвать segmentation fault в рабочем процессе,
- а также потенциально могло иметь другие последствия (CVE-2016-0746).
- </para>
- <para lang="en">
- use-after-free condition might occur
- during CNAME response processing
- if the "resolver" directive was used,
- allowing an attacker who is able to trigger name resolution
- to cause segmentation fault in a worker process,
- or might have potential other impact (CVE-2016-0746).
- </para>
- </change>
- <change type="security">
- <para lang="ru">
- при использовании директивы resolver
- во время обработки CNAME-записей
- не во всех случаях проверялось ограничение
- на максимальное количество записей в цепочке,
- что позволяло атакующему,
- имеющему возможность инициировать преобразование произвольных имён в адреса,
- вызвать чрезмерное потребление ресурсов рабочими процессами (CVE-2016-0747).
- </para>
- <para lang="en">
- CNAME resolution was insufficiently limited
- if the "resolver" directive was used,
- allowing an attacker who is able to trigger arbitrary name resolution
- to cause excessive resource consumption in worker processes (CVE-2016-0747).
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр auto директивы worker_cpu_affinity.
- </para>
- <para lang="en">
- the "auto" parameter of the "worker_cpu_affinity" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр proxy_protocol директивы listen не работал
- с IPv6 listen-сокетами.
- </para>
- <para lang="en">
- the "proxy_protocol" parameter of the "listen" directive did not work
- with IPv6 listen sockets.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы keepalive
- соединения к бэкендам могли кэшироваться некорректно.
- </para>
- <para lang="en">
- connections to upstream servers might be cached incorrectly
- when using the "keepalive" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- после перенаправления запроса с помощью X-Accel-Redirect
- при проксировании использовался HTTP-метод оригинального запроса.
- </para>
- <para lang="en">
- proxying used the HTTP method of the original request
- after an "X-Accel-Redirect" redirection.
- </para>
- </change>
- </changes>
- <changes ver="1.9.9" date="2015-12-09">
- <change type="bugfix">
- <para lang="ru">
- проксирование в unix domain сокеты не работало при использовании переменных;
- ошибка появилась в 1.9.8.
- </para>
- <para lang="en">
- proxying to unix domain sockets did not work when using variables;
- the bug had appeared in 1.9.8.
- </para>
- </change>
- </changes>
- <changes ver="1.9.8" date="2015-12-08">
- <change type="feature">
- <para lang="ru">
- поддержка pwritev().
- </para>
- <para lang="en">
- pwritev() support.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива include в блоке upstream.
- </para>
- <para lang="en">
- the "include" directive inside the "upstream" block.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_slice_module.
- </para>
- <para lang="en">
- the ngx_http_slice_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании LibreSSL
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 1.9.6.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using LibreSSL;
- the bug had appeared in 1.9.6.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог не собираться на OS X.
- </para>
- <para lang="en">
- nginx could not be built on OS X in some cases.
- </para>
- </change>
- </changes>
- <changes ver="1.9.7" date="2015-11-17">
- <change type="feature">
- <para lang="ru">
- параметр nohostname логгирования в syslog.
- </para>
- <para lang="en">
- the "nohostname" parameter of logging to syslog.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_cache_convert_head.
- </para>
- <para lang="en">
- the "proxy_cache_convert_head" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $realip_remote_addr в модуле ngx_http_realip_module.
- </para>
- <para lang="en">
- the $realip_remote_addr variable in the ngx_http_realip_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива expires могла не срабатывать при использовании переменных.
- </para>
- <para lang="en">
- the "expires" directive might not work when using variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 1.9.6.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using HTTP/2;
- the bug had appeared in 1.9.6.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если nginx был собран с модулем ngx_http_v2_module,
- протокол HTTP/2 мог быть использован клиентом,
- даже если не был указан параметр http2 директивы listen.
- </para>
- <para lang="en">
- if nginx was built with the ngx_http_v2_module
- it was possible to use the HTTP/2 protocol
- even if the "http2" parameter of the "listen" directive was not specified.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_v2_module.
- </para>
- <para lang="en">
- in the ngx_http_v2_module.
- </para>
- </change>
- </changes>
- <changes ver="1.9.6" date="2015-10-27">
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2
- в рабочем процессе мог произойти segmentation fault.<br/>
- Спасибо Piotr Sikora и Denis Andzakovic.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using HTTP/2.<br/>
- Thanks to Piotr Sikora and Denis Andzakovic.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP/2 переменная $server_protocol была пустой.
- </para>
- <para lang="en">
- the $server_protocol variable was empty when using HTTP/2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL-соединения к бэкендам в модуле stream
- могли неожиданно завершаться по таймауту.
- </para>
- <para lang="en">
- backend SSL connections in the stream module
- might be timed out unexpectedly.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании различных настроек ssl_session_cache
- в разных виртуальных серверах
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if different ssl_session_cache settings were used
- in different virtual servers.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows не собирался с MinGW gcc;
- ошибка появилась в 1.9.4.<br/>
- Спасибо Kouhei Sutou.
- </para>
- <para lang="en">
- nginx/Windows could not be built with MinGW gcc;
- the bug had appeared in 1.9.4.<br/>
- Thanks to Kouhei Sutou.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы timer_resolution на Windows время не обновлялось.
- </para>
- <para lang="en">
- time was not updated when the timer_resolution directive was used on Windows.
- </para>
- </change>
- <change>
- <para lang="ru">
- Незначительные исправления и улучшения.<br/>
- Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
- </para>
- <para lang="en">
- Miscellaneous minor fixes and improvements.<br/>
- Thanks to Markus Linnala, Kurtis Nusbaum and Piotr Sikora.
- </para>
- </change>
- </changes>
- <changes ver="1.9.5" date="2015-09-22">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_v2_module (заменяет модуль ngx_http_spdy_module).<br/>
- Спасибо Dropbox и Automattic за спонсирование разработки.
- </para>
- <para lang="en">
- the ngx_http_v2_module (replaces ngx_http_spdy_module).<br/>
- Thanks to Dropbox and Automattic for sponsoring this work.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь по умолчанию директива output_buffers использует два буфера.
- </para>
- <para lang="en">
- now the "output_buffers" directive uses two buffers by default.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx ограничивает максимальную вложенность подзапросов,
- а не количество одновременных подзапросов.
- </para>
- <para lang="en">
- now nginx limits subrequests recursion,
- not simultaneous subrequests.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь при возврате ответов из кэша nginx проверяет ключ полностью.<br/>
- Спасибо Геннадию Махомеду и Сергею Брестеру.
- </para>
- <para lang="en">
- now nginx checks the whole cache key when returning a response from cache.<br/>
- Thanks to Gena Makhomed and Sergey Brester.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании кэша
- в логах могли появляться сообщения "header already sent";
- ошибка появилась в 1.7.5.
- </para>
- <para lang="en">
- "header already sent" alerts might appear in logs
- when using cache;
- the bug had appeared in 1.7.5.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании CephFS и директивы timer_resolution на Linux
- в логах могли появляться сообщения
- "writev() failed (4: Interrupted system call)".
- </para>
- <para lang="en">
- "writev() failed (4: Interrupted system call)"
- errors might appear in logs
- when using CephFS and the "timer_resolution" directive on Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок конфигурации.<br/>
- Спасибо Markus Linnala.
- </para>
- <para lang="en">
- in invalid configurations handling.<br/>
- Thanks to Markus Linnala.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы sub_filter на уровне http
- в рабочем процессе происходил segmentation fault;
- ошибка появилась в 1.9.4.
- </para>
- <para lang="en">
- a segmentation fault occurred in a worker process
- if the "sub_filter" directive was used at http level;
- the bug had appeared in 1.9.4.
- </para>
- </change>
- </changes>
- <changes ver="1.9.4" date="2015-08-18">
- <change type="change">
- <para lang="ru">
- директивы proxy_downstream_buffer и proxy_upstream_buffer в модуле stream
- заменены директивой proxy_buffer_size.
- </para>
- <para lang="en">
- the "proxy_downstream_buffer" and "proxy_upstream_buffer" directives
- of the stream module are replaced with the "proxy_buffer_size" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива tcp_nodelay в модуле stream.
- </para>
- <para lang="en">
- the "tcp_nodelay" directive in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь можно указать несколько директив sub_filter одновременно.
- </para>
- <para lang="en">
- multiple "sub_filter" directives can be used simultaneously.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива sub_filter поддерживает переменные в строке поиска.
- </para>
- <para lang="en">
- variables support in the search string of the "sub_filter" directive.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- тестирование конфигурации могло не работать под Linux OpenVZ.<br/>
- Спасибо Геннадию Махомеду.
- </para>
- <para lang="en">
- configuration testing might fail under Linux OpenVZ.<br/>
- Thanks to Gena Makhomed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- после переконфигурации старые рабочие процессы могли сильно нагружать процессор
- при больших значениях worker_connections.
- </para>
- <para lang="en">
- old worker processes might hog CPU after reconfiguration
- with a large number of worker_connections.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при совместном использовании директив try_files и alias
- внутри location'а, заданного регулярным выражением,
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 1.7.1.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "try_files" and "alias" directives were used
- inside a location given by a regular expression;
- the bug had appeared in 1.7.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива try_files внутри вложенного location'а, заданного регулярным
- выражением, работала неправильно, если во внешнем location'е использовалась
- директива alias.
- </para>
- <para lang="en">
- the "try_files" directive inside a nested location
- given by a regular expression worked incorrectly
- if the "alias" directive was used in the outer location.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок при построении хэш-таблиц.
- </para>
- <para lang="en">
- in hash table initialization error handling.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с Visual Studio 2015.
- </para>
- <para lang="en">
- nginx could not be built with Visual Studio 2015.
- </para>
- </change>
- </changes>
- <changes ver="1.9.3" date="2015-07-14">
- <change type="change">
- <para lang="ru">
- дублирующиеся блоки http, mail и stream теперь запрещены.
- </para>
- <para lang="en">
- duplicate "http", "mail", and "stream" blocks are now disallowed.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ограничение количества соединений в модуле stream.
- </para>
- <para lang="en">
- connection limiting in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ограничение скорости в модуле stream.
- </para>
- <para lang="en">
- data rate limiting in the stream module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива zone в блоке upstream не работала на Windows.
- </para>
- <para lang="en">
- the "zone" directive inside the "upstream" block did not work on Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с LibreSSL в модуле stream.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- compatibility with LibreSSL in the stream module.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в параметре --builddir в configure.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in the "--builddir" configure parameter.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива ssl_stapling_file не работала;
- ошибка появилась в 1.9.2.<br/>
- Спасибо Faidon Liambotis и Brandon Black.
- </para>
- <para lang="en">
- the "ssl_stapling_file" directive did not work;
- the bug had appeared in 1.9.2.<br/>
- Thanks to Faidon Liambotis and Brandon Black.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы ssl_stapling
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 1.9.2.<br/>
- Спасибо Matthew Baldwin.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "ssl_stapling" directive was used;
- the bug had appeared in 1.9.2.<br/>
- Thanks to Matthew Baldwin.
- </para>
- </change>
- </changes>
- <changes ver="1.9.2" date="2015-06-16">
- <change type="feature">
- <para lang="ru">
- параметр backlog директивы listen
- в почтовом прокси-сервере и модуле stream.
- </para>
- <para lang="en">
- the "backlog" parameter of the "listen" directives
- of the mail proxy and stream modules.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы allow и deny в модуле stream.
- </para>
- <para lang="en">
- the "allow" and "deny" directives in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_bind в модуле stream.
- </para>
- <para lang="en">
- the "proxy_bind" directive in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_protocol в модуле stream.
- </para>
- <para lang="en">
- the "proxy_protocol" directive in the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ключ -T.
- </para>
- <para lang="en">
- the -T switch.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр REQUEST_SCHEME добавлен в стандартные конфигурационные файлы
- fastcgi.conf, fastcgi_params, scgi_params и uwsgi_params.
- </para>
- <para lang="en">
- the REQUEST_SCHEME parameter added to the fastcgi.conf, fastcgi_params,
- scgi_params, and uwsgi_params standard configuration files.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр reuseport директивы listen в модуле stream
- не работал.
- </para>
- <para lang="en">
- the "reuseport" parameter of the "listen" directive of the stream module
- did not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- OCSP stapling в некоторых случаях мог вернуть устаревший OCSP-ответ.
- </para>
- <para lang="en">
- OCSP stapling might return an expired OCSP response in some cases.
- </para>
- </change>
- </changes>
- <changes ver="1.9.1" date="2015-05-26">
- <change type="change">
- <para lang="ru">
- теперь протокол SSLv3 по умолчанию запрещён.
- </para>
- <para lang="en">
- now SSLv3 protocol is disabled by default.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- некоторые давно устаревшие директивы больше не поддерживаются.
- </para>
- <para lang="en">
- some long deprecated directives are not supported anymore.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр reuseport директивы listen.<br/>
- Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
- </para>
- <para lang="en">
- the "reuseport" parameter of the "listen" directive.<br/>
- Thanks to Yingqi Lu at Intel and Sepherosa Ziehau.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $upstream_connect_time.
- </para>
- <para lang="en">
- the $upstream_connect_time variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве hash на big-endian платформах.
- </para>
- <para lang="en">
- in the "hash" directive on big-endian platforms.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог не запускаться на некоторых старых версиях Linux;
- ошибка появилась в 1.7.11.
- </para>
- <para lang="en">
- nginx might fail to start on some old Linux variants;
- the bug had appeared in 1.7.11.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в парсинге IP-адресов.<br/>
- Спасибо Сергею Половко.
- </para>
- <para lang="en">
- in IP address parsing.<br/>
- Thanks to Sergey Polovko.
- </para>
- </change>
- </changes>
- <changes ver="1.9.0" date="2015-04-28">
- <change type="change">
- <para lang="ru">
- устаревшие методы обработки соединений aio и rtsig больше не поддерживаются.
- </para>
- <para lang="en">
- obsolete aio and rtsig event methods have been removed.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива zone в блоке upstream.
- </para>
- <para lang="en">
- the "zone" directive inside the "upstream" block.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль stream.
- </para>
- <para lang="en">
- the stream module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка byte ranges для ответов модуля ngx_http_memcached_module.<br/>
- Спасибо Martin Mlynář.
- </para>
- <para lang="en">
- byte ranges support in the ngx_http_memcached_module.<br/>
- Thanks to Martin Mlynář.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- разделяемую память теперь можно использовать на версиях Windows
- с рандомизацией адресного пространства.<br/>
- Спасибо Сергею Брестеру.
- </para>
- <para lang="en">
- shared memory can now be used on Windows versions
- with address space layout randomization.<br/>
- Thanks to Sergey Brester.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директиву error_log теперь можно использовать
- на уровнях mail и server в почтовом прокси-сервере.
- </para>
- <para lang="en">
- the "error_log" directive can now be used
- on mail and server levels in mail proxy.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр proxy_protocol директивы listen не работал,
- если не был указан в первой директиве listen для данного listen-сокета.
- </para>
- <para lang="en">
- the "proxy_protocol" parameter of the "listen" directive did not work
- if not specified in the first "listen" directive for a listen socket.
- </para>
- </change>
- </changes>
- <changes ver="1.7.12" date="2015-04-07">
- <change type="feature">
- <para lang="ru">
- теперь директива tcp_nodelay работает для SSL-соединений с бэкендами.
- </para>
- <para lang="en">
- now the "tcp_nodelay" directive works with backend SSL connections.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь потоки могут использоваться для чтения заголовков файлов в кэше.
- </para>
- <para lang="en">
- now thread pools can be used to read cache file headers.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_request_buffering.
- </para>
- <para lang="en">
- in the "proxy_request_buffering" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании потоков на Linux
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when using thread pools on Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок при использовании директивы ssl_stapling.<br/>
- Спасибо Filipe da Silva.
- </para>
- <para lang="en">
- in error handling when using the "ssl_stapling" directive.<br/>
- Thanks to Filipe da Silva.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_spdy_module.
- </para>
- <para lang="en">
- in the ngx_http_spdy_module.
- </para>
- </change>
- </changes>
- <changes ver="1.7.11" date="2015-03-24">
- <change type="change">
- <para lang="ru">
- параметр sendfile директивы aio более не нужен;
- теперь nginx автоматически использует AIO для подгрузки данных для sendfile,
- если одновременно используются директивы aio и sendfile.
- </para>
- <para lang="en">
- the "sendfile" parameter of the "aio" directive is deprecated;
- now nginx automatically uses AIO to pre-load data for sendfile
- if both "aio" and "sendfile" directives are used.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- экспериментальная поддержка потоков.
- </para>
- <para lang="en">
- experimental thread pools support.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_request_buffering, fastcgi_request_buffering,
- scgi_request_buffering и uwsgi_request_buffering.
- </para>
- <para lang="en">
- the "proxy_request_buffering", "fastcgi_request_buffering",
- "scgi_request_buffering", and "uwsgi_request_buffering" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- экспериментальное API для обработки тела запроса.
- </para>
- <para lang="en">
- request body filters experimental API.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- проверка клиентских SSL-сертификатов в почтовом прокси-сервере.<br/>
- Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
- </para>
- <para lang="en">
- client SSL certificates support in mail proxy.<br/>
- Thanks to Sven Peter, Franck Levionnois, and Filipe Da Silva.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- уменьшение времени запуска
- при использовании директивы "hash ... consistent" в блоке upstream.<br/>
- Спасибо Wai Keen Woon.
- </para>
- <para lang="en">
- startup speedup
- when using the "hash ... consistent" directive in the upstream block.<br/>
- Thanks to Wai Keen Woon.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- отладочное логгирование в кольцевой буфер в памяти.
- </para>
- <para lang="en">
- debug logging into a cyclic memory buffer.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке хэш-таблиц.<br/>
- Спасибо Chris West.
- </para>
- <para lang="en">
- in hash table handling.<br/>
- Thanks to Chris West.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_cache_revalidate.
- </para>
- <para lang="en">
- in the "proxy_cache_revalidate" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL-соединения могли зависать, если использовался отложенный accept
- или параметр proxy_protocol директивы listen.<br/>
- Спасибо James Hamlin.
- </para>
- <para lang="en">
- SSL connections might hang if deferred accept
- or the "proxy_protocol" parameter of the "listen" directive were used.<br/>
- Thanks to James Hamlin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $upstream_response_time могла содержать неверное значение
- при использовании директивы image_filter.
- </para>
- <para lang="en">
- the $upstream_response_time variable might contain a wrong value
- if the "image_filter" directive was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке целочисленных переполнений.<br/>
- Спасибо Régis Leroy.
- </para>
- <para lang="en">
- in integer overflow handling.<br/>
- Thanks to Régis Leroy.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании LibreSSL было невозможно включить поддержку SSLv3.
- </para>
- <para lang="en">
- it was not possible to enable SSLv3 with LibreSSL.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании LibreSSL в логах появлялись сообщения
- "ignoring stale global SSL error ... called a function you should not call".
- </para>
- <para lang="en">
- the "ignoring stale global SSL error ... called a function you should not call"
- alerts appeared in logs when using LibreSSL.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- сертификаты, указанные в директивах ssl_client_certificate и
- ssl_trusted_certificate, использовались
- для автоматического построения цепочек сертификатов.
- </para>
- <para lang="en">
- certificates specified by the "ssl_client_certificate" and
- "ssl_trusted_certificate" directives were inadvertently used
- to automatically construct certificate chains.
- </para>
- </change>
- </changes>
- <changes ver="1.7.10" date="2015-02-10">
- <change type="feature">
- <para lang="ru">
- параметр use_temp_path директив proxy_cache_path, fastcgi_cache_path,
- scgi_cache_path и uwsgi_cache_path.
- </para>
- <para lang="en">
- the "use_temp_path" parameter of the "proxy_cache_path", "fastcgi_cache_path",
- "scgi_cache_path", and "uwsgi_cache_path" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $upstream_header_time.
- </para>
- <para lang="en">
- the $upstream_header_time variable.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- теперь при переполнении диска nginx пытается писать error_log'и только
- раз в секунду.
- </para>
- <para lang="en">
- now on disk overflow nginx tries to write error logs once a second only.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива try_files при тестировании каталогов
- не игнорировала обычные файлы.<br/>
- Спасибо Damien Tournoud.
- </para>
- <para lang="en">
- the "try_files" directive did not ignore normal files
- while testing directories.<br/>
- Thanks to Damien Tournoud.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы sendfile на OS X
- возникали ошибки "sendfile() failed";
- ошибка появилась в nginx 1.7.8.
- </para>
- <para lang="en">
- alerts "sendfile() failed"
- if the "sendfile" directive was used on OS X;
- the bug had appeared in 1.7.8.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в лог могли писаться сообщения "sem_post() failed".
- </para>
- <para lang="en">
- alerts "sem_post() failed" might appear in logs.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с musl libc.<br/>
- Спасибо James Taylor.
- </para>
- <para lang="en">
- nginx could not be built with musl libc.<br/>
- Thanks to James Taylor.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Tru64 UNIX.<br/>
- Спасибо Goetz T. Fischer.
- </para>
- <para lang="en">
- nginx could not be built on Tru64 UNIX.<br/>
- Thanks to Goetz T. Fischer.
- </para>
- </change>
- </changes>
- <changes ver="1.7.9" date="2014-12-23">
- <change type="feature">
- <para lang="ru">
- директивы proxy_cache, fastcgi_cache, scgi_cache и uwsgi_cache
- поддерживают переменные.
- </para>
- <para lang="en">
- variables support in the "proxy_cache", "fastcgi_cache", "scgi_cache",
- and "uwsgi_cache" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива expires поддерживает переменные.
- </para>
- <para lang="en">
- variables support in the "expires" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- возможность загрузки секретных ключей с аппаратных устройств
- с помощью OpenSSL engines.<br/>
- Спасибо Дмитрию Пичулину.
- </para>
- <para lang="en">
- loading of secret keys from hardware tokens
- with OpenSSL engines.<br/>
- Thanks to Dmitrii Pichulin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива autoindex_format.
- </para>
- <para lang="en">
- the "autoindex_format" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ревалидация элементов кэша теперь используется только для ответов
- с кодами 200 и 206.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- cache revalidation is now only used for responses
- with 200 and 206 status codes.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строка "TE" заголовка запроса клиента передавалась на бэкенд при проксировании.
- </para>
- <para lang="en">
- the "TE" client request header line was passed to backends while proxying.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass
- могли неправильно работать внутри блоков if и limit_except.
- </para>
- <para lang="en">
- the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives
- might not work correctly inside the "if" and "limit_except" blocks.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива proxy_store с параметром "on" игнорировалась,
- если на предыдущем уровне использовалась директива proxy_store
- с явно заданным путём к файлам.
- </para>
- <para lang="en">
- the "proxy_store" directive with the "on" parameter was ignored
- if the "proxy_store" directive with an explicitly specified file path
- was used on a previous level.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с BoringSSL.<br/>
- Спасибо Lukas Tribus.
- </para>
- <para lang="en">
- nginx could not be built with BoringSSL.<br/>
- Thanks to Lukas Tribus.
- </para>
- </change>
- </changes>
- <changes ver="1.7.8" date="2014-12-02">
- <change type="change">
- <para lang="ru">
- теперь строки "If-Modified-Since", "If-Range" и им подобные
- в заголовке запроса клиента передаются бэкенду при включённом кэшировании,
- если nginx заранее знает, что не будет кэшировать ответ
- (например, при использовании proxy_cache_min_uses).
- </para>
- <para lang="en">
- now the "If-Modified-Since", "If-Range", etc.
- client request header lines are passed to a backend while caching
- if nginx knows in advance that the response will not be cached
- (e.g., when using proxy_cache_min_uses).
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь после истечения proxy_cache_lock_timeout
- nginx отправляет запрос на бэкенд без кэширования;
- новые директивы proxy_cache_lock_age, fastcgi_cache_lock_age,
- scgi_cache_lock_age и uwsgi_cache_lock_age позволяют указать,
- через какое время блокировка будет принудительно снята
- и будет сделана ещё одна попытка закэшировать ответ.
- </para>
- <para lang="en">
- now after proxy_cache_lock_timeout
- nginx sends a request to a backend with caching disabled;
- the new directives "proxy_cache_lock_age", "fastcgi_cache_lock_age",
- "scgi_cache_lock_age", and "uwsgi_cache_lock_age" specify a time
- after which the lock will be released
- and another attempt to cache a response will be made.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива log_format теперь может использоваться только на уровне http.
- </para>
- <para lang="en">
- the "log_format" directive can now be used only at http level.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_ssl_certificate, proxy_ssl_certificate_key,
- proxy_ssl_password_file, uwsgi_ssl_certificate,
- uwsgi_ssl_certificate_key и uwsgi_ssl_password_file.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the "proxy_ssl_certificate", "proxy_ssl_certificate_key",
- "proxy_ssl_password_file", "uwsgi_ssl_certificate",
- "uwsgi_ssl_certificate_key", and "uwsgi_ssl_password_file" directives.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь с помощью X-Accel-Redirect
- можно перейти в именованный location.<br/>
- Спасибо Toshikuni Fukaya.
- </para>
- <para lang="en">
- it is now possible to switch to a named location
- using "X-Accel-Redirect".<br/>
- Thanks to Toshikuni Fukaya.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь директива tcp_nodelay работает для SPDY-соединений.
- </para>
- <para lang="en">
- now the "tcp_nodelay" directive works with SPDY connections.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- новые директивы в скриптах подсветки синтаксиса для vim.<br/>
- Спасибо Peter Wu.
- </para>
- <para lang="en">
- new directives in vim syntax highliting scripts.<br/>
- Thanks to Peter Wu.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx игнорировал значение "s-maxage"
- в строке "Cache-Control" в заголовке ответа бэкенда.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- nginx ignored the "s-maxage" value
- in the "Cache-Control" backend response header line.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_spdy_module.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in the ngx_http_spdy_module.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве ssl_password_file
- при использовании OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j.
- </para>
- <para lang="en">
- in the "ssl_password_file" directive
- when using OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы post_action
- в лог писались сообщения "header already sent";
- ошибка появилась в nginx 1.5.4.
- </para>
- <para lang="en">
- alerts "header already sent" appeared in logs
- if the "post_action" directive was used;
- the bug had appeared in 1.5.4.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы "postpone_output 0" с SSI-подзапросами
- в лог могли писаться сообщения "the http output chain is empty".
- </para>
- <para lang="en">
- alerts "the http output chain is empty" might appear in logs
- if the "postpone_output 0" directive was used with SSI includes.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_cache_lock при использовании SSI-подзапросов.<br/>
- Спасибо Yichun Zhang.
- </para>
- <para lang="en">
- in the "proxy_cache_lock" directive with SSI subrequests.<br/>
- Thanks to Yichun Zhang.
- </para>
- </change>
- </changes>
- <changes ver="1.7.7" date="2014-10-28">
- <change type="change">
- <para lang="ru">
- теперь nginx учитывает при кэшировании строку "Vary"
- в заголовке ответа бэкенда.
- </para>
- <para lang="en">
- now nginx takes into account the "Vary"
- header line in a backend response while caching.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_force_ranges, fastcgi_force_ranges,
- scgi_force_ranges и uwsgi_force_ranges.
- </para>
- <para lang="en">
- the "proxy_force_ranges", "fastcgi_force_ranges",
- "scgi_force_ranges", and "uwsgi_force_ranges" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_limit_rate, fastcgi_limit_rate,
- scgi_limit_rate и uwsgi_limit_rate.
- </para>
- <para lang="en">
- the "proxy_limit_rate", "fastcgi_limit_rate",
- "scgi_limit_rate", and "uwsgi_limit_rate" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр Vary директив proxy_ignore_headers, fastcgi_ignore_headers,
- scgi_ignore_headers и uwsgi_ignore_headers.
- </para>
- <para lang="en">
- the "Vary" parameter of the "proxy_ignore_headers", "fastcgi_ignore_headers",
- "scgi_ignore_headers", and "uwsgi_ignore_headers" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- последняя часть ответа, полученного от бэкенда
- при небуферизированном проксировании,
- могла не отправляться клиенту,
- если использовались директивы gzip или gunzip.
- </para>
- <para lang="en">
- the last part of a response received from a backend
- with unbufferred proxy
- might not be sent to a client
- if "gzip" or "gunzip" directives were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_cache_revalidate.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in the "proxy_cache_revalidate" directive.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок.<br/>
- Спасибо Yichun Zhang и Даниилу Бондареву.
- </para>
- <para lang="en">
- in error handling.<br/>
- Thanks to Yichun Zhang and Daniil Bondarev.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директивах
- proxy_next_upstream_tries и proxy_next_upstream_timeout.<br/>
- Спасибо Feng Gu.
- </para>
- <para lang="en">
- in the "proxy_next_upstream_tries" and "proxy_next_upstream_timeout"
- directives.<br/>
- Thanks to Feng Gu.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows не собирался с MinGW-w64 gcc.<br/>
- Спасибо Kouhei Sutou.
- </para>
- <para lang="en">
- nginx/Windows could not be built with MinGW-w64 gcc.<br/>
- Thanks to Kouhei Sutou.
- </para>
- </change>
- </changes>
- <changes ver="1.7.6" date="2014-09-30">
- <change type="change">
- <para lang="ru">
- устаревшая директива limit_zone больше не поддерживается.
- </para>
- <para lang="en">
- the deprecated "limit_zone" directive is not supported anymore.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в директивах limit_conn_zone и limit_req_zone теперь можно использовать
- комбинации нескольких переменных.
- </para>
- <para lang="en">
- the "limit_conn_zone" and "limit_req_zone" directives now can be used
- with combinations of multiple variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при повторной отправке FastCGI-запроса на бэкенд
- тело запроса могло передаваться неправильно.
- </para>
- <para lang="en">
- request body might be transmitted incorrectly
- when retrying a FastCGI request to the next upstream server.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в логгировании в syslog.
- </para>
- <para lang="en">
- in logging to syslog.
- </para>
- </change>
- </changes>
- <changes ver="1.7.5" date="2014-09-16">
- <change type="security">
- <para lang="ru">
- при использовании общего для нескольких блоков server
- разделяемого кэша SSL-сессий или общего ключа для шифрования
- TLS session tickets было возможно повторно использовать
- SSL-сессию в контексте другого блока server (CVE-2014-3616).<br/>
- Спасибо Antoine Delignat-Lavaud.
- </para>
- <para lang="en">
- it was possible to reuse SSL sessions in unrelated contexts
- if a shared SSL session cache or the same TLS session ticket key
- was used for multiple "server" blocks (CVE-2014-3616).<br/>
- Thanks to Antoine Delignat-Lavaud.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директиву stub_status теперь можно указывать без параметров.
- </para>
- <para lang="en">
- now the "stub_status" directive does not require a parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр always директивы add_header.
- </para>
- <para lang="en">
- the "always" parameter of the "add_header" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы
- proxy_next_upstream_tries, proxy_next_upstream_timeout,
- fastcgi_next_upstream_tries, fastcgi_next_upstream_timeout,
- memcached_next_upstream_tries, memcached_next_upstream_timeout,
- scgi_next_upstream_tries, scgi_next_upstream_timeout,
- uwsgi_next_upstream_tries и uwsgi_next_upstream_timeout.
- </para>
- <para lang="en">
- the
- "proxy_next_upstream_tries", "proxy_next_upstream_timeout",
- "fastcgi_next_upstream_tries", "fastcgi_next_upstream_timeout",
- "memcached_next_upstream_tries", "memcached_next_upstream_timeout",
- "scgi_next_upstream_tries", "scgi_next_upstream_timeout",
- "uwsgi_next_upstream_tries", and "uwsgi_next_upstream_timeout"
- directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в параметре if директивы access_log.
- </para>
- <para lang="en">
- in the "if" parameter of the "access_log" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_perl_module.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in the ngx_http_perl_module.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива listen почтового прокси-сервера
- не позволяла указать более двух параметров.
- </para>
- <para lang="en">
- the "listen" directive of the mail proxy module
- did not allow to specify more than two parameters.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива sub_filter не работала
- с заменяемой строкой из одного символа.
- </para>
- <para lang="en">
- the "sub_filter" directive did not work
- with a string to replace consisting of a single character.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- запросы могли зависать, если использовался resolver
- и в процессе обращения к DNS-серверу происходил таймаут.
- </para>
- <para lang="en">
- requests might hang if resolver was used
- and a timeout occurred during a DNS request.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_spdy_module при использовании совместно с AIO.
- </para>
- <para lang="en">
- in the ngx_http_spdy_module when using with AIO.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если с помощью директивы set изменялись переменные
- "$http_...", "$sent_http_..." или "$upstream_http_...".
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "set" directive was used to change the "$http_...",
- "$sent_http_...", or "$upstream_http_..." variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок выделения памяти.<br/>
- Спасибо Markus Linnala и Feng Gu.
- </para>
- <para lang="en">
- in memory allocation error handling.<br/>
- Thanks to Markus Linnala and Feng Gu.
- </para>
- </change>
- </changes>
- <changes ver="1.7.4" date="2014-08-05">
- <change type="security">
- <para lang="ru">
- pipelined-команды не отбрасывались
- после команды STARTTLS в SMTP прокси-сервере (CVE-2014-3556);
- ошибка появилась в 1.5.6.<br/>
- Спасибо Chris Boulton.
- </para>
- <para lang="en">
- pipelined commands were not discarded
- after STARTTLS command in SMTP proxy (CVE-2014-3556);
- the bug had appeared in 1.5.6.<br/>
- Thanks to Chris Boulton.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- экранирование символов в URI теперь использует
- шестнадцатеричные цифры в верхнем регистре.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- URI escaping now uses
- uppercase hexadecimal digits.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь nginx можно собрать с BoringSSL и LibreSSL.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- now nginx can be build with BoringSSL and LibreSSL.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- запросы могли зависать, если использовался resolver
- и DNS-сервер возвращал некорректный ответ;
- ошибка появилась в 1.5.8.
- </para>
- <para lang="en">
- requests might hang if resolver was used
- and a DNS server returned a malformed response;
- the bug had appeared in 1.5.8.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_spdy_module.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in the ngx_http_spdy_module.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $uri могла содержать мусор
- при возврате ошибок с кодом 400.<br/>
- Спасибо Сергею Боброву.
- </para>
- <para lang="en">
- the $uri variable might contain garbage
- when returning errors with code 400.<br/>
- Thanks to Sergey Bobrov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок в директиве proxy_store
- и в модуле ngx_http_dav_module.<br/>
- Спасибо Feng Gu.
- </para>
- <para lang="en">
- in error handling in the "proxy_store" directive
- and the ngx_http_dav_module.<br/>
- Thanks to Feng Gu.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при логгировании ошибок в syslog мог происходить segmentation fault;
- ошибка появилась в 1.7.1.
- </para>
- <para lang="en">
- a segmentation fault might occur if logging of errors to syslog was used;
- the bug had appeared in 1.7.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменные $geoip_latitude, $geoip_longitude, $geoip_dma_code
- и $geoip_area_code могли не работать.<br/>
- Спасибо Yichun Zhang.
- </para>
- <para lang="en">
- the $geoip_latitude, $geoip_longitude, $geoip_dma_code,
- and $geoip_area_code variables might not work.<br/>
- Thanks to Yichun Zhang.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок выделения памяти.<br/>
- Спасибо Tatsuhiko Kubo и Piotr Sikora.
- </para>
- <para lang="en">
- in memory allocation error handling.<br/>
- Thanks to Tatsuhiko Kubo and Piotr Sikora.
- </para>
- </change>
- </changes>
- <changes ver="1.7.3" date="2014-07-08">
- <change type="feature">
- <para lang="ru">
- weak entity tags теперь не удаляются при изменениях ответа,
- а strong entity tags преобразуются в weak.
- </para>
- <para lang="en">
- weak entity tags are now preserved on response modifications,
- and strong ones are changed to weak.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ревалидация элементов кэша теперь, если это возможно,
- использует заголовок If-None-Match.
- </para>
- <para lang="en">
- cache revalidation now uses If-None-Match header
- if possible.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_password_file.
- </para>
- <para lang="en">
- the "ssl_password_file" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при возврате ответа из кэша
- заголовок запроса If-None-Match игнорировался,
- если в ответе не было заголовка Last-Modified.
- </para>
- <para lang="en">
- the If-None-Match request header line was ignored
- if there was no Last-Modified header
- in a response returned from cache.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- сообщения "peer closed connection in SSL handshake"
- при соединении с бэкендами логгировались на уровне info вместо error.
- </para>
- <para lang="en">
- "peer closed connection in SSL handshake" messages
- were logged at "info" level instead of "error" while connecting to backends.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_dav_module в nginx/Windows.
- </para>
- <para lang="en">
- in the ngx_http_dav_module module in nginx/Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SPDY-соединения могли неожиданно закрываться,
- если использовалось кэширование.
- </para>
- <para lang="en">
- SPDY connections might be closed prematurely
- if caching was used.
- </para>
- </change>
- </changes>
- <changes ver="1.7.2" date="2014-06-17">
- <change type="feature">
- <para lang="ru">
- директива hash в блоке upstream.
- </para>
- <para lang="en">
- the "hash" directive inside the "upstream" block.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- дефрагментация свободных блоков разделяемой памяти.<br/>
- Спасибо Wandenberg Peixoto и Yichun Zhang.
- </para>
- <para lang="en">
- defragmentation of free shared memory blocks.<br/>
- Thanks to Wandenberg Peixoto and Yichun Zhang.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалось значение access_log по умолчанию;
- ошибка появилась в 1.7.0.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the default value of the "access_log" directive was used;
- the bug had appeared in 1.7.0.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- завершающий слэш ошибочно удалялся
- из последнего параметра директивы try_files.
- </para>
- <para lang="en">
- trailing slash was mistakenly removed
- from the last parameter of the "try_files" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог не собираться на OS X.
- </para>
- <para lang="en">
- nginx could not be built on OS X in some cases.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_spdy_module.
- </para>
- <para lang="en">
- in the ngx_http_spdy_module.
- </para>
- </change>
- </changes>
- <changes ver="1.7.1" date="2014-05-27">
- <change type="feature">
- <para lang="ru">
- переменные "$upstream_cookie_...".
- </para>
- <para lang="en">
- the "$upstream_cookie_..." variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $ssl_client_fingerprint.
- </para>
- <para lang="en">
- the $ssl_client_fingerprint variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы error_log и access_log теперь поддерживают логгирование в syslog.
- </para>
- <para lang="en">
- the "error_log" and "access_log" directives now support logging to syslog.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- почтовый прокси-сервер теперь логгирует порт клиента при соединении.
- </para>
- <para lang="en">
- the mail proxy now logs client port on connect.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти при использовании директивы "ssl_stapling".<br/>
- Спасибо Filipe da Silva.
- </para>
- <para lang="en">
- memory leak if the "ssl_stapling" directive was used.<br/>
- Thanks to Filipe da Silva.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива alias внутри location'а, заданного регулярным выражением,
- работала неправильно, если использовались директивы if или limit_except.
- </para>
- <para lang="en">
- the "alias" directive used inside a location given by a regular expression
- worked incorrectly if the "if" or "limit_except" directives were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива charset не ставила кодировку для сжатых ответов бэкендов.
- </para>
- <para lang="en">
- the "charset" directive did not set a charset to encoded backend responses.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива proxy_pass без URI могла использовать оригинальный запрос
- после установки переменной $args.<br/>
- Спасибо Yichun Zhang.
- </para>
- <para lang="en">
- a "proxy_pass" directive without URI part might use original request
- after the $args variable was set.<br/>
- Thanks to Yichun Zhang.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в работе параметра none директивы smtp_auth;
- ошибка появилась в 1.5.6.<br/>
- Спасибо Святославу Никольскому.
- </para>
- <para lang="en">
- in the "none" parameter in the "smtp_auth" directive;
- the bug had appeared in 1.5.6.<br/>
- Thanks to Svyatoslav Nikolsky.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при совместном использовании sub_filter и SSI
- ответы могли передаваться неверно.
- </para>
- <para lang="en">
- if sub_filter and SSI were used together,
- then responses might be transferred incorrectly.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с параметром --with-file-aio на Linux/aarch64.
- </para>
- <para lang="en">
- nginx could not be built with the --with-file-aio option on Linux/aarch64.
- </para>
- </change>
- </changes>
- <changes ver="1.7.0" date="2014-04-24">
- <change type="feature">
- <para lang="ru">
- проверка SSL-сертификатов бэкендов.
- </para>
- <para lang="en">
- backend SSL certificate verification.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка SNI при работе с бэкендами по SSL.
- </para>
- <para lang="en">
- support for SNI while working with SSL backends.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $ssl_server_name.
- </para>
- <para lang="en">
- the $ssl_server_name variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр if директивы access_log.
- </para>
- <para lang="en">
- the "if" parameter of the "access_log" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.5.13" date="2014-04-08">
- <change type="change">
- <para lang="ru">
- улучшена обработка хэш-таблиц;
- в директивах variables_hash_max_size и types_hash_bucket_size
- значения по умолчанию изменены на 1024 и 64 соответственно.
- </para>
- <para lang="en">
- improved hash table handling;
- the default values of the "variables_hash_max_size" and
- "types_hash_bucket_size" were changed to 1024 and 64 respectively.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_mp4_module теперь понимает аргумент end.
- </para>
- <para lang="en">
- the ngx_http_mp4_module now supports the "end" argument.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка byte ranges модулем ngx_http_mp4_module и при сохранении
- ответов в кэш.
- </para>
- <para lang="en">
- byte ranges support in the ngx_http_mp4_module and while saving responses
- to cache.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь nginx не пишет в лог сообщения "ngx_slab_alloc() failed: no memory"
- при использовании разделяемой памяти в ssl_session_cache
- и в модуле ngx_http_limit_req_module.
- </para>
- <para lang="en">
- alerts "ngx_slab_alloc() failed: no memory" no longer logged
- when using shared memory in the "ssl_session_cache" directive
- and in the ngx_http_limit_req_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива underscores_in_headers
- не разрешала подчёркивание в первом символе заголовка.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the "underscores_in_headers" directive
- did not allow underscore as a first character of a header.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- cache manager мог нагружать процессор при выходе в nginx/Windows.
- </para>
- <para lang="en">
- cache manager might hog CPU on exit in nginx/Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании ssl_session_cache с параметром shared
- рабочий процесс nginx/Windows завершался аварийно.
- </para>
- <para lang="en">
- nginx/Windows terminated abnormally
- if the "ssl_session_cache" directive was used with the "shared" parameter.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_spdy_module.
- </para>
- <para lang="en">
- in the ngx_http_spdy_module.
- </para>
- </change>
- </changes>
- <changes ver="1.5.12" date="2014-03-18">
- <change type="security">
- <para lang="ru">
- при обработке специально созданного запроса модулем ngx_http_spdy_module
- могло происходить переполнение буфера в рабочем процессе,
- что потенциально могло приводить к выполнению произвольного кода
- (CVE-2014-0133).<br/>
- Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel
- Sadosky, Buenos Aires, Argentina.
- </para>
- <para lang="en">
- a heap memory buffer overflow might occur in a worker process
- while handling a specially crafted request by ngx_http_spdy_module,
- potentially resulting in arbitrary code execution
- (CVE-2014-0133).<br/>
- Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel
- Sadosky, Buenos Aires, Argentina.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр proxy_protocol в директивах listen и real_ip_header,
- переменная $proxy_protocol_addr.
- </para>
- <para lang="en">
- the "proxy_protocol" parameters of the "listen" and "real_ip_header" directives,
- the $proxy_protocol_addr variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве fastcgi_next_upstream.<br/>
- Спасибо Lucas Molas.
- </para>
- <para lang="en">
- in the "fastcgi_next_upstream" directive.<br/>
- Thanks to Lucas Molas.
- </para>
- </change>
- </changes>
- <changes ver="1.5.11" date="2014-03-04">
- <change type="security">
- <para lang="ru">
- при обработке специально созданного запроса модулем ngx_http_spdy_module
- на 32-битных платформах могла повреждаться память рабочего процесса,
- что потенциально могло приводить к выполнению произвольного кода
- (CVE-2014-0088);
- ошибка появилась в 1.5.10.<br/>
- Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel
- Sadosky, Buenos Aires, Argentina.
- </para>
- <para lang="en">
- memory corruption might occur in a worker process on 32-bit platforms
- while handling a specially crafted request by ngx_http_spdy_module,
- potentially resulting in arbitrary code execution (CVE-2014-0088);
- the bug had appeared in 1.5.10.<br/>
- Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel
- Sadosky, Buenos Aires, Argentina.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $ssl_session_reused.
- </para>
- <para lang="en">
- the $ssl_session_reused variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива client_max_body_size могла не работать
- при чтении тела запроса с использованием chunked transfer encoding;
- ошибка появилась в 1.3.9.<br/>
- Спасибо Lucas Molas.
- </para>
- <para lang="en">
- the "client_max_body_size" directive might not work
- when reading a request body using chunked transfer encoding;
- the bug had appeared in 1.3.9.<br/>
- Thanks to Lucas Molas.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при проксировании WebSocket-соединений
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- when proxying WebSocket connections.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовался модуль ngx_http_spdy_module на 32-битных платформах;
- ошибка появилась в 1.5.10.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the ngx_http_spdy_module was used on 32-bit platforms;
- the bug had appeared in 1.5.10.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- значение переменной $upstream_status могло быть неверным,
- если использовались директивы proxy_cache_use_stale
- или proxy_cache_revalidate.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the $upstream_status variable might contain wrong data
- if the "proxy_cache_use_stale" or "proxy_cache_revalidate" directives
- were used.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если ошибки с кодом 400 с помощью директивы error_page
- перенаправлялись в именованный location.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if errors with code 400 were redirected to a named location
- using the "error_page" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows не собирался с Visual Studio 2013.
- </para>
- <para lang="en">
- nginx/Windows could not be built with Visual Studio 2013.
- </para>
- </change>
- </changes>
- <changes ver="1.5.10" date="2014-02-04">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_spdy_module теперь использует протокол SPDY 3.1.<br/>
- Спасибо Automattic и MaxCDN за спонсирование разработки.
- </para>
- <para lang="en">
- the ngx_http_spdy_module now uses SPDY 3.1 protocol.<br/>
- Thanks to Automattic and MaxCDN for sponsoring this work.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_mp4_module теперь пропускает дорожки,
- имеющие меньшую длину, чем запрошенная перемотка.
- </para>
- <para lang="en">
- the ngx_http_mp4_module now skips tracks
- too short for a seek requested.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если переменная $ssl_session_id использовалась при логгировании;
- ошибка появилась в 1.5.9.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the $ssl_session_id variable was used in logs;
- the bug had appeared in 1.5.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменные $date_local и $date_gmt использовали неверный формат
- вне модуля ngx_http_ssi_filter_module.
- </para>
- <para lang="en">
- the $date_local and $date_gmt variables used wrong format
- outside of the ngx_http_ssi_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- клиентские соединения могли сразу закрываться,
- если использовался отложенный accept;
- ошибка появилась в 1.3.15.
- </para>
- <para lang="en">
- client connections might be immediately closed
- if deferred accept was used;
- the bug had appeared in 1.3.15.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- сообщения "getsockopt(TCP_FASTOPEN) ... failed" записывались в лог
- в процессе обновления исполняемого файла на Linux;
- ошибка появилась в 1.5.8.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- alerts "getsockopt(TCP_FASTOPEN) ... failed" appeared in logs
- during binary upgrade on Linux;
- the bug had appeared in 1.5.8.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- </changes>
- <changes ver="1.5.9" date="2014-01-22">
- <change type="change">
- <para lang="ru">
- теперь в заголовке X-Accel-Redirect nginx ожидает закодированный URI.
- </para>
- <para lang="en">
- now nginx expects escaped URIs in "X-Accel-Redirect" headers.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_buffer_size.
- </para>
- <para lang="en">
- the "ssl_buffer_size" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директиву limit_rate теперь можно использовать для
- ограничения скорости передачи ответов клиенту в SPDY-соединениях.
- </para>
- <para lang="en">
- the "limit_rate" directive can now be used to
- rate limit responses sent in SPDY connections.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива spdy_chunk_size.
- </para>
- <para lang="en">
- the "spdy_chunk_size" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_session_tickets.<br/>
- Спасибо Dirkjan Bussink.
- </para>
- <para lang="en">
- the "ssl_session_tickets" directive.<br/>
- Thanks to Dirkjan Bussink.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $ssl_session_id содержала всю сессию в сериализованном виде
- вместо её идентификатора.<br/>
- Спасибо Ivan Ristić.
- </para>
- <para lang="en">
- the $ssl_session_id variable contained full session serialized
- instead of just a session id.<br/>
- Thanks to Ivan Ristić.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx неправильно обрабатывал закодированный символ "?" в команде SSI include.
- </para>
- <para lang="en">
- nginx incorrectly handled escaped "?" character in the "include" SSI command.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_dav_module не раскодировал целевой URI при
- обработке методов COPY и MOVE.
- </para>
- <para lang="en">
- the ngx_http_dav_module did not unescape destination URI
- of the COPY and MOVE methods.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- resolver не понимал доменные имена с точкой в конце.
- Спасибо Yichun Zhang.
- </para>
- <para lang="en">
- resolver did not understand domain names with a trailing dot.
- Thanks to Yichun Zhang.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при проксировании в логах могли появляться сообщения "zero size buf in output";
- ошибка появилась в 1.3.9.
- </para>
- <para lang="en">
- alerts "zero size buf in output" might appear in logs while proxying;
- the bug had appeared in 1.3.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовался модуль ngx_http_spdy_module.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the ngx_http_spdy_module was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании методов обработки соединений select, poll и /dev/poll
- проксируемые WebSocket-соединения могли зависать сразу после открытия.
- </para>
- <para lang="en">
- proxied WebSocket connections might hang right after handshake
- if the select, poll, or /dev/poll methods were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива xclient почтового прокси-сервера
- некорректно передавала IPv6-адреса.
- </para>
- <para lang="en">
- the "xclient" directive of the mail proxy module
- incorrectly handled IPv6 client addresses.
- </para>
- </change>
- </changes>
- <changes ver="1.5.8" date="2013-12-17">
- <change type="feature">
- <para lang="ru">
- теперь resolver поддерживает IPv6.
- </para>
- <para lang="en">
- IPv6 support in resolver.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива listen поддерживает параметр fastopen.<br/>
- Спасибо Mathew Rodley.
- </para>
- <para lang="en">
- the "listen" directive supports the "fastopen" parameter.<br/>
- Thanks to Mathew Rodley.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка SSL в модуле ngx_http_uwsgi_module.<br/>
- Спасибо Roberto De Ioris.
- </para>
- <para lang="en">
- SSL support in the ngx_http_uwsgi_module.<br/>
- Thanks to Roberto De Ioris.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- скрипты подсветки синтаксиса для vim добавлены в contrib.<br/>
- Спасибо Evan Miller.
- </para>
- <para lang="en">
- vim syntax highlighting scripts were added to contrib.<br/>
- Thanks to Evan Miller.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при чтении тела запроса с использованием chunked transfer encoding
- по SSL-соединению мог произойти таймаут.
- </para>
- <para lang="en">
- a timeout might occur while reading client request body
- in an SSL connection using chunked transfer encoding.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива master_process работала неправильно в nginx/Windows.
- </para>
- <para lang="en">
- the "master_process" directive did not work correctly in nginx/Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр setfib директивы listen мог не работать.
- </para>
- <para lang="en">
- the "setfib" parameter of the "listen" directive might not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_spdy_module.
- </para>
- <para lang="en">
- in the ngx_http_spdy_module.
- </para>
- </change>
- </changes>
- <changes ver="1.5.7" date="2013-11-19">
- <change type="security">
- <para lang="ru">
- символ, следующий за незакодированным пробелом в строке запроса,
- обрабатывался неправильно (CVE-2013-4547);
- ошибка появилась в 0.8.41.<br/>
- Спасибо Ivan Fratric из Google Security Team.
- </para>
- <para lang="en">
- a character following an unescaped space in a request line
- was handled incorrectly (CVE-2013-4547);
- the bug had appeared in 0.8.41.<br/>
- Thanks to Ivan Fratric of the Google Security Team.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- уровень логгирования ошибок auth_basic об отсутствии пароля
- понижен с уровня error до info.
- </para>
- <para lang="en">
- a logging level of auth_basic errors about no user/password provided
- has been lowered from "error" to "info".
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_cache_revalidate, fastcgi_cache_revalidate,
- scgi_cache_revalidate и uwsgi_cache_revalidate.
- </para>
- <para lang="en">
- the "proxy_cache_revalidate", "fastcgi_cache_revalidate",
- "scgi_cache_revalidate", and "uwsgi_cache_revalidate" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_session_ticket_key.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the "ssl_session_ticket_key" directive.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива "add_header Cache-Control ''"
- добавляла строку заголовка ответа "Cache-Control" с пустым значением.
- </para>
- <para lang="en">
- the directive "add_header Cache-Control ''"
- added a "Cache-Control" response header line with an empty value.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива "satisfy any" могла вернуть ошибку 403 вместо 401
- при использовании директив auth_request и auth_basic.<br/>
- Спасибо Jan Marc Hoffmann.
- </para>
- <para lang="en">
- the "satisfy any" directive might return 403 error instead of 401
- if auth_request and auth_basic directives were used.<br/>
- Thanks to Jan Marc Hoffmann.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметры accept_filter и deferred директивы listen игнорировались
- для listen-сокетов, создаваемых в процессе обновления исполняемого файла.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the "accept_filter" and "deferred" parameters of the "listen" directive
- were ignored for listen sockets created during binary upgrade.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- часть данных, полученных от бэкенда при небуферизированном проксировании,
- могла не отправляться клиенту сразу,
- если использовались директивы gzip или gunzip.<br/>
- Спасибо Yichun Zhang.
- </para>
- <para lang="en">
- some data received from a backend with unbufferred proxy
- might not be sent to a client immediately
- if "gzip" or "gunzip" directives were used.<br/>
- Thanks to Yichun Zhang.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок в модуле ngx_http_gunzip_filter_module.
- </para>
- <para lang="en">
- in error handling in ngx_http_gunzip_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответы могли зависать,
- если использовался модуль ngx_http_spdy_module
- и директива auth_request.
- </para>
- <para lang="en">
- responses might hang
- if the ngx_http_spdy_module was used
- with the "auth_request" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти в nginx/Windows.
- </para>
- <para lang="en">
- memory leak in nginx/Windows.
- </para>
- </change>
- </changes>
- <changes ver="1.5.6" date="2013-10-01">
- <change type="feature">
- <para lang="ru">
- директива fastcgi_buffering.
- </para>
- <para lang="en">
- the "fastcgi_buffering" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_ssl_protocols и proxy_ssl_ciphers.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the "proxy_ssl_protocols" and "proxy_ssl_ciphers" directives.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- оптимизация SSL handshake при использовании длинных цепочек сертификатов.
- </para>
- <para lang="en">
- optimization of SSL handshakes when using long certificate chains.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- почтовый прокси-сервер поддерживает SMTP pipelining.
- </para>
- <para lang="en">
- the mail proxy supports SMTP pipelining.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_auth_basic_module
- при использовании метода шифрования паролей "$apr1$".<br/>
- Спасибо Markus Linnala.
- </para>
- <para lang="en">
- in the ngx_http_auth_basic_module
- when using "$apr1$" password encryption method.<br/>
- Thanks to Markus Linnala.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на MacOSX, Cygwin и nginx/Windows
- для обработки запроса мог использоваться неверный location,
- если для задания location'ов использовались символы разных регистров.
- </para>
- <para lang="en">
- in MacOSX, Cygwin, and nginx/Windows
- incorrect location might be used to process a request
- if locations were given using characters in different cases.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- автоматическое перенаправление с добавлением завершающего слэша
- для проксированных location'ов могло не работать.
- </para>
- <para lang="en">
- automatic redirect with appended trailing slash
- for proxied locations might not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в почтовом прокси-сервере.
- </para>
- <para lang="en">
- in the mail proxy server.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_spdy_module.
- </para>
- <para lang="en">
- in the ngx_http_spdy_module.
- </para>
- </change>
- </changes>
- <changes ver="1.5.5" date="2013-09-17">
- <change type="change">
- <para lang="ru">
- теперь nginx по умолчанию использует HTTP/1.0,
- если точно определить протокол не удалось.
- </para>
- <para lang="en">
- now nginx assumes HTTP/1.0 by default
- if it is not able to detect protocol reliably.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива disable_symlinks теперь использует O_PATH на Linux.
- </para>
- <para lang="en">
- the "disable_symlinks" directive now uses O_PATH on Linux.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- для определения того, что клиент закрыл соединение,
- при использовании метода epoll
- теперь используются события EPOLLRDHUP.
- </para>
- <para lang="en">
- now nginx uses EPOLLRDHUP events
- to detect premature connection close by clients
- if the "epoll" method is used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве valid_referers при использовании параметра server_names.
- </para>
- <para lang="en">
- in the "valid_referers" directive if the "server_names" parameter was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $request_time не работала в nginx/Windows.
- </para>
- <para lang="en">
- the $request_time variable did not work in nginx/Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве image_filter.<br/>
- Спасибо Lanshun Zhou.
- </para>
- <para lang="en">
- in the "image_filter" directive.<br/>
- Thanks to Lanshun Zhou.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с OpenSSL 1.0.1f.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- OpenSSL 1.0.1f compatibility.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- </changes>
- <changes ver="1.5.4" date="2013-08-27">
- <change type="change">
- <para lang="ru">
- MIME-тип для расширения js изменён на "application/javascript";
- значение по умолчанию директивы charset_types изменено соответственно.
- </para>
- <para lang="en">
- the "js" extension MIME type has been changed to "application/javascript";
- default value of the "charset_types" directive was changed accordingly.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь директива image_filter с параметром size
- возвращает ответ с MIME-типом "application/json".
- </para>
- <para lang="en">
- now the "image_filter" directive with the "size" parameter
- returns responses with the "application/json" MIME type.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_auth_request_module.
- </para>
- <para lang="en">
- the ngx_http_auth_request_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на старте или во время переконфигурации мог произойти segmentation fault,
- если использовалась директива try_files с пустым параметром.
- </para>
- <para lang="en">
- a segmentation fault might occur on start or during reconfiguration
- if the "try_files" directive was used with an empty parameter.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти при использовании в директивах root и auth_basic_user_file
- относительных путей, заданных с помощью переменных.
- </para>
- <para lang="en">
- memory leak if relative paths were specified using variables
- in the "root" or "auth_basic_user_file" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива valid_referers неправильно выполняла регулярные выражения,
- если заголовок Referer начинался с "https://".<br/>
- Спасибо Liangbin Li.
- </para>
- <para lang="en">
- the "valid_referers" directive incorrectly executed regular expressions
- if a "Referer" header started with "https://".<br/>
- Thanks to Liangbin Li.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответы могли зависать, если использовались подзапросы и при обработке подзапроса
- происходила ошибка во время SSL handshake с бэкендом.<br/>
- Спасибо Aviram Cohen.
- </para>
- <para lang="en">
- responses might hang if subrequests were used
- and an SSL handshake error happened during subrequest processing.<br/>
- Thanks to Aviram Cohen.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_autoindex_module.
- </para>
- <para lang="en">
- in the ngx_http_autoindex_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_spdy_module.
- </para>
- <para lang="en">
- in the ngx_http_spdy_module.
- </para>
- </change>
- </changes>
- <changes ver="1.5.3" date="2013-07-30">
- <change>
- <para lang="ru">
- Изменение во внутреннем API:
- теперь при небуферизированной работе с бэкендами
- u->length по умолчанию устанавливается в -1.
- </para>
- <para lang="en">
- Change in internal API:
- now u->length defaults to -1
- if working with backends in unbuffered mode.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь при получении неполного ответа от бэкенда
- nginx отправляет полученную часть ответа,
- после чего закрывает соединение с клиентом.
- </para>
- <para lang="en">
- now after receiving an incomplete response from a backend server
- nginx tries to send an available part of the response to a client,
- and then closes client connection.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовался модуль ngx_http_spdy_module
- и директива client_body_in_file_only.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the ngx_http_spdy_module was used
- with the "client_body_in_file_only" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр so_keepalive директивы listen
- мог работать некорректно на DragonFlyBSD.<br/>
- Спасибо Sepherosa Ziehau.
- </para>
- <para lang="en">
- the "so_keepalive" parameter of the "listen" directive
- might be handled incorrectly on DragonFlyBSD.<br/>
- Thanks to Sepherosa Ziehau.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_xslt_filter_module.
- </para>
- <para lang="en">
- in the ngx_http_xslt_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_sub_filter_module.
- </para>
- <para lang="en">
- in the ngx_http_sub_filter_module.
- </para>
- </change>
- </changes>
- <changes ver="1.5.2" date="2013-07-02">
- <change type="feature">
- <para lang="ru">
- теперь можно использовать несколько директив error_log.
- </para>
- <para lang="en">
- now several "error_log" directives can be used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- метод $r->header_in() встроенного перла не возвращал значения строк
- "Cookie" и "X-Forwarded-For" из заголовка запроса;
- ошибка появилась в 1.3.14.
- </para>
- <para lang="en">
- the $r->header_in() embedded perl method did not return value of the
- "Cookie" and "X-Forwarded-For" request header lines;
- the bug had appeared in 1.3.14.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_spdy_module.<br/>
- Спасибо Jim Radford.
- </para>
- <para lang="en">
- in the ngx_http_spdy_module.<br/>
- Thanks to Jim Radford.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Linux при использовании x32 ABI.<br/>
- Спасибо Сергею Иванцову.
- </para>
- <para lang="en">
- nginx could not be built on Linux with x32 ABI.<br/>
- Thanks to Serguei Ivantsov.
- </para>
- </change>
- </changes>
- <changes ver="1.5.1" date="2013-06-04">
- <change type="feature">
- <para lang="ru">
- директивы ssi_last_modified, sub_filter_last_modified и
- xslt_last_modified.<br/>
- Спасибо Алексею Колпакову.
- </para>
- <para lang="en">
- the "ssi_last_modified", "sub_filter_last_modified", and
- "xslt_last_modified" directives.<br/>
- Thanks to Alexey Kolpakov.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр http_403 в директивах proxy_next_upstream, fastcgi_next_upstream,
- scgi_next_upstream и uwsgi_next_upstream.
- </para>
- <para lang="en">
- the "http_403" parameter of the "proxy_next_upstream", "fastcgi_next_upstream",
- "scgi_next_upstream", and "uwsgi_next_upstream" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы allow и deny теперь поддерживают unix domain сокеты.
- </para>
- <para lang="en">
- the "allow" and "deny" directives now support unix domain sockets.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с модулем ngx_mail_ssl_module,
- но без модуля ngx_http_ssl_module;
- ошибка появилась в 1.3.14.
- </para>
- <para lang="en">
- nginx could not be built with the ngx_mail_ssl_module,
- but without ngx_http_ssl_module;
- the bug had appeared in 1.3.14.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_set_body.<br/>
- Спасибо Lanshun Zhou.
- </para>
- <para lang="en">
- in the "proxy_set_body" directive.<br/>
- Thanks to Lanshun Zhou.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве lingering_time.<br/>
- Спасибо Lanshun Zhou.
- </para>
- <para lang="en">
- in the "lingering_time" directive.<br/>
- Thanks to Lanshun Zhou.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр fail_timeout директивы server
- в блоке upstream мог не работать,
- если использовался параметр max_fails;
- ошибка появилась в 1.3.0.
- </para>
- <para lang="en">
- the "fail_timeout" parameter of the "server" directive
- in the "upstream" context might not work
- if "max_fails" parameter was used;
- the bug had appeared in 1.3.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалась директива ssl_stapling.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "ssl_stapling" directive was used.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в почтовом прокси-сервере.<br/>
- Спасибо Filipe Da Silva.
- </para>
- <para lang="en">
- in the mail proxy server.<br/>
- Thanks to Filipe Da Silva.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows мог перестать принимать соединения,
- если использовалось несколько рабочих процессов.
- </para>
- <para lang="en">
- nginx/Windows might stop accepting connections
- if several worker processes were used.
- </para>
- </change>
- </changes>
- <changes ver="1.5.0" date="2013-05-07">
- <change type="security">
- <para lang="ru">
- при обработке специально созданного запроса
- мог перезаписываться стек рабочего процесса,
- что могло приводить к выполнению произвольного кода (CVE-2013-2028);
- ошибка появилась в 1.3.9.<br/>
- Спасибо Greg MacManus, iSIGHT Partners Labs.
- </para>
- <para lang="en">
- a stack-based buffer overflow might occur in a worker process
- while handling a specially crafted request,
- potentially resulting in arbitrary code execution (CVE-2013-2028);
- the bug had appeared in 1.3.9.<br/>
- Thanks to Greg MacManus, iSIGHT Partners Labs.
- </para>
- </change>
- </changes>
- <changes ver="1.4.0" date="2013-04-24">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с модулем ngx_http_perl_module,
- если использовался параметр --with-openssl;
- ошибка появилась в 1.3.16.
- </para>
- <para lang="en">
- nginx could not be built with the ngx_http_perl_module
- if the --with-openssl option was used;
- the bug had appeared in 1.3.16.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в работе с телом запроса из модуля ngx_http_perl_module;
- ошибка появилась в 1.3.9.
- </para>
- <para lang="en">
- in a request body handling in the ngx_http_perl_module;
- the bug had appeared in 1.3.9.
- </para>
- </change>
- </changes>
- <changes ver="1.3.16" date="2013-04-16">
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовались подзапросы;
- ошибка появилась в 1.3.9.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if subrequests were used;
- the bug had appeared in 1.3.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива tcp_nodelay вызывала ошибку
- при проксировании WebSocket-соединений в unix domain сокет.
- </para>
- <para lang="en">
- the "tcp_nodelay" directive caused an error
- if a WebSocket connection was proxied into a unix domain socket.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $upstream_response_length возвращала значение "0",
- если не использовалась буферизация.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the $upstream_response_length variable has an incorrect value "0"
- if buffering was not used.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в методах обработки соединений eventport и /dev/poll.
- </para>
- <para lang="en">
- in the eventport and /dev/poll methods.
- </para>
- </change>
- </changes>
- <changes ver="1.3.15" date="2013-03-26">
- <change type="change">
- <para lang="ru">
- открытие и закрытие соединения без отправки в нём каких-либо данных
- больше не записывается в access_log с кодом ошибки 400.
- </para>
- <para lang="en">
- opening and closing a connection without sending any data in it
- is no longer logged to access_log with error code 400.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_spdy_module.<br/>
- Спасибо Automattic за спонсирование разработки.
- </para>
- <para lang="en">
- the ngx_http_spdy_module.<br/>
- Thanks to Automattic for sponsoring this work.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы limit_req_status и limit_conn_status.<br/>
- Спасибо Nick Marden.
- </para>
- <para lang="en">
- the "limit_req_status" and "limit_conn_status" directives.<br/>
- Thanks to Nick Marden.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива image_filter_interlace.<br/>
- Спасибо Ивану Боброву.
- </para>
- <para lang="en">
- the "image_filter_interlace" directive.<br/>
- Thanks to Ian Babrou.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $connections_waiting в модуле ngx_http_stub_status_module.
- </para>
- <para lang="en">
- $connections_waiting variable in the ngx_http_stub_status_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
- </para>
- <para lang="en">
- the mail proxy module now supports IPv6 backends.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при повторной отправке запроса на бэкенд
- тело запроса могло передаваться неправильно;
- ошибка появилась в 1.3.9.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- request body might be transmitted incorrectly
- when retrying a request to the next upstream server;
- the bug had appeared in 1.3.9.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве client_body_in_file_only;
- ошибка появилась в 1.3.9.
- </para>
- <para lang="en">
- in the "client_body_in_file_only" directive;
- the bug had appeared in 1.3.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответы могли зависать,
- если использовались подзапросы
- и при обработке подзапроса происходила DNS-ошибка.<br/>
- Спасибо Lanshun Zhou.
- </para>
- <para lang="en">
- responses might hang
- if subrequests were used
- and a DNS error happened during subrequest processing.<br/>
- Thanks to Lanshun Zhou.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в процедуре учёта использования бэкендов.
- </para>
- <para lang="en">
- in backend usage accounting.
- </para>
- </change>
- </changes>
- <changes ver="1.3.14" date="2013-03-05">
- <change type="feature">
- <para lang="ru">
- переменные $connections_active, $connections_reading и $connections_writing
- в модуле ngx_http_stub_status_module.
- </para>
- <para lang="en">
- $connections_active, $connections_reading, and $connections_writing variables
- in the ngx_http_stub_status_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка WebSocket-соединений
- в модулях ngx_http_uwsgi_module и ngx_http_scgi_module.
- </para>
- <para lang="en">
- support of WebSocket connections
- in the ngx_http_uwsgi_module and ngx_http_scgi_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке виртуальных серверов при использовании SNI.
- </para>
- <para lang="en">
- in virtual servers handling with SNI.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы "ssl_session_cache shared"
- новые сессии могли не сохраняться,
- если заканчивалось место в разделяемой памяти.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- new sessions were not always stored
- if the "ssl_session_cache shared" directive was used
- and there was no free space in shared memory.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- несколько заголовков X-Forwarded-For обрабатывались неправильно.<br/>
- Спасибо Neal Poole за спонсирование разработки.
- </para>
- <para lang="en">
- multiple X-Forwarded-For headers were handled incorrectly.<br/>
- Thanks to Neal Poole for sponsoring this work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_mp4_module.<br/>
- Спасибо Gernot Vormayr.
- </para>
- <para lang="en">
- in the ngx_http_mp4_module.<br/>
- Thanks to Gernot Vormayr.
- </para>
- </change>
- </changes>
- <changes ver="1.3.13" date="2013-02-19">
- <change type="change">
- <para lang="ru">
- теперь для сборки по умолчанию используется компилятор с именем "cc".
- </para>
- <para lang="en">
- a compiler with name "cc" is now used by default.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка проксирования WebSocket-соединений.<br/>
- Спасибо Apcera и CloudBees за спонсирование разработки.
- </para>
- <para lang="en">
- support for proxying of WebSocket connections.<br/>
- Thanks to Apcera and CloudBees for sponsoring this work.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива auth_basic_user_file поддерживает шифрование паролей
- методом "{SHA}".<br/>
- Спасибо Louis Opter.
- </para>
- <para lang="en">
- the "auth_basic_user_file" directive supports "{SHA}"
- password encryption method.<br/>
- Thanks to Louis Opter.
- </para>
- </change>
- </changes>
- <changes ver="1.3.12" date="2013-02-05">
- <change type="feature">
- <para lang="ru">
- директивы proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
- поддерживают переменные.
- </para>
- <para lang="en">
- variables support in the "proxy_bind", "fastcgi_bind", "memcached_bind",
- "scgi_bind", and "uwsgi_bind" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $pipe, $request_length, $time_iso8601 и $time_local
- теперь можно использовать не только в директиве log_format.<br/>
- Спасибо Kiril Kalchev.
- </para>
- <para lang="en">
- the $pipe, $request_length, $time_iso8601, and $time_local variables
- can now be used not only in the "log_format" directive.
- Thanks to Kiril Kalchev.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка IPv6 в модуле ngx_http_geoip_module.<br/>
- Спасибо Gregor Kališnik.
- </para>
- <para lang="en">
- IPv6 support in the ngx_http_geoip_module.<br/>
- Thanks to Gregor Kališnik.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива proxy_method работала неверно, если была указана на уровне http.
- </para>
- <para lang="en">
- in the "proxy_method" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовался resolver и метод poll.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if resolver was used with the poll method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог нагружать процессор во время SSL handshake с бэкендом
- при использовании методов обработки соединений select, poll и /dev/poll.
- </para>
- <para lang="en">
- nginx might hog CPU during SSL handshake with a backend
- if the select, poll, or /dev/poll methods were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибка "[crit] SSL_write() failed (SSL:)".
- </para>
- <para lang="en">
- the "[crit] SSL_write() failed (SSL:)" error.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве client_body_in_file_only;
- ошибка появилась в 1.3.9.
- </para>
- <para lang="en">
- in the "client_body_in_file_only" directive;
- the bug had appeared in 1.3.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве fastcgi_keep_conn.
- </para>
- <para lang="en">
- in the "fastcgi_keep_conn" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.3.11" date="2013-01-10">
- <change type="bugfix">
- <para lang="ru">
- при записи в лог мог происходить segmentation fault;
- ошибка появилась в 1.3.10.
- </para>
- <para lang="en">
- a segmentation fault might occur if logging was used;
- the bug had appeared in 1.3.10.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива proxy_pass не работала с IP-адресами
- без явного указания порта;
- ошибка появилась в 1.3.10.
- </para>
- <para lang="en">
- the "proxy_pass" directive did not work with IP addresses
- without port specified;
- the bug had appeared in 1.3.10.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на старте или во время переконфигурации происходил segmentation fault,
- если директива keepalive была указана несколько раз
- в одном блоке upstream.
- </para>
- <para lang="en">
- a segmentation fault occurred on start or during reconfiguration
- if the "keepalive" directive was specified more than once
- in a single upstream block.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр default директивы geo не определял значение по умолчанию
- для IPv6-адресов.
- </para>
- <para lang="en">
- parameter "default" of the "geo" directive did not set default value
- for IPv6 addresses.
- </para>
- </change>
- </changes>
- <changes ver="1.3.10" date="2012-12-25">
- <change type="change">
- <para lang="ru">
- для указанных в конфигурационном файле доменных имён теперь
- используются не только IPv4, но и IPv6 адреса.
- </para>
- <para lang="en">
- domain names specified in configuration file
- are now resolved to IPv6 addresses as well as IPv4 ones.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь при использовании директивы include с маской на Unix-системах
- включаемые файлы сортируются в алфавитном порядке.
- </para>
- <para lang="en">
- now if the "include" directive with mask is used on Unix systems,
- included files are sorted in alphabetical order.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива add_header добавляет строки в ответы с кодом 201.
- </para>
- <para lang="en">
- the "add_header" directive adds headers to 201 responses.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива geo теперь поддерживает IPv6 адреса в формате CIDR.
- </para>
- <para lang="en">
- the "geo" directive now supports IPv6 addresses in CIDR notation.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметры flush и gzip в директиве access_log.
- </para>
- <para lang="en">
- the "flush" and "gzip" parameters of the "access_log" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива auth_basic поддерживает переменные.
- </para>
- <para lang="en">
- variables support in the "auth_basic" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx в некоторых случаях не собирался с модулем ngx_http_perl_module.
- </para>
- <para lang="en">
- nginx could not be built with the ngx_http_perl_module in some cases.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовался модуль ngx_http_xslt_module.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the ngx_http_xslt_module was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог не собираться на MacOSX.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- nginx could not be built on MacOSX in some cases.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы limit_rate с большими значениями скорости
- на 32-битных системах ответ мог возвращаться не целиком.<br/>
- Спасибо Алексею Антропову.
- </para>
- <para lang="en">
- the "limit_rate" directive with high rates
- might result in truncated responses on 32-bit platforms.<br/>
- Thanks to Alexey Antropov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалась директива if.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "if" directive was used.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответ "100 Continue" выдавался
- вместе с ответом "413 Request Entity Too Large".
- </para>
- <para lang="en">
- a "100 Continue" response was issued
- with "413 Request Entity Too Large" responses.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы image_filter, image_filter_jpeg_quality и image_filter_sharpen
- могли наследоваться некорректно.<br/>
- Спасибо Ивану Боброву.
- </para>
- <para lang="en">
- the "image_filter", "image_filter_jpeg_quality"
- and "image_filter_sharpen" directives
- might be inherited incorrectly.<br/>
- Thanks to Ian Babrou.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы auth_basic под Linux
- могли возникать ошибки "crypt_r() failed".
- </para>
- <para lang="en">
- "crypt_r() failed" errors might appear
- if the "auth_basic" directive was used on Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке backup-серверов.<br/>
- Спасибо Thomas Chen.
- </para>
- <para lang="en">
- in backup servers handling.<br/>
- Thanks to Thomas Chen.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при проксировании HEAD-запросов мог возвращаться некорректный ответ,
- если использовалась директива gzip.
- </para>
- <para lang="en">
- proxied HEAD requests might return incorrect response
- if the "gzip" directive was used.
- </para>
- </change>
- </changes>
- <changes ver="1.3.9" date="2012-11-27">
- <change type="feature">
- <para lang="ru">
- поддержка chunked transfer encoding при получении тела запроса.
- </para>
- <para lang="en">
- support for chunked transfer encoding while reading client request body.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $request_time и $msec
- теперь можно использовать не только в директиве log_format.
- </para>
- <para lang="en">
- the $request_time and $msec variables
- can now be used not only in the "log_format" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- cache manager и cache loader могли не запускаться,
- если использовалось более 512 listen-сокетов.
- </para>
- <para lang="en">
- cache manager and cache loader processes might not be able to start
- if more than 512 listen sockets were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_dav_module.
- </para>
- <para lang="en">
- in the ngx_http_dav_module.
- </para>
- </change>
- </changes>
- <changes ver="1.3.8" date="2012-10-30">
- <change type="feature">
- <para lang="ru">
- параметр optional_no_ca директивы ssl_verify_client.<br/>
- Спасибо Михаилу Казанцеву и Eric O'Connor.
- </para>
- <para lang="en">
- the "optional_no_ca" parameter of the "ssl_verify_client" directive.<br/>
- Thanks to Mike Kazantsev and Eric O'Connor.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $bytes_sent, $connection и $connection_requests
- теперь можно использовать не только в директиве log_format.<br/>
- Спасибо Benjamin Grössing.
- </para>
- <para lang="en">
- the $bytes_sent, $connection, and $connection_requests variables
- can now be used not only in the "log_format" directive.<br/>
- Thanks to Benjamin Grössing.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр auto директивы worker_processes.
- </para>
- <para lang="en">
- the "auto" parameter of the "worker_processes" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- сообщения "cache file ... has md5 collision".
- </para>
- <para lang="en">
- "cache file ... has md5 collision" alert.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_gunzip_filter_module.
- </para>
- <para lang="en">
- in the ngx_http_gunzip_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве ssl_stapling.
- </para>
- <para lang="en">
- in the "ssl_stapling" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.3.7" date="2012-10-02">
- <change type="feature">
- <para lang="ru">
- поддержка OCSP stapling.<br/>
- Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
- </para>
- <para lang="en">
- OCSP stapling support.<br/>
- Thanks to Comodo, DigiCert and GlobalSign for sponsoring this work.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_trusted_certificate.
- </para>
- <para lang="en">
- the "ssl_trusted_certificate" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь resolver случайным образом меняет порядок
- возвращаемых закэшированных адресов.<br/>
- Спасибо Антону Жулину.
- </para>
- <para lang="en">
- resolver now randomly rotates addresses
- returned from cache.<br/>
- Thanks to Anton Jouline.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с OpenSSL 0.9.7.
- </para>
- <para lang="en">
- OpenSSL 0.9.7 compatibility.
- </para>
- </change>
- </changes>
- <changes ver="1.3.6" date="2012-09-12">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_gunzip_filter_module.
- </para>
- <para lang="en">
- the ngx_http_gunzip_filter_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива memcached_gzip_flag.
- </para>
- <para lang="en">
- the "memcached_gzip_flag" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр always директивы gzip_static.
- </para>
- <para lang="en">
- the "always" parameter of the "gzip_static" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве "limit_req";
- ошибка появилась в 1.1.14.<br/>
- Спасибо Charles Chen.
- </para>
- <para lang="en">
- in the "limit_req" directive;
- the bug had appeared in 1.1.14.<br/>
- Thanks to Charles Chen.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался gcc 4.7 с оптимизацией -O2
- если использовался параметр --with-ipv6.
- </para>
- <para lang="en">
- nginx could not be built by gcc 4.7 with -O2 optimization
- if the --with-ipv6 option was used.
- </para>
- </change>
- </changes>
- <changes ver="1.3.5" date="2012-08-21">
- <change type="change">
- <para lang="ru">
- модуль ngx_http_mp4_module больше не отфильтровывает дорожки
- в форматах, отличных от H.264 и AAC.
- </para>
- <para lang="en">
- the ngx_http_mp4_module module no longer skips
- tracks in formats other than H.264 and AAC.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если в директиве map в качестве значений использовались переменные.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "map" directive was used with variables as values.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault
- при использовании директивы geo с параметром ranges,
- но без параметра default; ошибка появилась в 0.8.43.<br/>
- Спасибо Zhen Chen и Weibin Yao.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "geo" directive was used with the "ranges" parameter
- but without the "default" parameter; the bug had appeared in 0.8.43.<br/>
- Thanks to Zhen Chen and Weibin Yao.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке параметра командной строки -p.
- </para>
- <para lang="en">
- in the -p command-line parameter handling.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в почтовом прокси-сервере.
- </para>
- <para lang="en">
- in the mail proxy server.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- незначительных потенциальных ошибок.<br/>
- Спасибо Coverity.
- </para>
- <para lang="en">
- of minor potential bugs.<br/>
- Thanks to Coverity.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows не собирался с Visual Studio 2005 Express.<br/>
- Спасибо HAYASHI Kentaro.
- </para>
- <para lang="en">
- nginx/Windows could not be built with Visual Studio 2005 Express.<br/>
- Thanks to HAYASHI Kentaro.
- </para>
- </change>
- </changes>
- <changes ver="1.3.4" date="2012-07-31">
- <change type="change">
- <para lang="ru">
- теперь на слушающих IPv6-сокетах параметр ipv6only
- включён по умолчанию.
- </para>
- <para lang="en">
- the "ipv6only" parameter is now turned on by default for
- listening IPv6 sockets.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка компилятора Clang.
- </para>
- <para lang="en">
- the Clang compiler support.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- могли создаваться лишние слушающие сокеты.<br/>
- Спасибо Роману Одайскому.
- </para>
- <para lang="en">
- extra listening sockets might be created.<br/>
- Thanks to Roman Odaisky.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows мог нагружать процессор, если при запуске рабочего процесса
- происходила ошибка.<br/>
- Спасибо Ricardo Villalobos Guevara.
- </para>
- <para lang="en">
- nginx/Windows might hog CPU if a worker process failed to start.<br/>
- Thanks to Ricardo Villalobos Guevara.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_pass_header, fastcgi_pass_header, scgi_pass_header,
- uwsgi_pass_header, proxy_hide_header, fastcgi_hide_header,
- scgi_hide_header и uwsgi_hide_header
- могли наследоваться некорректно.
- </para>
- <para lang="en">
- the "proxy_pass_header", "fastcgi_pass_header", "scgi_pass_header",
- "uwsgi_pass_header", "proxy_hide_header", "fastcgi_hide_header",
- "scgi_hide_header", and "uwsgi_hide_header" directives
- might be inherited incorrectly.
- </para>
- </change>
- </changes>
- <changes ver="1.3.3" date="2012-07-10">
- <change type="feature">
- <para lang="ru">
- поддержка entity tags и директива etag.
- </para>
- <para lang="en">
- entity tags support and the "etag" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы map с параметром hostnames
- не игнорировалась конечная точка в исходном значении.
- </para>
- <para lang="en">
- trailing dot in a source value was not ignored
- if the "map" directive was used with the "hostnames" parameter.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- для обработки запроса мог использоваться неверный location,
- если переход в именованный location происходил
- после изменения URI с помощью директивы rewrite.
- </para>
- <para lang="en">
- incorrect location might be used to process a request
- if a URI was changed via a "rewrite" directive
- before an internal redirect to a named location.
- </para>
- </change>
- </changes>
- <changes ver="1.3.2" date="2012-06-26">
- <change type="change">
- <para lang="ru">
- параметр single директивы keepalive теперь игнорируется.
- </para>
- <para lang="en">
- the "single" parameter of the "keepalive" directive is now ignored.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- сжатие SSL теперь отключено
- в том числе при использовании OpenSSL старее 1.0.0.
- </para>
- <para lang="en">
- SSL compression is now disabled when using all versions of OpenSSL,
- including ones prior to 1.0.0.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директиву "ip_hash" теперь можно использовать для балансировки IPv6 клиентов.
- </para>
- <para lang="en">
- it is now possible to use the "ip_hash" directive to balance IPv6 clients.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменную $status теперь можно использовать не только в директиве log_format.
- </para>
- <para lang="en">
- the $status variable can now be used not only in the "log_format" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при завершении рабочего процесса мог произойти segmentation fault,
- если использовалась директива resolver.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process on shutdown
- if the "resolver" directive was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовался модуль ngx_http_mp4_module.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the ngx_http_mp4_module was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_mp4_module.
- </para>
- <para lang="en">
- in the ngx_http_mp4_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовались конфликтующие имена серверов с масками.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if conflicting wildcard server names were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на платформе ARM nginx мог аварийно завершаться по сигналу SIGBUS.
- </para>
- <para lang="en">
- nginx might be terminated abnormally on a SIGBUS signal on ARM platform.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- во время переконфигурации на HP-UX в лог
- записывался alert "sendmsg() failed (9: Bad file number)".
- </para>
- <para lang="en">
- an alert "sendmsg() failed (9: Bad file number)" on HP-UX
- while reconfiguration.
- </para>
- </change>
- </changes>
- <changes ver="1.3.1" date="2012-06-05">
- <change type="security">
- <para lang="ru">
- теперь nginx/Windows игнорирует точку в конце компонента URI
- и не разрешает URI, содержащие последовательность ":$".<br/>
- Спасибо Владимиру Кочеткову, Positive Research Center.
- </para>
- <para lang="en">
- now nginx/Windows ignores trailing dot in URI path component, and
- does not allow URIs with ":$" in it.<br/>
- Thanks to Vladimir Kochetkov, Positive Research Center.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass и
- директива server в блоке upstream
- теперь поддерживают IPv6-адреса.
- </para>
- <para lang="en">
- the "proxy_pass", "fastcgi_pass", "scgi_pass", "uwsgi_pass" directives, and
- the "server" directive inside the "upstream" block,
- now support IPv6 addresses.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в директиве resolver теперь можно указывать порт и
- задавать IPv6-адреса DNS-серверов.
- </para>
- <para lang="en">
- the "resolver" directive now supports IPv6 addresses and
- an optional port specification.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива least_conn в блоке upstream.
- </para>
- <para lang="en">
- the "least_conn" directive inside the "upstream" block.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- при использовании директивы ip_hash
- теперь можно задавать веса серверов.
- </para>
- <para lang="en">
- it is now possible to specify a weight for servers
- while using the "ip_hash" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалась директива image_filter;
- ошибка появилась в 1.3.0.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "image_filter" directive was used;
- the bug had appeared in 1.3.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с модулем ngx_cpp_test_module;
- ошибка появилась в 1.1.12.
- </para>
- <para lang="en">
- nginx could not be built with ngx_cpp_test_module;
- the bug had appeared in 1.1.12.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- доступ к переменным из SSI и встроенного перла мог не работать после
- переконфигурации.<br/>
- Спасибо Yichun Zhang.
- </para>
- <para lang="en">
- access to variables from SSI and embedded perl module might not work after
- reconfiguration.<br/>
- Thanks to Yichun Zhang.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_xslt_filter_module.<br/>
- Спасибо Kuramoto Eiji.
- </para>
- <para lang="en">
- in the ngx_http_xslt_filter_module.<br/>
- Thanks to Kuramoto Eiji.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти при использовании переменной $geoip_org.<br/>
- Спасибо Денису Латыпову.
- </para>
- <para lang="en">
- memory leak if $geoip_org variable was used.<br/>
- Thanks to Denis F. Latypoff.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директивах proxy_cookie_domain и proxy_cookie_path.
- </para>
- <para lang="en">
- in the "proxy_cookie_domain" and "proxy_cookie_path" directives.
- </para>
- </change>
- </changes>
- <changes ver="1.3.0" date="2012-05-15">
- <change type="feature">
- <para lang="ru">
- директива debug_connection теперь поддерживает IPv6-адреса
- и параметр "unix:".
- </para>
- <para lang="en">
- the "debug_connection" directive now supports IPv6 addresses
- and the "unix:" parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива set_real_ip_from и параметр proxy
- директивы geo теперь поддерживают IPv6-адреса.
- </para>
- <para lang="en">
- the "set_real_ip_from" directive and the "proxy" parameter
- of the "geo" directive now support IPv6 addresses.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы real_ip_recursive, geoip_proxy и geoip_proxy_recursive.
- </para>
- <para lang="en">
- the "real_ip_recursive", "geoip_proxy", and "geoip_proxy_recursive" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр proxy_recursive директивы geo.
- </para>
- <para lang="en">
- the "proxy_recursive" parameter of the "geo" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалась директива resolver.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "resolver" directive was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
- и бэкенд возвращал некорректный ответ.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "fastcgi_pass", "scgi_pass", or "uwsgi_pass" directives were used
- and backend returned incorrect response.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалась директива rewrite и в новых аргументах запроса в строке
- замены использовались переменные.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "rewrite" directive was used and new request arguments
- in a replacement used variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог нагружать процессор,
- если было достигнуто ограничение на количество открытых файлов.
- </para>
- <para lang="en">
- nginx might hog CPU
- if the open file resource limit was reached.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы proxy_next_upstream с параметром http_404
- nginx мог бесконечно перебирать бэкенды, если в блоке upstream был
- хотя бы один сервер с флагом backup.
- </para>
- <para lang="en">
- nginx might loop infinitely over backends
- if the "proxy_next_upstream" directive with the "http_404" parameter was used
- and there were backup servers specified in an upstream block.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы ip_hash
- установка параметра down директивы server
- могла приводить к ненужному перераспределению клиентов между бэкендами.
- </para>
- <para lang="en">
- adding the "down" parameter of the "server" directive
- might cause unneeded client redistribution among backend servers
- if the "ip_hash" directive was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов.<br/>
- Спасибо Yichun Zhang.
- </para>
- <para lang="en">
- socket leak.<br/>
- Thanks to Yichun Zhang.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_fastcgi_module.
- </para>
- <para lang="en">
- in the ngx_http_fastcgi_module.
- </para>
- </change>
- </changes>
- <changes ver="1.2.0" date="2012-04-23">
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалась директива try_files;
- ошибка появилась в 1.1.19.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "try_files" directive was used;
- the bug had appeared in 1.1.19.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответ мог быть передан не полностью,
- если использовалось больше IOV_MAX буферов.
- </para>
- <para lang="en">
- response might be truncated
- if there were more than IOV_MAX buffers used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в работе параметра crop директивы image_filter.<br/>
- Спасибо Maxim Bublis.
- </para>
- <para lang="en">
- in the "crop" parameter of the "image_filter" directive.<br/>
- Thanks to Maxim Bublis.
- </para>
- </change>
- </changes>
- <changes ver="1.1.19" date="2012-04-12">
- <change type="security">
- <para lang="ru">
- при обработке специально созданного mp4 файла модулем ngx_http_mp4_module
- могли перезаписываться области памяти рабочего процесса, что могло
- приводить к выполнению произвольного кода (CVE-2012-2089).<br/>
- Спасибо Matthew Daley.
- </para>
- <para lang="en">
- specially crafted mp4 file might allow to overwrite
- memory locations in a worker process
- if the ngx_http_mp4_module was used,
- potentially resulting in arbitrary code execution (CVE-2012-2089).<br/>
- Thanks to Matthew Daley.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows мог завершаться аварийно.<br/>
- Спасибо Vincent Lee.
- </para>
- <para lang="en">
- nginx/Windows might be terminated abnormally.<br/>
- Thanks to Vincent Lee.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx нагружал процессор, если все серверы в upstream'е были помечены
- флагом backup.
- </para>
- <para lang="en">
- nginx hogged CPU if all servers in an upstream were marked as "backup".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы allow и deny могли наследоваться некорректно,
- если в них использовались IPv6 адреса.
- </para>
- <para lang="en">
- the "allow" and "deny" directives might be inherited incorrectly
- if they were used with IPv6 addresses.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы modern_browser и ancient_browser
- могли наследоваться некорректно.
- </para>
- <para lang="en">
- the "modern_browser" and "ancient_browser" directives
- might be inherited incorrectly.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- таймауты могли работать некорректно на Solaris/SPARC.
- </para>
- <para lang="en">
- timeouts might be handled incorrectly on Solaris/SPARC.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_mp4_module.
- </para>
- <para lang="en">
- in the ngx_http_mp4_module.
- </para>
- </change>
- </changes>
- <changes ver="1.1.18" date="2012-03-28">
- <change type="change">
- <para lang="ru">
- теперь keepalive соединения не запрещены для Safari по умолчанию.
- </para>
- <para lang="en">
- keepalive connections are no longer disabled for Safari by default.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $connection_requests.
- </para>
- <para lang="en">
- the $connection_requests variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd и
- $tcpinfo_rcv_space.
- </para>
- <para lang="en">
- $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd and
- $tcpinfo_rcv_space variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива worker_cpu_affinity теперь работает на FreeBSD.
- </para>
- <para lang="en">
- the "worker_cpu_affinity" directive now works on FreeBSD.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы xslt_param и xslt_string_param.<br/>
- Спасибо Samuel Behan.
- </para>
- <para lang="en">
- the "xslt_param" and "xslt_string_param" directives.<br/>
- Thanks to Samuel Behan.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в configure.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in configure tests.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_xslt_filter_module.
- </para>
- <para lang="en">
- in the ngx_http_xslt_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Debian GNU/Hurd.
- </para>
- <para lang="en">
- nginx could not be built on Debian GNU/Hurd.
- </para>
- </change>
- </changes>
- <changes ver="1.1.17" date="2012-03-15">
- <change type="security">
- <para lang="ru">
- содержимое ранее освобождённой памяти могло быть отправлено клиенту,
- если бэкенд возвращал специально созданный ответ.<br/>
- Спасибо Matthew Daley.
- </para>
- <para lang="en">
- content of previously freed memory might be sent to a client
- if backend returned specially crafted response.<br/>
- Thanks to Matthew Daley.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании встроенного перла из SSI.<br/>
- Спасибо Matthew Daley.
- </para>
- <para lang="en">
- in the embedded perl module if used from SSI.<br/>
- Thanks to Matthew Daley.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_uwsgi_module.
- </para>
- <para lang="en">
- in the ngx_http_uwsgi_module.
- </para>
- </change>
- </changes>
- <changes ver="1.1.16" date="2012-02-29">
- <change type="change">
- <para lang="ru">
- ограничение на количество одновременных подзапросов поднято до 200.
- </para>
- <para lang="en">
- the simultaneous subrequest limit has been raised to 200.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр from в директиве disable_symlinks.
- </para>
- <para lang="en">
- the "from" parameter of the "disable_symlinks" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы return и error_page теперь могут использоваться для возврата
- перенаправлений с кодом 307.
- </para>
- <para lang="en">
- the "return" and "error_page" directives can now be used to return 307
- redirections.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалась директива resolver
- и на глобальном уровне не была задана директива error_log.<br/>
- Спасибо Роману Арутюняну.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "resolver" directive was used
- and there was no "error_log" directive specified at global level.<br/>
- Thanks to Roman Arutyunyan.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовались директивы "proxy_http_version 1.1" или
- "fastcgi_keep_conn on".
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if the "proxy_http_version 1.1" or "fastcgi_keep_conn on" directives
- were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечек памяти.<br/>
- Спасибо Lanshun Zhou.
- </para>
- <para lang="en">
- memory leaks.<br/>
- Thanks to Lanshun Zhou.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве disable_symlinks.
- </para>
- <para lang="en">
- in the "disable_symlinks" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании ZFS размер кэша на диске мог считаться некорректно;
- ошибка появилась в 1.0.1.
- </para>
- <para lang="en">
- on ZFS filesystem disk cache size might be calculated incorrectly;
- the bug had appeared in 1.0.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался компилятором icc 12.1.
- </para>
- <para lang="en">
- nginx could not be built by the icc 12.1 compiler.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался gcc на Solaris;
- ошибка появилась в 1.1.15.
- </para>
- <para lang="en">
- nginx could not be built by gcc on Solaris;
- the bug had appeared in 1.1.15.
- </para>
- </change>
- </changes>
- <changes ver="1.1.15" date="2012-02-15">
- <change type="feature">
- <para lang="ru">
- директива disable_symlinks.
- </para>
- <para lang="en">
- the "disable_symlinks" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_cookie_domain и proxy_cookie_path.
- </para>
- <para lang="en">
- the "proxy_cookie_domain" and "proxy_cookie_path" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог некорректно сообщать об ошибке "upstream prematurely closed
- connection" вместо "upstream sent too big header".<br/>
- Спасибо Feibo Li.
- </para>
- <para lang="en">
- nginx might log incorrect error "upstream prematurely closed connection"
- instead of correct "upstream sent too big header" one.<br/>
- Thanks to Feibo Li.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с модулем ngx_http_perl_module,
- если использовался параметр --with-openssl.
- </para>
- <para lang="en">
- nginx could not be built with the ngx_http_perl_module
- if the --with-openssl option was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- количество внутренних перенаправлений в именованные location'ы
- не ограничивалось.
- </para>
- <para lang="en">
- the number of internal redirects to named locations was not limited.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- вызов $r->flush() несколько раз подряд мог приводить к ошибкам
- в модуле ngx_http_gzip_filter_module.
- </para>
- <para lang="en">
- calling $r->flush() multiple times might cause errors
- in the ngx_http_gzip_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы proxy_store с SSI-подзапросами
- временные файлы могли не удаляться.
- </para>
- <para lang="en">
- temporary files might be not removed
- if the "proxy_store" directive was used with SSI includes.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в некоторых случаях некэшируемые переменные (такие, как $args)
- возвращали старое пустое закэшированное значение.
- </para>
- <para lang="en">
- in some cases non-cacheable variables (such as the $args variable)
- returned old empty cached value.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если одновременно создавалось слишком много SSI-подзапросов;
- ошибка появилась в 0.7.25.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if too many SSI subrequests were issued simultaneously;
- the bug had appeared in 0.7.25.
- </para>
- </change>
- </changes>
- <changes ver="1.1.14" date="2012-01-30">
- <change type="feature">
- <para lang="ru">
- теперь можно указать несколько ограничений limit_req одновременно.
- </para>
- <para lang="en">
- multiple "limit_req" limits may be used simultaneously.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок при соединении с бэкендом.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in error handling while connecting to a backend.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок при использовании AIO на FreeBSD.
- </para>
- <para lang="en">
- in AIO error handling on FreeBSD.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в инициализации библиотеки OpenSSL.
- </para>
- <para lang="en">
- in the OpenSSL library initialization.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_redirect могли наследоваться некорректно.
- </para>
- <para lang="en">
- the "proxy_redirect" directives might be inherited incorrectly.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти при переконфигурации, если использовалась директива pcre_jit.
- </para>
- <para lang="en">
- memory leak during reconfiguration if the "pcre_jit" directive was used.
- </para>
- </change>
- </changes>
- <changes ver="1.1.13" date="2012-01-16">
- <change type="feature">
- <para lang="ru">
- параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
- </para>
- <para lang="en">
- the "TLSv1.1" and "TLSv1.2" parameters of the "ssl_protocols" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметры директивы limit_req наследовались некорректно;
- ошибка появилась в 1.1.12.
- </para>
- <para lang="en">
- the "limit_req" directive parameters were not inherited correctly;
- the bug had appeared in 1.1.12.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива proxy_redirect некорректно обрабатывала заголовок Refresh
- при использовании регулярных выражений.
- </para>
- <para lang="en">
- the "proxy_redirect" directive incorrectly processed "Refresh" header
- if regular expression were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива proxy_cache_use_stale с параметром error не возвращала ответ из
- кэша, если все бэкенды были признаны неработающими.
- </para>
- <para lang="en">
- the "proxy_cache_use_stale" directive with "error" parameter did not return
- answer from cache if there were no live upstreams.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива worker_cpu_affinity могла не работать.
- </para>
- <para lang="en">
- the "worker_cpu_affinity" directive might not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Solaris;
- ошибка появилась в 1.1.12.
- </para>
- <para lang="en">
- nginx could not be built on Solaris;
- the bug had appeared in 1.1.12.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_mp4_module.
- </para>
- <para lang="en">
- in the ngx_http_mp4_module.
- </para>
- </change>
- </changes>
- <changes ver="1.1.12" date="2011-12-26">
- <change type="change">
- <para lang="ru">
- после перенаправления запроса с помощью директивы error_page
- директива proxy_pass без URI теперь использует изменённый URI.<br/>
- Спасибо Lanshun Zhou.
- </para>
- <para lang="en">
- a "proxy_pass" directive without URI part now uses changed URI
- after redirection with the "error_page" directive.<br/>
- Thanks to Lanshun Zhou.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
- proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
- </para>
- <para lang="en">
- the "proxy/fastcgi/scgi/uwsgi_cache_lock",
- "proxy/fastcgi/scgi/uwsgi_cache_lock_timeout" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива pcre_jit.
- </para>
- <para lang="en">
- the "pcre_jit" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- SSI команда if поддерживает выделения в регулярных выражениях.
- </para>
- <para lang="en">
- the "if" SSI command supports captures in regular expressions.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSI команда if не работала внутри команды block.
- </para>
- <para lang="en">
- the "if" SSI command did not work inside the "block" command.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы limit_conn_log_level и limit_req_log_level могли не работать.
- </para>
- <para lang="en">
- the "limit_conn_log_level" and "limit_req_log_level" directives might not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива limit_rate не позволяла передавать на полной скорости,
- даже если был указан очень большой лимит.
- </para>
- <para lang="en">
- the "limit_rate" directive did not allow to use full throughput,
- even if limit value was very high.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива sendfile_max_chunk не работала,
- если использовалась директива limit_rate.
- </para>
- <para lang="en">
- the "sendfile_max_chunk" directive did not work,
- if the "limit_rate" directive was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директиве proxy_pass использовались переменные и не был указан URI,
- всегда использовался URI исходного запроса.
- </para>
- <para lang="en">
- a "proxy_pass" directive without URI part always used original request URI
- if variables were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- после перенаправления запроса с помощью директивы try_files
- директива proxy_pass без URI могла использовать URI исходного запроса.<br/>
- Спасибо Lanshun Zhou.
- </para>
- <para lang="en">
- a "proxy_pass" directive without URI part might use original request
- after redirection with the "try_files" directive.<br/>
- Thanks to Lanshun Zhou.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_scgi_module.
- </para>
- <para lang="en">
- in the ngx_http_scgi_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_mp4_module.
- </para>
- <para lang="en">
- in the ngx_http_mp4_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Solaris;
- ошибка появилась в 1.1.9.
- </para>
- <para lang="en">
- nginx could not be built on Solaris;
- the bug had appeared in 1.1.9.
- </para>
- </change>
- </changes>
- <changes ver="1.1.11" date="2011-12-12">
- <change type="feature">
- <para lang="ru">
- параметр so_keepalive в директиве listen.<br/>
- Спасибо Всеволоду Стахову.
- </para>
- <para lang="en">
- the "so_keepalive" parameter of the "listen" directive.<br/>
- Thanks to Vsevolod Stakhov.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр if_not_empty в директивах fastcgi/scgi/uwsgi_param.
- </para>
- <para lang="en">
- the "if_not_empty" parameter of the "fastcgi/scgi/uwsgi_param" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $https.
- </para>
- <para lang="en">
- the $https variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_redirect поддерживает переменные в первом параметре.
- </para>
- <para lang="en">
- the "proxy_redirect" directive supports variables in the first parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_redirect поддерживает регулярные выражения.
- </para>
- <para lang="en">
- the "proxy_redirect" directive supports regular expressions.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $sent_http_cache_control могла содержать неверное значение при
- использовании директивы expires.<br/>
- Спасибо Yichun Zhang.
- </para>
- <para lang="en">
- the $sent_http_cache_control variable might contain a wrong value if the
- "expires" directive was used.<br/>
- Thanks to Yichun Zhang.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива read_ahead могла не работать при использовании совместно с
- try_files и open_file_cache.
- </para>
- <para lang="en">
- the "read_ahead" directive might not work combined with "try_files"
- and "open_file_cache".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в параметре inactive директивы proxy_cache_path
- было указано малое время,
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if small time was used in the "inactive" parameter of
- the "proxy_cache_path" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответы из кэша могли зависать.
- </para>
- <para lang="en">
- responses from cache might hang.
- </para>
- </change>
- </changes>
- <changes ver="1.1.10" date="2011-11-30">
- <change type="bugfix">
- <para lang="ru">
- при использовании AIO на Linux в рабочем процессе происходил segmentation fault;
- ошибка появилась в 1.1.9.
- </para>
- <para lang="en">
- a segmentation fault occurred in a worker process if AIO was used on Linux;
- the bug had appeared in 1.1.9.
- </para>
- </change>
- </changes>
- <changes ver="1.1.9" date="2011-11-28">
- <change type="change">
- <para lang="ru">
- теперь двойные кавычки экранируется при выводе SSI-командой echo.<br/>
- Спасибо Зауру Абасмирзоеву.
- </para>
- <para lang="en">
- now double quotes are encoded in an "echo" SSI-command output.<br/>
- Thanks to Zaur Abasmirzoev.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр valid в директиве resolver. По умолчанию теперь
- используется TTL, возвращённый DNS-сервером.<br/>
- Спасибо Кириллу Коринскому.
- </para>
- <para lang="en">
- the "valid" parameter of the "resolver" directive. By default TTL
- returned by a DNS server is used.<br/>
- Thanks to Kirill A. Korinskiy.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог перестать отвечать, если рабочий процесс завершался аварийно.
- </para>
- <para lang="en">
- nginx might hang after a worker process abnormal termination.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалось SNI;
- ошибка появилась в 1.1.2.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if SNI was used;
- the bug had appeared in 1.1.2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве keepalive_disable;
- ошибка появилась в 1.1.8.<br/>
- Спасибо Александру Усову.
- </para>
- <para lang="en">
- in the "keepalive_disable" directive;
- the bug had appeared in 1.1.8.<br/>
- Thanks to Alexander Usov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- сигнал SIGWINCH переставал работать после первого обновления исполняемого
- файла;
- ошибка появилась в 1.1.1.
- </para>
- <para lang="en">
- SIGWINCH signal did not work after first binary upgrade;
- the bug had appeared in 1.1.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь ответы бэкендов, длина которых не соответствует заголовку
- Content-Length, не кэширутся.
- </para>
- <para lang="en">
- backend responses with length not matching "Content-Length" header line
- are no longer cached.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве scgi_param при использовании составных параметров.
- </para>
- <para lang="en">
- in the "scgi_param" directive, if complex parameters were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в методе epoll.<br/>
- Спасибо Yichun Zhang.
- </para>
- <para lang="en">
- in the "epoll" event method.<br/>
- Thanks to Yichun Zhang.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_flv_module.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- in the ngx_http_flv_module.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_mp4_module.
- </para>
- <para lang="en">
- in the ngx_http_mp4_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь nginx понимает IPv6-адреса в строке запроса и в заголовке Host.
- </para>
- <para lang="en">
- IPv6 addresses are now handled properly in a request line and in a "Host"
- request header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы add_header и expires не работали для ответов с кодом 206,
- если запрос проксировался.
- </para>
- <para lang="en">
- "add_header" and "expires" directives did not work if a request was proxied
- and response status code was 206.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на FreeBSD 10.
- </para>
- <para lang="en">
- nginx could not be built on FreeBSD 10.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на AIX.
- </para>
- <para lang="en">
- nginx could not be built on AIX.
- </para>
- </change>
- </changes>
- <changes ver="1.1.8" date="2011-11-14">
- <change type="change">
- <para lang="ru">
- модуль ngx_http_limit_zone_module переименован в ngx_http_limit_conn_module.
- </para>
- <para lang="en">
- the ngx_http_limit_zone_module was renamed to the ngx_http_limit_conn_module.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива limit_zone заменена директивой limit_conn_zone с новым синтаксисом.
- </para>
- <para lang="en">
- the "limit_zone" directive was superseded by the "limit_conn_zone" directive
- with a new syntax.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка ограничения по нескольким limit_conn на одном уровне.
- </para>
- <para lang="en">
- support for multiple "limit_conn" limits on the same level.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива image_filter_sharpen.
- </para>
- <para lang="en">
- the "image_filter_sharpen" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если resolver получил большой DNS-ответ.<br/>
- Спасибо Ben Hawkes.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if resolver got a big DNS response.<br/>
- Thanks to Ben Hawkes.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в вычислении ключа для кэширования,
- если использовалась внутренняя реализация MD5;
- ошибка появилась в 1.0.4.
- </para>
- <para lang="en">
- in cache key calculation
- if internal MD5 implementation was used;
- the bug had appeared in 1.0.4.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса
- клиента могли передаваться бэкенду при кэшировании; или не передаваться при
- выключенном кэшировании, если кэширование было включено в другой части
- конфигурации.
- </para>
- <para lang="en">
- the "If-Modified-Since", "If-Range", etc. client request header lines
- might be passed to backend while caching; or not passed without caching
- if caching was enabled in another part of the configuration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_mp4_module выдавал неверную строку "Content-Length"
- в заголовке ответа, использовался аргумент start.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- the module ngx_http_mp4_module sent incorrect "Content-Length" response
- header line if the "start" argument was used.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- </changes>
- <changes ver="1.1.7" date="2011-10-31">
- <change type="feature">
- <para lang="ru">
- поддержка нескольких DNS серверов в директиве "resolver".<br/>
- Спасибо Кириллу Коринскому.
- </para>
- <para lang="en">
- support of several DNS servers in the "resolver" directive.<br/>
- Thanks to Kirill A. Korinskiy.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на старте или во время переконфигурации происходил segmentation fault,
- если директива ssl использовалась на уровне http и не был указан
- ssl_certificate.
- </para>
- <para lang="en">
- a segmentation fault occurred on start or during reconfiguration
- if the "ssl" directive was used at http level and there was
- no "ssl_certificate" defined.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- уменьшено потребление памяти при проксировании больших файлов,
- если они буферизировались на диск.
- </para>
- <para lang="en">
- reduced memory consumption while proxying big files
- if they were buffered to disk.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовалась директива "proxy_http_version 1.1".
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if "proxy_http_version 1.1" directive was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве "expires @time".
- </para>
- <para lang="en">
- in the "expires @time" directive.
- </para>
- </change>
- </changes>
- <changes ver="1.1.6" date="2011-10-17">
- <change>
- <para lang="ru">
- Изменение во внутреннем API: теперь при внутреннем редиректе
- в именованный location контексты модулей очищаются.<br/>
- По запросу Yichun Zhang.
- </para>
- <para lang="en">
- Change in internal API: now module context data are cleared
- while internal redirect to named location.<br/>
- Requested by Yichun Zhang.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь если сервер, описанный в блоке upstream, был признан неработающим,
- то после истечения fail_timeout на него будет отправлен только один запрос;
- сервер будет считаться работающим, если успешно ответит на этот запрос.
- </para>
- <para lang="en">
- if a server in an upstream failed, only one request will be sent to it
- after fail_timeout; the server will be considered alive if it will
- successfully respond to the request.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь символы 0x7F-0xFF в access_log записываются в виде \xXX.
- </para>
- <para lang="en">
- now the 0x7F-0xFF characters are escaped as \xXX in an access_log.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers" теперь поддерживают
- значения X-Accel-Limit-Rate, X-Accel-Buffering и X-Accel-Charset.
- </para>
- <para lang="en">
- "proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support the following
- additional values: X-Accel-Limit-Rate, X-Accel-Buffering, X-Accel-Charset.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- уменьшение потребления памяти при использовании SSL.
- </para>
- <para lang="en">
- decrease of memory consumption if SSL is used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- некоторые UTF-8 символы обрабатывались неправильно.<br/>
- Спасибо Алексею Куцу.
- </para>
- <para lang="en">
- some UTF-8 characters were processed incorrectly.<br/>
- Thanks to Alexey Kuts.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы модуля ngx_http_rewrite_module, заданные на уровне server,
- применялись повторно, если для запроса не находилось ни одного location'а.
- </para>
- <para lang="en">
- the ngx_http_rewrite_module directives specified at "server" level were
- executed twice if no matching locations were defined.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании "aio sendfile" могла происходить утечка сокетов.
- </para>
- <para lang="en">
- a socket leak might occurred if "aio sendfile" was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании файлового AIO соединения с быстрыми клиентами
- могли быть закрыты по истечению send_timeout.
- </para>
- <para lang="en">
- connections with fast clients might be closed after send_timeout
- if file AIO was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_autoindex_module.
- </para>
- <para lang="en">
- in the ngx_http_autoindex_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_mp4_module не поддерживал перемотку на 32-битных платформах.
- </para>
- <para lang="en">
- the module ngx_http_mp4_module did not support seeking on 32-bit platforms.
- </para>
- </change>
- </changes>
- <changes ver="1.1.5" date="2011-10-05">
- <change type="feature">
- <para lang="ru">
- директивы uwsgi_buffering и scgi_buffering.<br/>
- Спасибо Peter Smit.
- </para>
- <para lang="en">
- the "uwsgi_buffering" and "scgi_buffering" directives.<br/>
- Thanks to Peter Smit.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании proxy_cache_bypass могли быть закэшированы
- некэшируемые ответы.<br/>
- Спасибо John Ferlito.
- </para>
- <para lang="en">
- non-cacheable responses might be cached if "proxy_cache_bypass" directive
- was used.<br/>
- Thanks to John Ferlito.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_proxy_module при работе с бэкендами по HTTP/1.1.
- </para>
- <para lang="en">
- in HTTP/1.1 support in the ngx_http_proxy_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- закэшированные ответы с пустым телом возвращались некорректно;
- ошибка появилась в 0.8.31.
- </para>
- <para lang="en">
- cached responses with an empty body were returned incorrectly;
- the bug had appeared in 0.8.31.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответы с кодом 201 модуля ngx_http_dav_module были некорректны;
- ошибка появилась в 0.8.32.
- </para>
- <para lang="en">
- 201 responses of the ngx_http_dav_module were incorrect;
- the bug had appeared in 0.8.32.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве return.
- </para>
- <para lang="en">
- in the "return" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы "ssl_session_cache builtin" происходил
- segmentation fault;
- ошибка появилась в 1.1.1.
- </para>
- <para lang="en">
- the "ssl_session_cache builtin" directive caused segmentation fault;
- the bug had appeared in 1.1.1.
- </para>
- </change>
- </changes>
- <changes ver="1.1.4" date="2011-09-20">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_upstream_keepalive.
- </para>
- <para lang="en">
- the ngx_http_upstream_keepalive module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_http_version.
- </para>
- <para lang="en">
- the "proxy_http_version" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива fastcgi_keep_conn.
- </para>
- <para lang="en">
- the "fastcgi_keep_conn" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива worker_aio_requests.
- </para>
- <para lang="en">
- the "worker_aio_requests" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если nginx был собран с файловым AIO,
- он не мог запускаться на Linux без поддержки AIO.
- </para>
- <para lang="en">
- if nginx was built --with-file-aio it could not be run on Linux
- kernel which did not support AIO.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок при работе с Linux AIO.
- <br/>
- Спасибо Hagai Avrahami.
- </para>
- <para lang="en">
- in Linux AIO error processing.
- <br/>
- Thanks to Hagai Avrahami.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- уменьшено потребление памяти для долгоживущих запросов.
- </para>
- <para lang="en">
- reduced memory consumption for long-lived requests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_mp4_module не поддерживал 64-битный MP4-атом co64.
- </para>
- <para lang="en">
- the module ngx_http_mp4_module did not support 64-bit MP4 "co64" atom.
- </para>
- </change>
- </changes>
- <changes ver="1.1.3" date="2011-09-14">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_mp4_module.
- </para>
- <para lang="en">
- the module ngx_http_mp4_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в Linux AIO, используемым совместно с open_file_cache.
- </para>
- <para lang="en">
- in Linux AIO combined with open_file_cache.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- open_file_cache не обновлял информацию о файле,
- если файл был изменён не атомарно.
- </para>
- <para lang="en">
- open_file_cache did not update file info on retest
- if file was not atomically changed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на MacOSX 10.7.
- </para>
- <para lang="en">
- nginx could not be built on MacOSX 10.7.
- </para>
- </change>
- </changes>
- <changes ver="1.1.2" date="2011-09-05">
- <change type="change">
- <para lang="ru">
- теперь, если суммарный размер всех диапазонов больше размера исходного ответа,
- то nginx возвращает только исходный ответ, не обрабатывая диапазоны.
- </para>
- <para lang="en">
- now if total size of all ranges is greater than source response size,
- then nginx disables ranges and returns just the source response.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива max_ranges.
- </para>
- <para lang="en">
- the "max_ranges" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы ssl_verify_client, ssl_verify_depth и ssl_prefer_server_cipher
- могли работать некорректно, если использовался SNI.
- </para>
- <para lang="en">
- the "ssl_verify_client", "ssl_verify_depth", and "ssl_prefer_server_ciphers"
- directives might work incorrectly if SNI was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директивах proxy/fastcgi/scgi/ uwsgi_ignore_client_abort.
- </para>
- <para lang="en">
- in the "proxy/fastcgi/scgi/uwsgi_ignore_client_abort" directives.
- </para>
- </change>
- </changes>
- <changes ver="1.1.1" date="2011-08-22">
- <change type="change">
- <para lang="ru">
- теперь загрузчик кэша за каждую итерацию либо обрабатывает число файлов,
- указанное в параметре load_files, либо работает не дольше времени,
- указанного в параметре loader_threshold.
- </para>
- <para lang="en">
- now cache loader processes either as many files as specified by "loader_files"
- parameter or works no longer than time specified by the "loader_threshold"
- parameter during each iteration.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- SIGWINCH сигнал теперь работает только в режиме демона.
- </para>
- <para lang="en">
- now SIGWINCH signal works only in daemon mode.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь разделяемые зоны и кэши используют семафоры POSIX на Solaris.<br/>
- Спасибо Денису Иванову.
- </para>
- <para lang="en">
- now shared zones and caches use POSIX semaphores on Solaris.<br/>
- Thanks to Den Ivanov.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь на NetBSD поддерживаются accept фильтры.
- </para>
- <para lang="en">
- accept filters are now supported on NetBSD.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Linux 3.0.
- </para>
- <para lang="en">
- nginx could not be built on Linux 3.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в некоторых случаях nginx не использовал сжатие;
- ошибка появилась в 1.1.0.
- </para>
- <para lang="en">
- nginx did not use gzipping in some cases;
- the bug had appeared in 1.1.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- обработка тела запроса могла быть неверной, если клиент использовал pipelining.
- </para>
- <para lang="en">
- request body might be processed incorrectly if client used pipelining.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве request_body_in_single_buf.
- </para>
- <para lang="en">
- in the "request_body_in_single_buf" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директивах proxy_set_body и proxy_pass_request_body
- при использовании SSL-соединения с бэкендом.
- </para>
- <para lang="en">
- in "proxy_set_body" and "proxy_pass_request_body" directives
- if SSL connection to backend was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx нагружал процессор, если все серверы в upstream'е были помечены
- флагом down.
- </para>
- <para lang="en">
- nginx hogged CPU if all servers in an upstream were marked as "down".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при переконфигурации мог произойти segmentation fault,
- если в предыдущей конфигурации был определён, но не использовался
- ssl_session_cache.
- </para>
- <para lang="en">
- a segmentation fault might occur during reconfiguration
- if ssl_session_cache was defined but not used in previous configuration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании большого количества backup-серверов
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if many backup servers were used in an upstream.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директив fastcgi/scgi/uwsgi_param
- со значениями, начинающимися со строки "HTTP_",
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.8.40.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- if "fastcgi/scgi/uwsgi_param" directives were used
- with values starting with "HTTP_";
- the bug had appeared in 0.8.40.
- </para>
- </change>
- </changes>
- <changes ver="1.1.0" date="2011-08-01">
- <change type="feature">
- <para lang="ru">
- уменьшение времени работы загрузчика кэша.
- </para>
- <para lang="en">
- cache loader run time decrease.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметры loader_files, loader_sleep и loader_threshold
- директив proxy/fastcgi/scgi/uwsgi_cache_path.
- </para>
- <para lang="en">
- "loader_files", "loader_sleep", and "loader_threshold" options
- of the "proxy/fastcgi/scgi/uwsgi_cache_path" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- уменьшение времени загрузки конфигураций с большим количеством HTTPS серверов.
- </para>
- <para lang="en">
- loading time decrease of configuration with large number of HTTPS sites.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь nginx поддерживает шифры с обменом ECDHE-ключами.<br/>
- Спасибо Adrian Kotelba.
- </para>
- <para lang="en">
- now nginx supports ECDHE key exchange ciphers.<br/>
- Thanks to Adrian Kotelba.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива lingering_close.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- the "lingering_close" directive.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- закрытия соединения для pipelined-запросов.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- in closing connection for pipelined requests.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не запрещал сжатие при получении значения "gzip;q=0"
- в строке "Accept-Encoding" в заголовке запроса клиента.
- </para>
- <para lang="en">
- nginx did not disable gzipping if client sent "gzip;q=0" in
- "Accept-Encoding" request header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- таймаута при небуферизированном проксировании.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- in timeout in unbuffered proxied mode.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти при использовании переменных в директиве proxy_pass
- при работе с бэкендом по HTTPS.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- memory leaks when a "proxy_pass" directive contains variables and proxies
- to an HTTPS backend.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в проверке параметра директивы proxy_pass, заданного переменными.<br/>
- Спасибо Lanshun Zhou.
- </para>
- <para lang="en">
- in parameter validation of a "proxy_pass" directive with variables.<br/>
- Thanks to Lanshun Zhou.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL не работал на QNX.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- SSL did not work on QNX.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL модули не собирались gcc 4.6 без параметра --with-debug.
- </para>
- <para lang="en">
- SSL modules could not be built by gcc 4.6 without --with-debug option.
- </para>
- </change>
- </changes>
- <changes ver="1.0.5" date="2011-07-19">
- <change type="change">
- <para lang="ru">
- теперь по умолчанию используются следующие шифры SSL: "HIGH:!aNULL:!MD5".<br/>
- Спасибо Rob Stradling.
- </para>
- <para lang="en">
- now default SSL ciphers are "HIGH:!aNULL:!MD5".<br/>
- Thanks to Rob Stradling.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы referer_hash_max_size и referer_hash_bucket_size.<br/>
- Спасибо Witold Filipczyk.
- </para>
- <para lang="en">
- the "referer_hash_max_size" and "referer_hash_bucket_size"
- directives.<br/>
- Thanks to Witold Filipczyk.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $uid_reset.
- </para>
- <para lang="en">
- $uid_reset variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании кэширования
- в рабочем процессе мог произойти segmentation fault.<br/>
- Спасибо Lanshun Zhou.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process,
- if a caching was used.<br/>
- Thanks to Lanshun Zhou.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании кэширования рабочие процессы
- могли зациклиться во время переконфигурации;
- ошибка появилась в 0.8.48.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- worker processes may got caught in an endless loop during reconfiguration,
- if a caching was used;
- the bug had appeared in 0.8.48.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- сообщения "stalled cache updating".<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- "stalled cache updating" alert.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="1.0.4" date="2011-06-01">
- <change type="change">
- <para lang="ru">
- теперь в регулярных выражениях в директиве map можно задать
- чувствительность к регистру с помощью префиксов "~" и "~*".
- </para>
- <para lang="en">
- now regular expressions case sensitivity in the "map" directive
- is given by prefixes "~" or "~*".
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь разделяемые зоны и кэши используют семафоры POSIX на Linux.<br/>
- Спасибо Денису Латыпову.
- </para>
- <para lang="en">
- now shared zones and caches use POSIX semaphores on Linux.<br/>
- Thanks to Denis F. Latypoff.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- сообщения "stalled cache updating".
- </para>
- <para lang="en">
- "stalled cache updating" alert.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с параметром --without-http_auth_basic_module;
- ошибка появилась в 1.0.3.
- </para>
- <para lang="en">
- nginx could not be built --without-http_auth_basic_module;
- the bug had appeared in 1.0.3.
- </para>
- </change>
- </changes>
- <changes ver="1.0.3" date="2011-05-25">
- <change type="feature">
- <para lang="ru">
- директива auth_basic_user_file поддерживает шифрование пароля
- методами "$apr1", "{PLAIN}" и "{SSHA}".<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- the "auth_basic_user_file" directive supports "$apr1", "{PLAIN}",
- and "{SSHA}" password encryption methods.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива geoip_org и переменная $geoip_org.<br/>
- Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
- </para>
- <para lang="en">
- the "geoip_org" directive and $geoip_org variable.<br/>
- Thanks to Alexander Uskov, Arnaud Granal, and Denis F. Latypoff.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модули ngx_http_geo_module и ngx_http_geoip_module поддерживают
- адреса IPv4, отображённые на IPv6 адреса.
- </para>
- <para lang="en">
- ngx_http_geo_module and ngx_http_geoip_module support IPv4 addresses
- mapped to IPv6 addresses.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при проверке адреса IPv4, отображённого на адрес IPv6,
- в рабочем процессе происходил segmentation fault,
- если директивы access или deny были определены только для адресов IPv6;
- ошибка появилась в 0.8.22.
- </para>
- <para lang="en">
- a segmentation fault occurred in a worker process
- during testing IPv4 address mapped to IPv6 address,
- if access or deny rules were defined only for IPv6;
- the bug had appeared in 0.8.22.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- закэшированный ответ мог быть испорчен, если значения директив
- proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/ uwsgi_no_cache
- были разными;
- ошибка появилась в 0.8.46.
- </para>
- <para lang="en">
- a cached response may be broken if "proxy/fastcgi/scgi/ uwsgi_cache_bypass"
- and "proxy/fastcgi/scgi/uwsgi_no_cache" directive values were different;
- the bug had appeared in 0.8.46.
- </para>
- </change>
- </changes>
- <changes ver="1.0.2" date="2011-05-10">
- <change type="feature">
- <para lang="ru">
- теперь разделяемые зоны и кэши используют семафоры POSIX.
- </para>
- <para lang="en">
- now shared zones and caches use POSIX semaphores.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в работе параметра rotate директивы image_filter.<br/>
- Спасибо Adam Bocim.
- </para>
- <para lang="en">
- in the "rotate" parameter of the "image_filter" directive.<br/>
- Thanks to Adam Bocim.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Solaris;
- ошибка появилась в 1.0.1.
- </para>
- <para lang="en">
- nginx could not be built on Solaris;
- the bug had appeared in 1.0.1.
- </para>
- </change>
- </changes>
- <changes ver="1.0.1" date="2011-05-03">
- <change type="change">
- <para lang="ru">
- теперь директива split_clients использует алгоритм MurmurHash2 из-за
- лучшего распределения.<br/>
- Спасибо Олегу Мамонтову.
- </para>
- <para lang="en">
- now the "split_clients" directive uses MurmurHash2 algorithm because
- of better distribution.<br/>
- Thanks to Oleg Mamontov.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь длинные строки, начинающиеся с нуля, не считаются ложными
- значениями.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- now long strings starting with zero are not considered as false values.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь по умолчанию nginx использует значение 511 для listen backlog на Linux.
- </para>
- <para lang="en">
- now nginx uses a default listen backlog value 511 on Linux.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $upstream_... можно использовать в SSI и перловом модулях.
- </para>
- <para lang="en">
- the $upstream_... variables may be used in the SSI and perl modules.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь nginx лучше ограничивает размер кэша на диске.<br/>
- Спасибо Олегу Мамонтову.
- </para>
- <para lang="en">
- now nginx limits better disk cache size.<br/>
- Thanks to Oleg Mamontov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при парсинге неправильного IPv4 адреса мог произойти segmentation fault;
- ошибка появилась в 0.8.22.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- a segmentation fault might occur while parsing incorrect IPv4 address;
- the bug had appeared in 0.9.3.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался gcc 4.6 без параметра --with-debug.
- </para>
- <para lang="en">
- nginx could not be built by gcc 4.6 without --with-debug option.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Solaris 9 и более ранних;
- ошибка появилась в 0.9.3.<br/>
- Спасибо Dagobert Michelsen.
- </para>
- <para lang="en">
- nginx could not be built on Solaris 9 and earlier;
- the bug had appeared in 0.9.3.<br/>
- Thanks to Dagobert Michelsen.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $request_time имела неверные значения, если использовались
- подзапросы;
- ошибка появилась в 0.8.47.<br/>
- Спасибо Игорю А. Валькову.
- </para>
- <para lang="en">
- $request_time variable had invalid values if subrequests were used;
- the bug had appeared in 0.8.47.<br/>
- Thanks to Igor A. Valcov.
- </para>
- </change>
- </changes>
- <changes ver="1.0.0" date="2011-04-12">
- <change type="bugfix">
- <para lang="ru">
- cache manager мог нагружать процессор после переконфигурации.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- a cache manager might hog CPU after reload.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива "image_filter crop" неправильно работала в сочетании с
- "image_filter rotate 180".
- </para>
- <para lang="en">
- an "image_filter crop" directive worked incorrectly coupled with
- an "image_filter rotate 180" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива "satisfy any" запрещала выдачу пользовательской страницы
- для 401 кода.
- </para>
- <para lang="en">
- a "satisfy any" directive disabled custom 401 error page.
- </para>
- </change>
- </changes>
- <changes ver="0.9.7" date="2011-04-04">
- <change type="feature">
- <para lang="ru">
- теперь соединения в состоянии keepalive могут быть закрыты преждевременно,
- если у воркера нет свободных соединений.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- now keepalive connections may be closed premature,
- if there are no free worker connections.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр rotate директивы image_filter.<br/>
- Спасибо Adam Bocim.
- </para>
- <para lang="en">
- the "rotate" parameter of the "image_filter" directive.<br/>
- Thanks to Adam Bocim.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ситуации, когда бэкенд в директивах fastcgi_pass, scgi_pass или uwsgi_pass
- задан выражением и ссылается на описанный upstream.
- </para>
- <para lang="en">
- a case when a backend in "fastcgi_pass", "scgi_pass", or "uwsgi_pass"
- directives is given by expression and refers to a defined upstream.
- </para>
- </change>
- </changes>
- <changes ver="0.9.6" date="2011-03-21">
- <change type="feature">
- <para lang="ru">
- директива map поддерживает регулярные выражения в качестве значения
- первого параметра.
- </para>
- <para lang="en">
- the "map" directive supports regular expressions as value of the first
- parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $time_iso8601 для access_log.<br/>
- Спасибо Michael Lustfield.
- </para>
- <para lang="en">
- $time_iso8601 access_log variable.<br/>
- Thanks to Michael Lustfield.
- </para>
- </change>
- </changes>
- <changes ver="0.9.5" date="2011-02-21">
- <change type="change">
- <para lang="ru">
- теперь по умолчанию nginx использует значение -1 для listen backlog
- на Linux.<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- now nginx uses a default listen backlog value -1 on Linux.<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр utf8 в директивах geoip_country и geoip_city.<br/>
- Спасибо Денису Латыпову.
- </para>
- <para lang="en">
- the "utf8" parameter of "geoip_country" and "geoip_city" directives.<br/>
- Thanks to Denis F. Latypoff.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- исправление в умолчательной директиве proxy_redirect, если в директиве
- proxy_pass не был описан URI.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- in a default "proxy_redirect" directive if "proxy_pass" directive has no
- URI part.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива error_page не работала с нестандартными кодами ошибок;
- ошибка появилась в 0.8.53.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- an "error_page" directive did not work with nonstandard error codes;
- the bug had appeared in 0.8.53.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.9.4" date="2011-01-21">
- <change type="feature">
- <para lang="ru">
- директива server_name поддерживает переменную $hostname.
- </para>
- <para lang="en">
- the "server_name" directive supports the $hostname variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- 494 код для ошибки "Request Header Too Large".
- </para>
- <para lang="en">
- 494 code for "Request Header Too Large" error.
- </para>
- </change>
- </changes>
- <changes ver="0.9.3" date="2010-12-13">
- <change type="bugfix">
- <para lang="ru">
- если для пары IPv6-адрес:порт описан только один сервер, то выделения
- в регулярных выражениях в директиве server_name не работали.
- </para>
- <para lang="en">
- if there was a single server for given IPv6 address:port pair,
- then captures in regular expressions in a "server_name" directive did not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался под Solaris;
- ошибка появилась в 0.9.0.
- </para>
- <para lang="en">
- nginx could not be built on Solaris;
- the bug had appeared in 0.9.0.
- </para>
- </change>
- </changes>
- <changes ver="0.9.2" date="2010-12-06">
- <change type="feature">
- <para lang="ru">
- поддержка строки "If-Unmodified-Since" в заголовке запроса клиента.
- </para>
- <para lang="en">
- the "If-Unmodified-Since" client request header line support.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- использование accept(), если accept4() не реализован;
- ошибка появилась в 0.9.0.
- </para>
- <para lang="en">
- fallback to accept() syscall if accept4() was not implemented;
- the issue had appeared in 0.9.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался под Cygwin;
- ошибка появилась в 0.9.0.
- </para>
- <para lang="en">
- nginx could not be built on Cygwin;
- the bug had appeared in 0.9.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- уязвимости в OpenSSL CVE-2010-4180.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- for OpenSSL vulnerability CVE-2010-4180.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.9.1" date="2010-11-30">
- <change type="bugfix">
- <para lang="ru">
- директивы вида "return CODE message" не работали;
- ошибка появилась в 0.9.0.
- </para>
- <para lang="en">
- "return CODE message" directives did not work;
- the bug had appeared in 0.9.0.
- </para>
- </change>
- </changes>
- <changes ver="0.9.0" date="2010-11-29">
- <change type="feature">
- <para lang="ru">
- директива keepalive_disable.
- </para>
- <para lang="en">
- the "keepalive_disable" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива map поддерживает переменные в качестве значения определяемой
- переменной.
- </para>
- <para lang="en">
- the "map" directive supports variables as value of a defined variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива map поддерживает пустые строки в качестве значения первого параметра.
- </para>
- <para lang="en">
- the "map" directive supports empty strings as value of the first parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива map поддерживает выражения в первом параметре.
- </para>
- <para lang="en">
- the "map" directive supports expressions as the first parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- страница руководства nginx(8).<br/>
- Спасибо Сергею Осокину.
- </para>
- <para lang="en">
- nginx(8) manual page.<br/>
- Thanks to Sergey Osokin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка accept4() в Linux.<br/>
- Спасибо Simon Liu.
- </para>
- <para lang="en">
- Linux accept4() support.<br/>
- Thanks to Simon Liu.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- устранение предупреждения линкера о "sys_errlist" и "sys_nerr" под Linux;
- предупреждение появилось в 0.8.35.
- </para>
- <para lang="en">
- elimination of Linux linker warning about "sys_errlist" and "sys_nerr";
- the warning had appeared in 0.8.35.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы auth_basic
- в рабочем процессе мог произойти segmentation fault.<br/>
- Спасибо Михаилу Лалетину.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process,
- if the "auth_basic" directive was used.<br/>
- Thanks to Michail Laletin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с модулем ngx_http_eval_module;
- ошибка появилась в 0.8.42.
- </para>
- <para lang="en">
- compatibility with ngx_http_eval_module;
- the bug had appeared in 0.8.42.
- </para>
- </change>
- </changes>
- <changes ver="0.8.53" date="2010-10-18">
- <change type="feature">
- <para lang="ru">
- теперь директива error_page позволяет менять код статуса у редиректа.
- </para>
- <para lang="en">
- now the "error_page" directive allows to change a status code in a redirect.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива gzip_disable поддерживает специальную маску degradation.
- </para>
- <para lang="en">
- the "gzip_disable" directive supports special "degradation" mask.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании файлового AIO могла происходить утечка сокетов.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- a socket leak might occurred if file AIO was used.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в первом сервере не была описана директива listen и нигде явно
- не описан сервер по умолчанию, то сервером по умолчанию становился
- следующий сервер с директивой listen;
- ошибка появилась в 0.8.21.
- </para>
- <para lang="en">
- if the first server had no "listen" directive and there was no explicit
- default server, then a next server with a "listen" directive became
- the default server;
- the bug had appeared in 0.8.21.
- </para>
- </change>
- </changes>
- <changes ver="0.8.52" date="2010-09-28">
- <change type="bugfix">
- <para lang="ru">
- nginx использовал режим SSL для listen сокета, если для него был
- установлен любой listen-параметр;
- ошибка появилась в 0.8.51.
- </para>
- <para lang="en">
- nginx used SSL mode for a listen socket if any listen option was set;
- the bug had appeared in 0.8.51.
- </para>
- </change>
- </changes>
- <changes ver="0.8.51" date="2010-09-27">
- <change type="change">
- <para lang="ru">
- директива secure_link_expires упразднена.
- </para>
- <para lang="en">
- the "secure_link_expires" directive has been canceled.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- уровень логгирования ошибок resolver'а понижен с уровня alert на error.
- </para>
- <para lang="en">
- a logging level of resolver errors has been lowered from "alert" to "error".
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь параметр "ssl" listen-сокета можно устанавливать несколько раз.
- </para>
- <para lang="en">
- now a listen socket "ssl" parameter may be set several times.
- </para>
- </change>
- </changes>
- <changes ver="0.8.50" date="2010-09-02">
- <change type="feature">
- <para lang="ru">
- директивы secure_link, secure_link_md5 и secure_link_expires
- модуля ngx_http_secure_link_module.
- </para>
- <para lang="en">
- the "secure_link", "secure_link_md5", and "secure_link_expires" directives of
- the ngx_http_secure_link_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ключ -q.<br/>
- Спасибо Геннадию Махомеду.
- </para>
- <para lang="en">
- the -q switch.<br/>
- Thanks to Gena Makhomed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании кэширования рабочие процессы и могли зациклиться
- во время переконфигурации;
- ошибка появилась в 0.8.48.
- </para>
- <para lang="en">
- worker processes may got caught in an endless loop during reconfiguration,
- if a caching was used;
- the bug had appeared in 0.8.48.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве gzip_disable.<br/>
- Спасибо Derrick Petzold.
- </para>
- <para lang="en">
- in the "gzip_disable" directive.<br/>
- Thanks to Derrick Petzold.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows не мог посылать сигналы stop, quit, reopen, reload процессу,
- запущенному в другой сессии.
- </para>
- <para lang="en">
- nginx/Windows could not send stop, quit, reopen, and reload signals
- to a process run in other session.
- </para>
- </change>
- </changes>
- <changes ver="0.8.49" date="2010-08-09">
- <change type="feature">
- <para lang="ru">
- директива image_filter_jpeg_quality поддерживает переменные.
- </para>
- <para lang="en">
- the "image_filter_jpeg_quality" directive supports variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании переменной $geoip_region_name
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.8.48.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process,
- if the $geoip_region_name variables was used;
- the bug had appeared in 0.8.48.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки, перехваченные error_page, кэшировались только до следующего запроса;
- ошибка появилась в 0.8.48.
- </para>
- <para lang="en">
- errors intercepted by error_page were cached only for next request;
- the bug had appeared in 0.8.48.
- </para>
- </change>
- </changes>
- <changes ver="0.8.48" date="2010-08-03">
- <change type="change">
- <para lang="ru">
- теперь по умолчанию директива server_name имеет значение пустое имя "".<br/>
- Спасибо Геннадию Махомеду.
- </para>
- <para lang="en">
- now the "server_name" directive default value is an empty name "".<br/>
- Thanks to Gena Makhomed.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь по умолчанию директива server_name_in_redirect имеет значение off.
- </para>
- <para lang="en">
- now the "server_name_in_redirect" directive default value is "off".
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $geoip_dma_code, $geoip_area_code и $geoip_region_name.<br/>
- Спасибо Christine McGonagle.
- </para>
- <para lang="en">
- the $geoip_dma_code, $geoip_area_code, and $geoip_region_name variables.<br/>
- Thanks to Christine McGonagle.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_pass, fastcgi_pass, uwsgi_pass и scgi_pass не наследовались
- в блоки limit_except.
- </para>
- <para lang="en">
- the "proxy_pass", "fastcgi_pass", "uwsgi_pass", and "scgi_pass" directives
- were not inherited inside "limit_except" blocks.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_cache_min_uses, fastcgi_cache_min_uses
- uwsgi_cache_min_uses и scgi_cache_min_uses не работали;
- ошибка появилась в 0.8.46.
- </para>
- <para lang="en">
- the "proxy_cache_min_uses", "fastcgi_cache_min_uses"
- "uwsgi_cache_min_uses", and "scgi_cache_min_uses" directives did not work;
- the bug had appeared in 0.8.46.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива fastcgi_split_path_info неверно использовала выделения,
- если в выделения попадала только часть URI.<br/>
- Спасибо Юрию Тарадаю и Frank Enderle.
- </para>
- <para lang="en">
- the "fastcgi_split_path_info" directive used incorrectly captures,
- if only parts of an URI were captured.<br/>
- Thanks to Yuriy Taraday and Frank Enderle.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива rewrite не экранировала символ ";" при копировании из URI
- в аргументы.<br/>
- Спасибо Daisuke Murase.
- </para>
- <para lang="en">
- the "rewrite" directive did not escape a ";" character during copying
- from URI to query string.<br/>
- Thanks to Daisuke Murase.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_image_filter_module закрывал соединение,
- если изображение было больше размера image_filter_buffer.
- </para>
- <para lang="en">
- the ngx_http_image_filter_module closed a connection,
- if an image was larger than "image_filter_buffer" size.
- </para>
- </change>
- </changes>
- <changes ver="0.8.47" date="2010-07-28">
- <change type="bugfix">
- <para lang="ru">
- переменная $request_time имела неверные значения для подзапросов.
- </para>
- <para lang="en">
- $request_time variable had invalid values for subrequests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки, перехваченные error_page, не кэшировались.
- </para>
- <para lang="en">
- errors intercepted by error_page could not be cached.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если использовался параметр max_size, то cache manager мог зациклиться;
- ошибка появилась в 0.8.46.
- </para>
- <para lang="en">
- a cache manager process may got caught in an endless loop,
- if max_size parameter was used;
- the bug had appeared in 0.8.46.
- </para>
- </change>
- </changes>
- <changes ver="0.8.46" date="2010-07-19">
- <change type="change">
- <para lang="ru">
- директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
- и scgi_no_cache теперь влияют только на сохранение закэшированного ответа.
- </para>
- <para lang="en">
- now the "proxy_no_cache", "fastcgi_no_cache", "uwsgi_no_cache", and
- "scgi_no_cache" directives affect on a cached response saving only.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_cache_bypass, fastcgi_cache_bypass, uwsgi_cache_bypass
- и scgi_cache_bypass.
- </para>
- <para lang="en">
- the "proxy_cache_bypass", "fastcgi_cache_bypass", "uwsgi_cache_bypass",
- and "scgi_cache_bypass" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не освобождал память в keys_zone кэшей в случае ошибки работы с
- бэкендом: память освобождалась только по истечении времени неактивности
- или при недостатке памяти.
- </para>
- <para lang="en">
- nginx did not free memory in cache keys zones if there was an error
- during working with backend: the memory was freed only after inactivity
- time or on memory low condition.
- </para>
- </change>
- </changes>
- <changes ver="0.8.45" date="2010-07-13">
- <change type="feature">
- <para lang="ru">
- улучшения в модуле ngx_http_xslt_filter.<br/>
- Спасибо Laurence Rowe.
- </para>
- <para lang="en">
- ngx_http_xslt_filter improvements.<br/>
- Thanks to Laurence Rowe.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответ SSI модуля мог передаваться не полностью после команды include
- с параметром wait="yes";
- ошибка появилась в 0.7.25.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- SSI response might be truncated after include with wait="yes";
- the bug had appeared in 0.7.25.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива listen не поддерживала параметр setfib=0.
- </para>
- <para lang="en">
- the "listen" directive did not support the "setfib=0" parameter.
- </para>
- </change>
- </changes>
- <changes ver="0.8.44" date="2010-07-05">
- <change type="change">
- <para lang="ru">
- теперь nginx по умолчанию не кэширует ответы бэкендов,
- в заголовке которых есть строка "Set-Cookie".
- </para>
- <para lang="en">
- now nginx does not cache by default backend responses,
- if they have a "Set-Cookie" header line.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива listen поддерживает параметр setfib.<br/>
- Спасибо Андрею Филонову.
- </para>
- <para lang="en">
- the "listen" directive supports the "setfib" parameter.<br/>
- Thanks to Andrew Filonov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива sub_filter могла изменять регистр букв при частичном совпадении.
- </para>
- <para lang="en">
- the "sub_filter" directive might change character case on partial match.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с HP/UX.
- </para>
- <para lang="en">
- compatibility with HP/UX.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с компилятором AIX xlC_r.
- </para>
- <para lang="en">
- compatibility with AIX xlC_r compiler.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx считал большие пакеты SSLv2 как обычные текстовые запросы.<br/>
- Спасибо Miroslaw Jaworski.
- </para>
- <para lang="en">
- nginx treated large SSLv2 packets as plain requests.<br/>
- Thanks to Miroslaw Jaworski.
- </para>
- </change>
- </changes>
- <changes ver="0.8.43" date="2010-06-30">
- <change type="feature">
- <para lang="ru">
- ускорение загрузки больших баз geo-диапазонов.
- </para>
- <para lang="en">
- large geo ranges base loading speed-up.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- перенаправление ошибки в "location /zero {return 204;}" без изменения
- кода ответа оставляло тело ошибки;
- ошибка появилась в 0.8.42.
- </para>
- <para lang="en">
- an error_page redirection to "location /zero {return 204;}" without
- changing status code kept the error body;
- the bug had appeared in 0.8.42.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог закрывать IPv6 listen сокет во время переконфигурации.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- nginx might close IPv6 listen socket during reconfiguration.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменную $uid_set можно использовать на любой стадии обработки запроса.
- </para>
- <para lang="en">
- the $uid_set variable may be used at any request processing stage.
- </para>
- </change>
- </changes>
- <changes ver="0.8.42" date="2010-06-21">
- <change type="change">
- <para lang="ru">
- теперь nginx проверяет location'ы, заданные регулярными выражениями,
- если запрос полностью совпал с location'ом, заданным строкой префикса.
- Предыдущее поведение появилось в 0.7.1.
- </para>
- <para lang="en">
- now nginx tests locations given by regular expressions,
- if request was matched exactly by a location given by a prefix string.
- The previous behavior has been introduced in 0.7.1.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_scgi_module.<br/>
- Спасибо Manlio Perillo.
- </para>
- <para lang="en">
- the ngx_http_scgi_module.<br/>
- Thanks to Manlio Perillo.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в директиве return можно добавлять текст ответа.
- </para>
- <para lang="en">
- a text answer may be added to a "return" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.8.41" date="2010-06-15">
- <change type="security">
- <para lang="ru">
- рабочий процесс nginx/Windows мог завершаться аварийно при запросе файла
- с неверной кодировкой UTF-8.
- </para>
- <para lang="en">
- nginx/Windows worker might be terminated abnormally if a requested file name
- has invalid UTF-8 encoding.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx разрешает использовать пробелы в строке запроса.
- </para>
- <para lang="en">
- now nginx allows to use spaces in a request line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива proxy_redirect неправильно изменяла строку "Refresh" в заголовке
- ответа бэкенда.<br/>
- Спасибо Андрею Андрееву и Максиму Согину.
- </para>
- <para lang="en">
- the "proxy_redirect" directive changed incorrectly a backend "Refresh"
- response header line.<br/>
- Thanks to Andrey Andreew and Max Sogin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не поддерживал путь без имени хоста в
- строке "Destination" в заголовке запроса.
- </para>
- <para lang="en">
- nginx did not support path without host name
- in "Destination" request header line.
- </para>
- </change>
- </changes>
- <changes ver="0.8.40" date="2010-06-07">
- <change type="security">
- <para lang="ru">
- теперь nginx/Windows игнорирует имя потока файла по умолчанию.<br/>
- Спасибо Jose Antonio Vazquez Gonzalez.
- </para>
- <para lang="en">
- now nginx/Windows ignores default file stream name.<br/>
- Thanks to Jose Antonio Vazquez Gonzalez.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_uwsgi_module.<br/>
- Спасибо Roberto De Ioris.
- </para>
- <para lang="en">
- the ngx_http_uwsgi_module.<br/>
- Thanks to Roberto De Ioris.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива fastcgi_param со значением, начинающимся со строки "HTTP_",
- изменяет строку заголовка в запросе клиента.
- </para>
- <para lang="en">
- a "fastcgi_param" directive with value starting with "HTTP_" overrides
- a client request header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса
- клиента передавались FastCGI-серверу при кэшировании.
- </para>
- <para lang="en">
- the "If-Modified-Since", "If-Range", etc. client request header lines
- were passed to FastCGI-server while caching.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- listen unix domain сокет нельзя было изменить во время переконфигурации.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- listen unix domain socket could not be changed during reconfiguration.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.8.39" date="2010-05-31">
- <change type="bugfix">
- <para lang="ru">
- наследуемая директива alias неправильно работала во вложенном location'е.
- </para>
- <para lang="en">
- an inherited "alias" directive worked incorrectly in inclusive location.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в комбинации директив alias с переменными и try_files;
- </para>
- <para lang="en">
- in "alias" with variables and "try_files" directives combination.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- listen unix domain и IPv6 сокеты не наследовались во время обновления
- без перерыва.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- listen unix domain and IPv6 sockets did not inherit while online upgrade.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.8.38" date="2010-05-24">
- <change type="feature">
- <para lang="ru">
- директивы proxy_no_cache и fastcgi_no_cache.
- </para>
- <para lang="en">
- the "proxy_no_cache" and "fastcgi_no_cache" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь при использовании переменной $scheme в директиве rewrite
- автоматически делается редирект.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- now the "rewrite" directive does a redirect automatically
- if the $scheme variable is used.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь задержки в директиве limit_req соответствует описанному алгоритму.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- now "limit_req" delay directive conforms to the described algorithm.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменную $uid_got нельзя было использовать в SSI и перловом модулях.
- </para>
- <para lang="en">
- the $uid_got variable might not be used in the SSI and perl modules.
- </para>
- </change>
- </changes>
- <changes ver="0.8.37" date="2010-05-17">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_split_clients_module.
- </para>
- <para lang="en">
- the ngx_http_split_clients_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива map поддерживает ключи больше 255 символов.
- </para>
- <para lang="en">
- the "map" directive supports keys more than 255 characters.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx игнорировал значения "private" и "no-store" в строке "Cache-Control"
- в заголовке ответа бэкенда.
- </para>
- <para lang="en">
- nginx ignored the "private" and "no-store" values
- in the "Cache-Control" backend response header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр stub в SSI-директиве include не использовался,
- если пустой ответ имел код 200.
- </para>
- <para lang="en">
- a "stub" parameter of an "include" SSI directive was not used,
- if empty response has 200 status code.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если проксированный или FastCGI запрос внутренне перенаправлялся
- в другой проксированный или FastCGI location,
- то в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.8.33.<br/>
- Спасибо Yichun Zhang.
- </para>
- <para lang="en">
- if a proxied or FastCGI request was internally redirected
- to another proxied or FastCGI location,
- then a segmentation fault might occur in a worker process;
- the bug had appeared in 0.8.33.<br/>
- Thanks to Yichun Zhang.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- соединения IMAP к серверу Zimbra могло зависнуть до таймаута.<br/>
- Спасибо Alan Batie.
- </para>
- <para lang="en">
- IMAP connections may hang until they timed out
- while talking to Zimbra server.<br/>
- Thanks to Alan Batie.
- </para>
- </change>
- </changes>
- <changes ver="0.8.36" date="2010-04-22">
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_dav_module неправильно обрабатывал методы DELETE, COPY и MOVE
- для симлинков.
- </para>
- <para lang="en">
- the ngx_http_dav_module handled incorrectly the DELETE, COPY, and MOVE methods
- for symlinks.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль SSI в подзапросах использовал закэшированные в основном запросе
- значения переменных $query_string, $arg_... и им подобных.
- </para>
- <para lang="en">
- values of the $query_string, $arg_..., etc. variables cached in main
- request were used by the SSI module in subrequests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- значение переменной повторно экранировалось после каждого вывода
- SSI-команды echo;
- ошибка появилась в 0.6.14.
- </para>
- <para lang="en">
- a variable value was repeatedly encoded after each
- an "echo" SSI-command output;
- the bug had appeared in 0.6.14.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- рабочий процесс зависал при запросе файла FIFO.<br/>
- Спасибо Vicente Aguilar и Максиму Дунину.
- </para>
- <para lang="en">
- a worker process hung if a FIFO file was requested.<br/>
- Thanks to Vicente Aguilar and Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с OpenSSL-1.0.0 на 64-битном Linux.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- OpenSSL-1.0.0 compatibility on 64-bit Linux.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с параметром --without-http-cache;
- ошибка появилась в 0.8.35.
- </para>
- <para lang="en">
- nginx could not be built --without-http-cache;
- the bug had appeared in 0.8.35.
- </para>
- </change>
- </changes>
- <changes ver="0.8.35" date="2010-04-01">
- <change type="change">
- <para lang="ru">
- теперь charset-фильтр работает до SSI-фильтра.
- </para>
- <para lang="en">
- now the charset filter runs before the SSI filter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива chunked_transfer_encoding.
- </para>
- <para lang="en">
- the "chunked_transfer_encoding" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- символ "&" при копировании в аргументы в правилах rewrite не экранировался.
- </para>
- <para lang="en">
- an "&" character was not escaped when it was copied in arguments part
- in a rewrite rule.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог завершаться аварийно во время обработки сигнала или
- при использовании директивы timer_resolution на платформах,
- не поддерживающих методы kqueue или eventport.<br/>
- Спасибо George Xie и Максиму Дунину.
- </para>
- <para lang="en">
- nginx might be terminated abnormally
- while a signal processing or if the directive "timer_resolution" was used
- on platforms which do not support kqueue or eventport notification methods.<br/>
- Thanks to George Xie and Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если временные файлы и постоянное место хранения располагались на разных
- файловых системах, то у постоянных файлов время изменения было неверным.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- if temporary files and permanent storage area resided at different
- file systems, then permanent file modification times were incorrect.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_memcached_module мог выдавать ошибку "memcached sent invalid
- trailer".<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- ngx_http_memcached_module might issue the error message "memcached sent invalid
- trailer".<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не мог собрать библиотеку zlib-1.2.4 из исходных текстов.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- nginx could not built zlib-1.2.4 library using the library sources.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе происходил segmentation fault,
- если перед ответом FastCGI-сервера было много вывода в stderr;
- ошибка появилась в 0.8.34.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- a segmentation fault occurred in a worker process,
- if there was large stderr output before FastCGI response;
- the bug had appeared in 0.8.34.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.8.34" date="2010-03-03">
- <change type="bugfix">
- <para lang="ru">
- nginx не поддерживал все шифры, используемые в клиентских сертификатах.<br/>
- Спасибо Иннокентию Еникееву.
- </para>
- <para lang="en">
- nginx did not support all ciphers and digests used in client certificates.<br/>
- Thanks to Innocenty Enikeew.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx неправильно кэшировал FastCGI-ответы, если перед ответом было
- много вывода в stderr.
- </para>
- <para lang="en">
- nginx cached incorrectly FastCGI responses if there was large stderr output
- before response.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не поддерживал HTTPS-рефереры.
- </para>
- <para lang="en">
- nginx did not support HTTPS referrers.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows мог не находить файлы, если путь в конфигурации был задан
- в другом регистре;
- ошибка появилась в 0.8.33.
- </para>
- <para lang="en">
- nginx/Windows might not find file if path in configuration was given
- in other character case;
- the bug had appeared in 0.8.33.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $date_local выдавала неверное время,
- если использовался формат "%s".<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- the $date_local variable has an incorrect value,
- if the "%s" format was used.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если ssl_session_cache не был установлен или установлен в none,
- то при проверке клиентского сертификаты могла происходить
- ошибка "session id context uninitialized";
- ошибка появилась в 0.7.1.
- </para>
- <para lang="en">
- if ssl_session_cache was not set or was set to "none",
- then during client certificate verify
- the error "session id context uninitialized" might occur;
- the bug had appeared in 0.7.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- geo-диапазон возвращал значение по умолчанию, если диапазон включал
- в себя одну и более сетей размером /16 и не начинался на границе сети
- размером /16.
- </para>
- <para lang="en">
- a geo range returned default value if the range included two or more
- /16 networks and did not begin at /16 network boundary.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- блок, используемый в параметре stub в SSI-директиве include,
- выводился с MIME-типом "text/plain".
- </para>
- <para lang="en">
- a block used in a "stub" parameter of an "include" SSI directive
- was output with "text/plain" MIME type.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- $r->sleep() не работал;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- $r->sleep() did not work;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- </changes>
- <changes ver="0.8.33" date="2010-02-01">
- <change type="security">
- <para lang="ru">
- теперь nginx/Windows игнорирует пробелы в конце URI.<br/>
- Спасибо Dan Crowley, Core Security Technologies.
- </para>
- <para lang="en">
- now nginx/Windows ignores trailing spaces in URI.<br/>
- Thanks to Dan Crowley, Core Security Technologies.
- </para>
- </change>
- <change type="security">
- <para lang="ru">
- теперь nginx/Windows игнорирует короткие имена файлов.<br/>
- Спасибо Dan Crowley, Core Security Technologies.
- </para>
- <para lang="en">
- now nginx/Windows ignores short files names.<br/>
- Thanks to Dan Crowley, Core Security Technologies.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь keepalive соединения после запросов POST не запрещаются для
- MSIE 7.0+.<br/>
- Спасибо Adam Lounds.
- </para>
- <para lang="en">
- now keepalive connections after POST requests are not disabled for
- MSIE 7.0+.<br/>
- Thanks to Adam Lounds.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- теперь keepalive соединения запрещены для Safari.<br/>
- Спасибо Joshua Sierles.
- </para>
- <para lang="en">
- now keepalive connections are disabled for Safari.<br/>
- Thanks to Joshua Sierles.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если проксированный или FastCGI запрос внутренне перенаправлялся
- в другой проксированный или FastCGI location, то переменная
- $upstream_response_time могла иметь ненормально большое значение;
- ошибка появилась в 0.8.7.
- </para>
- <para lang="en">
- if a proxied or FastCGI request was internally redirected
- to another proxied or FastCGI location,
- then $upstream_response_time variable may have abnormally large value;
- the bug had appeared in 0.8.7.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault
- при отбрасывания тела запроса;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process,
- while discarding a request body;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- </changes>
- <changes ver="0.8.32" date="2010-01-11">
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- UTF-8 encoding usage in the ngx_http_autoindex_module.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- именованные выделения в регулярных выражениях работали только для
- двух переменных.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- regular expression named captures worked for two names only.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь в строке заголовка запроса "Host" используется имя "localhost",
- если в директиве auth_http указан unix domain сокет.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- now the "localhost" name is used in the "Host" request header line,
- if an unix domain socket is defined in the "auth_http" directive.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не поддерживал передачу chunk'ами для 201-ых ответов.<br/>
- Спасибо Julian Reich.
- </para>
- <para lang="en">
- nginx did not support chunked transfer encoding for 201 responses.<br/>
- Thanks to Julian Reich.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если директива "expires modified" выставляла дату в прошлом, то в строке
- заголовка ответа "Cache-Control" выдавалось отрицательное число.<br/>
- Спасибо Алексею Капранову.
- </para>
- <para lang="en">
- if the "expires modified" set date in the past, then a negative number
- was set in the "Cache-Control" response header line.<br/>
- Thanks to Alex Kapranoff.
- </para>
- </change>
- </changes>
- <changes ver="0.8.31" date="2009-12-23">
- <change type="feature">
- <para lang="ru">
- теперь директива error_page может перенаправлять ответы со статусом 301 и 302.
- </para>
- <para lang="en">
- now the "error_page" directive may redirect the 301 and 302 responses.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $geoip_city_continent_code, $geoip_latitude и $geoip_longitude.<br/>
- Спасибо Arvind Sundararajan.
- </para>
- <para lang="en">
- the $geoip_city_continent_code, $geoip_latitude, and $geoip_longitude
- variables.<br/>
- Thanks to Arvind Sundararajan.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_image_filter_module теперь всегда удаляет
- EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
- </para>
- <para lang="en">
- now the ngx_http_image_filter_module deletes always EXIF and other
- application specific data if the data consume more than 5% of a JPEG file.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx закрывал соединение при запросе закэшированного
- ответа с пустым телом.<br/>
- Спасибо Piotr Sikora.
- </para>
- <para lang="en">
- nginx closed a connection if a cached response had an empty body.<br/>
- Thanks to Piotr Sikora.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог не собираться gcc 4.x при использовании оптимизации -O2 и выше.<br/>
- Спасибо Максиму Дунину и Денису Латыпову.
- </para>
- <para lang="en">
- nginx might not be built by gcc 4.x if the -O2 or higher optimization option
- was used.<br/>
- Thanks to Maxim Dounin and Denis F. Latypoff.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- регулярные выражения в location всегда тестировались с учётом регистра;
- ошибка появилась в 0.8.25.
- </para>
- <para lang="en">
- regular expressions in location were always tested in case-sensitive mode;
- the bug had appeared in 0.8.25.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx кэшировал 304 ответ, если в заголовке проксируемого запроса
- была строка "If-None-Match".<br/>
- Спасибо Tim Dettrick и David Kostal.
- </para>
- <para lang="en">
- nginx cached a 304 response if there was the "If-None-Match" header line
- in a proxied request.<br/>
- Thanks to Tim Dettrick and David Kostal.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows пытался дважды удалить временный файл
- при перезаписи уже существующего файла.
- </para>
- <para lang="en">
- nginx/Windows tried to delete a temporary file twice
- if the file should replace an already existent file.
- </para>
- </change>
- </changes>
- <changes ver="0.8.30" date="2009-12-15">
- <change type="change">
- <para lang="ru">
- теперь по умолчанию размер буфера директивы large_client_header_buffers
- равен 8K.<br/>
- Спасибо Andrew Cholakian.
- </para>
- <para lang="en">
- now the default buffer size of the "large_client_header_buffers"
- directive is 8K.<br/>
- Thanks to Andrew Cholakian.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- файл conf/fastcgi.conf для простых конфигураций FastCGI.
- </para>
- <para lang="en">
- the conf/fastcgi.conf for simple FastCGI configurations.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows пытался дважды переименовать временный файл
- при перезаписи уже существующего файла.
- </para>
- <para lang="en">
- nginx/Windows tried to rename a temporary file twice if the file
- should replace an already existent file.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки double free or corruption, возникающей, если имя хоста не было найдено;
- ошибка появилась в 0.8.22.<br/>
- Спасибо Константину Свисту.
- </para>
- <para lang="en">
- of "double free or corruption" error issued if host could not be resolved;
- the bug had appeared in 0.8.22.<br/>
- Thanks to Konstantin Svist.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в использовании libatomic на некоторых платформах.<br/>
- Спасибо W-Mark Kubacki.
- </para>
- <para lang="en">
- in libatomic usage on some platforms.<br/>
- Thanks to W-Mark Kubacki.
- </para>
- </change>
- </changes>
- <changes ver="0.8.29" date="2009-11-30">
- <change type="change">
- <para lang="ru">
- теперь для проксируемых ответов HTTP/0.9 в лог пишется код ответа "009".
- </para>
- <para lang="en">
- now the "009" status code is written to an access log for proxied HTTP/0.9
- responses.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы addition_types, charset_types, gzip_types, ssi_types,
- sub_filter_types и xslt_types поддерживают параметр "*".
- </para>
- <para lang="en">
- the "addition_types", "charset_types", "gzip_types", "ssi_types",
- "sub_filter_types", and "xslt_types" directives support an "*" parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- использование встроенных атомарных операций GCC 4.1+.<br/>
- Спасибо W-Mark Kubacki.
- </para>
- <para lang="en">
- GCC 4.1+ built-in atomic operations usage.<br/>
- Thanks to W-Mark Kubacki.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр --with-libatomic[=DIR] в configure.<br/>
- Спасибо W-Mark Kubacki.
- </para>
- <para lang="en">
- the --with-libatomic[=DIR] option in the configure.<br/>
- Thanks to W-Mark Kubacki.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- listen unix domain сокет имели ограниченные права доступа.
- </para>
- <para lang="en">
- listen unix domain socket had limited access rights.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- закэшированные ответы ответов HTTP/0.9 неправильно обрабатывались.
- </para>
- <para lang="en">
- cached HTTP/0.9 responses were handled incorrectly.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- именованные выделения в регулярных выражениях, заданные как "?P<...>",
- не работали в директиве server_name.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- regular expression named captures given by "?P<...>" did not work
- in a "server_name" directive.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.8.28" date="2009-11-23">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с параметром --without-pcre;
- ошибка появилась в 0.8.25.
- </para>
- <para lang="en">
- nginx could not be built with the --without-pcre parameter;
- the bug had appeared in 0.8.25.
- </para>
- </change>
- </changes>
- <changes ver="0.8.27" date="2009-11-17">
- <change type="bugfix">
- <para lang="ru">
- регулярные выражения не работали в nginx/Windows;
- ошибка появилась в 0.8.25.
- </para>
- <para lang="en">
- regular expressions did not work in nginx/Windows;
- the bug had appeared in 0.8.25.
- </para>
- </change>
- </changes>
- <changes ver="0.8.26" date="2009-11-16">
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании выделений в директиве rewrite;
- ошибка появилась в 0.8.25.
- </para>
- <para lang="en">
- in captures usage in "rewrite" directive;
- the bug had appeared in 0.8.25.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался без параметра --with-debug;
- ошибка появилась в 0.8.25.
- </para>
- <para lang="en">
- nginx could not be built without the --with-debug option;
- the bug had appeared in 0.8.25.
- </para>
- </change>
- </changes>
- <changes ver="0.8.25" date="2009-11-16">
- <change type="change">
- <para lang="ru">
- теперь в лог ошибок не пишется сообщение, если переменная не найдена
- с помощью метода $r->variable().
- </para>
- <para lang="en">
- now no message is written in an error log if a variable is not found by
- $r->variable() method.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_degradation_module.
- </para>
- <para lang="en">
- the ngx_http_degradation_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- именованные выделения в регулярных выражениях.
- </para>
- <para lang="en">
- regular expression named captures.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь при использовании переменных в директиве proxy_pass не требуется
- задавать URI.
- </para>
- <para lang="en">
- now URI part is not required a "proxy_pass" directive if variables are used.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь директива msie_padding работает и для Chrome.
- </para>
- <para lang="en">
- now the "msie_padding" directive works for Chrome too.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе происходил segmentation fault при недостатке памяти;
- ошибка появилась в 0.8.18.
- </para>
- <para lang="en">
- a segmentation fault occurred in a worker process on low memory condition;
- the bug had appeared in 0.8.18.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx передавал сжатые ответы клиентам, не поддерживающим сжатие,
- при настройках gzip_static on и gzip_vary off;
- ошибка появилась в 0.8.16.
- </para>
- <para lang="en">
- nginx sent gzipped responses to clients those do not support gzip,
- if "gzip_static on" and "gzip_vary off";
- the bug had appeared in 0.8.16.
- </para>
- </change>
- </changes>
- <changes ver="0.8.24" date="2009-11-11">
- <change type="bugfix">
- <para lang="ru">
- nginx всегда добавлял строку "Content-Encoding: gzip" в заголовок
- 304-ых ответов модуля ngx_http_gzip_static_module.
- </para>
- <para lang="en">
- nginx always added "Content-Encoding: gzip" response header line
- in 304 responses sent by ngx_http_gzip_static_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался без параметра --with-debug;
- ошибка появилась в 0.8.23.
- </para>
- <para lang="en">
- nginx could not be built without the --with-debug option;
- the bug had appeared in 0.8.23.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр "unix:" в директиве set_real_ip_from неправильно наследовался
- с предыдущего уровня.
- </para>
- <para lang="en">
- the "unix:" parameter of the "set_real_ip_from" directive inherited
- incorrectly from previous level.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в resolver'е при определении пустого имени.
- </para>
- <para lang="en">
- in resolving empty name.
- </para>
- </change>
- </changes>
- <changes ver="0.8.23" date="2009-11-11">
- <change type="security">
- <para lang="ru">
- теперь SSL/TLS renegotiation запрещён.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- now SSL/TLS renegotiation is disabled.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- listen unix domain сокет не наследовался во время обновления без перерыва.
- </para>
- <para lang="en">
- listen unix domain socket did not inherit while online upgrade.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр "unix:" в директиве set_real_ip_from не работал без ещё
- одной директивы с любым IP-адресом.
- </para>
- <para lang="en">
- the "unix:" parameter of the "set_real_ip_from" directive did not without
- yet another directive with any IP address.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- segmentation fault и зацикливания в resolver'е.
- </para>
- <para lang="en">
- segmentation fault and infinite looping in resolver.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в resolver'е.<br/>
- Спасибо Артёму Бохану.
- </para>
- <para lang="en">
- in resolver.<br/>
- Thanks to Artem Bokhan.
- </para>
- </change>
- </changes>
- <changes ver="0.8.22" date="2009-11-03">
- <change type="feature">
- <para lang="ru">
- директивы proxy_bind, fastcgi_bind и memcached_bind.
- </para>
- <para lang="en">
- the "proxy_bind", "fastcgi_bind", and "memcached_bind" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы access и deny поддерживают IPv6.
- </para>
- <para lang="en">
- the "access" and the "deny" directives support IPv6.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива set_real_ip_from поддерживает IPv6 адреса в заголовках запроса.
- </para>
- <para lang="en">
- the "set_real_ip_from" directive supports IPv6 addresses in request headers.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр "unix:" в директиве set_real_ip_from.
- </para>
- <para lang="en">
- the "unix:" parameter of the "set_real_ip_from" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не удалял unix domain сокет после тестирования конфигурации.
- </para>
- <para lang="en">
- nginx did not delete unix domain socket after configuration testing.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx удалял unix domain сокет во время обновления без перерыва.
- </para>
- <para lang="en">
- nginx deleted unix domain socket while online upgrade.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- оператор "!-x" не работал.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- the "!-x" operator did not work.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault
- при использовании limit_rate в HTTPS сервере.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process,
- if limit_rate was used in HTTPS server.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при записи в лог переменной $limit_rate
- в рабочем процессе происходил segmentation fault.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process
- while $limit_rate logging.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если внутри блока server не было директивы listen;
- ошибка появилась в 0.8.21.
- </para>
- <para lang="en">
- a segmentation fault might occur in a worker process,
- if there was no "listen" directive in "server" block;
- the bug had appeared in 0.8.21.
- </para>
- </change>
- </changes>
- <changes ver="0.8.21" date="2009-10-26">
- <change type="feature">
- <para lang="ru">
- теперь ключ -V показывает статус поддержки TLS SNI.
- </para>
- <para lang="en">
- now the "-V" switch shows TLS SNI support.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива listen модуля HTTP поддерживает unix domain сокеты.<br/>
- Спасибо Hongli Lai.
- </para>
- <para lang="en">
- the "listen" directive of the HTTP module supports unix domain sockets.<br/>
- Thanks to Hongli Lai.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр "default_server" в директиве listen.
- </para>
- <para lang="en">
- the "default_server" parameter of the "listen" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь параметр "default" не обязателен для установки параметров listen-сокета.
- </para>
- <para lang="en">
- now a "default" parameter is not required to set listen socket options.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не поддерживал даты в 2038 году на 32-битных платформах;
- </para>
- <para lang="en">
- nginx did not support dates in 2038 year on 32-bit platforms;
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- socket leak;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- </changes>
- <changes ver="0.8.20" date="2009-10-14">
- <change type="change">
- <para lang="ru">
- теперь по умолчанию используются следующие шифры SSL: "HIGH:!ADH:!MD5".
- </para>
- <para lang="en">
- now default SSL ciphers are "HIGH:!ADH:!MD5".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_autoindex_module не показывал последний слэш для линков
- на каталоги;
- ошибка появилась в 0.7.15.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module did not show the trailing slash in links to
- a directory;
- the bug had appeared in 0.7.15.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не закрывал лог, заданный параметром конфигурации --error-log-path;
- ошибка появилась в 0.7.53.
- </para>
- <para lang="en">
- nginx did not close a log file set by the --error-log-path configuration option;
- the bug had appeared in 0.7.53.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не считал запятую разделителем в строке "Cache-Control" в
- заголовке ответа бэкенда.
- </para>
- <para lang="en">
- nginx did not treat a comma as separator in the "Cache-Control" backend response
- header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows мог не создать временный файл, файл в кэше или файл
- с помощью директив proxy/fastcgi_store, если рабочий процесс не имел
- достаточно прав для работы с каталогами верхнего уровня.
- </para>
- <para lang="en">
- nginx/Windows might not create temporary file, a cache file, or
- "proxy/fastcgi_store"d file if a worker had no enough access rights
- for top level directories.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строки "Set-Cookie" и "P3P" в заголовке ответа FastCGI-сервера не скрывались
- при кэшировании, если не использовались директивы fastcgi_hide_header
- с любыми параметрами.
- </para>
- <para lang="en">
- the "Set-Cookie" and "P3P" FastCGI response header lines were not hidden
- while caching if no "fastcgi_hide_header" directives were used with
- any parameters.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx неверно считал размер кэша на диске.
- </para>
- <para lang="en">
- nginx counted incorrectly disk cache size.
- </para>
- </change>
- </changes>
- <changes ver="0.8.19" date="2009-10-06">
- <change type="change">
- <para lang="ru">
- теперь протокол SSLv2 по умолчанию запрещён.
- </para>
- <para lang="en">
- now SSLv2 protocol is disabled by default.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь по умолчанию используются следующие шифры SSL:
- "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
- </para>
- <para lang="en">
- now default SSL ciphers are "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива limit_req не работала;
- ошибка появилась в 0.8.18.
- </para>
- <para lang="en">
- a "limit_req" directive did not work;
- the bug had appeared in 0.8.18.
- </para>
- </change>
- </changes>
- <changes ver="0.8.18" date="2009-10-06">
- <change type="feature">
- <para lang="ru">
- директива read_ahead.
- </para>
- <para lang="en">
- the "read_ahead" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь можно использовать несколько директив perl_modules.
- </para>
- <para lang="en">
- now several "perl_modules" directives may be used.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы limit_req_log_level и limit_conn_log_level.
- </para>
- <para lang="en">
- the "limit_req_log_level" and "limit_conn_log_level" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь директива limit_req соответствует алгоритму leaky bucket.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- now "limit_req" directive conforms to the leaky bucket algorithm.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не работал на Linux/sparc.<br/>
- Спасибо Marcus Ramberg.
- </para>
- <para lang="en">
- nginx did not work on Linux/sparc.<br/>
- Thanks to Marcus Ramberg.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx слал символ '\0' в строке "Location" в заголовке в ответе на запрос
- MKCOL.<br/>
- Спасибо Xie Zhenye.
- </para>
- <para lang="en">
- nginx sent '\0' in a "Location" response header line on MKCOL request.<br/>
- Thanks to Xie Zhenye.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- вместо кода ответа 499 в лог записывался код 0;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- zero status code was logged instead of 499 status code;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- socket leak;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- </changes>
- <changes ver="0.8.17" date="2009-09-28">
- <change type="security">
- <para lang="ru">
- теперь символы "/../" запрещены в строке "Destination" в заголовке запроса.
- </para>
- <para lang="en">
- now "/../" are disabled in "Destination" request header line.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь значение переменной $host всегда в нижнем регистре.
- </para>
- <para lang="en">
- now $host variable value is always low case.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $ssl_session_id.
- </para>
- <para lang="en">
- the $ssl_session_id variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- socket leak;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- </changes>
- <changes ver="0.8.16" date="2009-09-22">
- <change type="feature">
- <para lang="ru">
- директива image_filter_transparency.
- </para>
- <para lang="en">
- the "image_filter_transparency" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива "addition_types" была неверно названа "addtion_types".
- </para>
- <para lang="en">
- "addition_types" directive was incorrectly named "addtion_types".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- порчи кэша resolver'а.<br/>
- Спасибо Matthew Dempsky.
- </para>
- <para lang="en">
- resolver cache poisoning.<br/>
- Thanks to Matthew Dempsky.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти в resolver'е.<br/>
- Спасибо Matthew Dempsky.
- </para>
- <para lang="en">
- memory leak in resolver.<br/>
- Thanks to Matthew Dempsky.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- неверная строка запроса в переменной $request записывалась в access_log
- только при использовании error_log на уровне info или debug.
- </para>
- <para lang="en">
- invalid request line in $request variable was written in access_log
- only if error_log was set to "info" or "debug" level.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в поддержке альфа-канала PNG в модуле ngx_http_image_filter_module.
- </para>
- <para lang="en">
- in PNG alpha-channel support in the ngx_http_image_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx всегда добавлял строку "Vary: Accept-Encoding" в заголовок ответа,
- если обе директивы gzip_static и gzip_vary были включены.
- </para>
- <para lang="en">
- nginx always added "Vary: Accept-Encoding" response header line,
- if both "gzip_static" and "gzip_vary" were on.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в поддержке кодировки UTF-8 директивой try_files в nginx/Windows.
- </para>
- <para lang="en">
- in UTF-8 encoding support by "try_files" directive in nginx/Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании post_action;
- ошибка появилась в 0.8.11.<br/>
- Спасибо Игорю Артемьеву.
- </para>
- <para lang="en">
- in "post_action" directive usage;
- the bug had appeared in 0.8.11.<br/>
- Thanks to Igor Artemiev.
- </para>
- </change>
- </changes>
- <changes ver="0.8.15" date="2009-09-14">
- <change type="security">
- <para lang="ru">
- при обработке специально созданного запроса
- в рабочем процессе мог произойти segmentation fault.<br/>
- Спасибо Chris Ries.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- while specially crafted request handling.<br/>
- Thanks to Chris Ries.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если были описаны имена .domain.tld, .sub.domain.tld и .domain-some.tld,
- то имя .sub.domain.tld попадало под маску .domain.tld.
- </para>
- <para lang="en">
- if names .domain.tld, .sub.domain.tld, and .domain-some.tld were defined,
- then the name .sub.domain.tld was matched by .domain.tld.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в поддержке прозрачности в модуле ngx_http_image_filter_module.
- </para>
- <para lang="en">
- in transparency support in the ngx_http_image_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в файловом AIO.
- </para>
- <para lang="en">
- in file AIO.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании X-Accel-Redirect;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- in X-Accel-Redirect usage;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании встроенного перла;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- in embedded perl module;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- </changes>
- <changes ver="0.8.14" date="2009-09-07">
- <change type="bugfix">
- <para lang="ru">
- устаревший закэшированный запрос мог залипнуть в состоянии "UPDATING".
- </para>
- <para lang="en">
- an expired cached response might stick in the "UPDATING" state.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании error_log на уровне info или debug
- в рабочем процессе мог произойти segmentation fault.<br/>
- Спасибо Сергею Боченкову.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process,
- if error_log was set to info or debug level.<br/>
- Thanks to Sergey Bochenkov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании встроенного перла;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- in embedded perl module;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива error_page не перенаправляла ошибку 413;
- ошибка появилась в 0.6.10.
- </para>
- <para lang="en">
- an "error_page" directive did not redirect a 413 error;
- the bug had appeared in 0.6.10.
- </para>
- </change>
- </changes>
- <changes ver="0.8.13" date="2009-08-31">
- <change type="bugfix">
- <para lang="ru">
- в директиве "aio sendfile";
- ошибка появилась в 0.8.12.
- </para>
- <para lang="en">
- in the "aio sendfile" directive;
- the bug had appeared in 0.8.12.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался без параметра --with-file-aio на FreeBSD;
- ошибка появилась в 0.8.12.
- </para>
- <para lang="en">
- nginx could not be built without the --with-file-aio option on FreeBSD;
- the bug had appeared in 0.8.12.
- </para>
- </change>
- </changes>
- <changes ver="0.8.12" date="2009-08-31">
- <change type="feature">
- <para lang="ru">
- параметр sendfile в директиве aio во FreeBSD.
- </para>
- <para lang="en">
- the "sendfile" parameter in the "aio" directive on FreeBSD.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании try_files;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- in try_files;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании memcached;
- ошибка появилась в 0.8.11.
- </para>
- <para lang="en">
- in memcached;
- the bug had appeared in 0.8.11.
- </para>
- </change>
- </changes>
- <changes ver="0.8.11" date="2009-08-28">
- <change type="change">
- <para lang="ru">
- теперь директива "gzip_disable msie6" не запрещает сжатие для
- <nobr>MSIE 6.0 SV1.</nobr>
- </para>
- <para lang="en">
- now directive "gzip_disable msie6" does not disable gzipping for
- <nobr>MSIE 6.0 SV1.</nobr>
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка файлового AIO во FreeBSD и Linux.
- </para>
- <para lang="en">
- file AIO support on FreeBSD and Linux.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива directio_alignment.
- </para>
- <para lang="en">
- the "directio_alignment" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.8.10" date="2009-08-24">
- <change type="bugfix">
- <para lang="ru">
- утечек памяти при использовании базы GeoIP City.
- </para>
- <para lang="en">
- memory leaks if GeoIP City database was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при копировании временных файлов в постоянное место хранения;
- ошибка появилась в 0.8.9.
- </para>
- <para lang="en">
- in copying temporary files to permanent storage area;
- the bug had appeared in 0.8.9.
- </para>
- </change>
- </changes>
- <changes ver="0.8.9" date="2009-08-17">
- <change type="feature">
- <para lang="ru">
- теперь стартовый загрузчик кэша работает в отдельном процесс;
- это должно улучшить обработку больших кэшей.
- </para>
- <para lang="en">
- now the start cache loader runs in a separate process;
- this should improve large caches handling.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь временные файлы и постоянное место хранения могут располагаться
- на разных файловых системах.
- </para>
- <para lang="en">
- now temporary files and permanent storage area may reside at
- different file systems.
- </para>
- </change>
- </changes>
- <changes ver="0.8.8" date="2009-08-10">
- <change type="bugfix">
- <para lang="ru">
- в обработке заголовков ответа, разделённых в FastCGI-записях.
- </para>
- <para lang="en">
- in handling FastCGI headers split in records.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если запрос обрабатывался в двух проксированных или FastCGI location'ах
- и в первом из них использовалось кэширование,
- то в рабочем процессе происходил segmentation fault;
- ошибка появилась в 0.8.7.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- if a request was handled in two proxied or FastCGIed locations
- and a caching was enabled in the first location;
- the bug had appeared in 0.8.7.
- </para>
- </change>
- </changes>
- <changes ver="0.8.7" date="2009-07-27">
- <change type="change">
- <para lang="ru">
- минимальная поддерживаемая версия OpenSSL—0.9.7.
- </para>
- <para lang="en">
- minimum supported OpenSSL version is 0.9.7.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- параметр ask директивы ssl_verify_client изменён на параметр optional
- и теперь он проверяет клиентский сертификат, если он был предложен.<br/>
- Спасибо Brice Figureau.
- </para>
- <para lang="en">
- the "ask" parameter of the "ssl_verify_client" directive was changed
- to the "optional" parameter and now it checks a client certificate if it was
- offered.<br/>
- Thanks to Brice Figureau.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $ssl_client_verify.<br/>
- Спасибо Brice Figureau.
- </para>
- <para lang="en">
- the $ssl_client_verify variable.<br/>
- Thanks to Brice Figureau.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_crl.<br/>
- Спасибо Brice Figureau.
- </para>
- <para lang="en">
- the "ssl_crl" directive.<br/>
- Thanks to Brice Figureau.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр proxy директивы geo.
- </para>
- <para lang="en">
- the "proxy" parameter of the "geo" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива image_filter поддерживает переменные для задания размеров.
- </para>
- <para lang="en">
- the "image_filter" directive supports variables for setting size.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- использование переменной $ssl_client_cert портило память;
- ошибка появилась в 0.7.7.<br/>
- Спасибо Сергею Журавлёву.
- </para>
- <para lang="en">
- the $ssl_client_cert variable usage corrupted memory;
- the bug had appeared in 0.7.7.<br/>
- Thanks to Sergey Zhuravlev.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_pass_header и fastcgi_pass_header" не передавали клиенту
- строки "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering" и
- "X-Accel-Charset" из заголовка ответа бэкенда.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- "proxy_pass_header" and "fastcgi_pass_header" directives did not pass to
- a client the "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering",
- and "X-Accel-Charset" lines from backend response header.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке строк "Last-Modified" и "Accept-Ranges" в заголовке ответа бэкенда;
- ошибка появилась в 0.7.44.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- in handling "Last-Modified" and "Accept-Ranges" backend response header lines;
- the bug had appeared in 0.7.44.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки "[alert] zero size buf" при получении пустых ответы в подзапросах;
- ошибка появилась в 0.8.5.
- </para>
- <para lang="en">
- the "[alert] zero size buf" error if subrequest returns an empty response;
- the bug had appeared in 0.8.5.
- </para>
- </change>
- </changes>
- <changes ver="0.8.6" date="2009-07-20">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_geoip_module.
- </para>
- <para lang="en">
- the ngx_http_geoip_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- XSLT-фильтр мог выдавать ошибку "not well formed XML document" для
- правильного документа.<br/>
- Спасибо Kuramoto Eiji.
- </para>
- <para lang="en">
- XSLT filter may fail with message "not well formed XML document"
- for valid XML document.<br/>
- Thanks to Kuramoto Eiji.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в MacOSX, Cygwin и nginx/Windows при проверке location'ов, заданных
- регулярным выражением, теперь всегда делается сравнение без учёта
- регистра символов.
- </para>
- <para lang="en">
- now in MacOSX, Cygwin, and nginx/Windows locations given by a regular
- expression are always tested in case insensitive mode.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь nginx/Windows игнорирует точки в конце URI.<br/>
- Спасибо Hugo Leisink.
- </para>
- <para lang="en">
- now nginx/Windows ignores trailing dots in URI.<br/>
- Thanks to Hugo Leisink.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- имя файла указанного в --conf-path игнорировалось при установке;
- ошибка появилась в 0.6.6.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- name of file specified in --conf-path was not honored during installation;
- the bug had appeared in 0.6.6.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.8.5" date="2009-07-13">
- <change type="bugfix">
- <para lang="ru">
- теперь nginx разрешает подчёркивания в методе запроса.
- </para>
- <para lang="en">
- now nginx allows underscores in a request method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTP Basic-аутентификации на Windows
- для неверных имени/пароля возвращалась 500-ая ошибка.
- </para>
- <para lang="en">
- a 500 error code was returned for invalid login/password while HTTP
- Basic authentication on Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответы модуля ngx_http_perl_module не работали в подзапросах.
- </para>
- <para lang="en">
- ngx_http_perl_module responses did not work in subrequests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_limit_req_module.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- in ngx_http_limit_req_module.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.8.4" date="2009-06-22">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с параметром --without-http-cache;
- ошибка появилась в 0.8.3.
- </para>
- <para lang="en">
- nginx could not be built --without-http-cache;
- the bug had appeared in 0.8.3.
- </para>
- </change>
- </changes>
- <changes ver="0.8.3" date="2009-06-19">
- <change type="feature">
- <para lang="ru">
- переменная $upstream_cache_status.
- </para>
- <para lang="en">
- the $upstream_cache_status variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на MacOSX 10.6.
- </para>
- <para lang="en">
- nginx could not be built on MacOSX 10.6.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с параметром --without-http-cache;
- ошибка появилась в 0.8.2.
- </para>
- <para lang="en">
- nginx could not be built --without-http-cache;
- the bug had appeared in 0.8.2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если использовался перехват 401 ошибки от бэкенда и бэкенд
- не возвращал строку "WWW-Authenticate" в заголовке ответа,
- то в рабочем процессе происходил segmentation fault.<br/>
- Спасибо Евгению Мычло.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- if a backend 401 error was intercepted and the backend did not set
- the "WWW-Authenticate" response header line.<br/>
- Thanks to Eugene Mychlo.
- </para>
- </change>
- </changes>
- <changes ver="0.8.2" date="2009-06-15">
- <change type="bugfix">
- <para lang="ru">
- во взаимодействии open_file_cache и proxy/fastcgi кэша на старте.
- </para>
- <para lang="en">
- in open_file_cache and proxy/fastcgi cache interaction on start up.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- open_file_cache мог кэшировать открытые файлы очень долго;
- ошибка появилась в 0.7.4.
- </para>
- <para lang="en">
- open_file_cache might cache open file descriptors too long;
- the bug had appeared in 0.7.4.
- </para>
- </change>
- </changes>
- <changes ver="0.8.1" date="2009-06-08">
- <change type="feature">
- <para lang="ru">
- параметр updating в директивах proxy_cache_use_stale и fastcgi_cache_use_stale.
- </para>
- <para lang="en">
- the "updating" parameter in "proxy_cache_use_stale" and
- "fastcgi_cache_use_stale" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса
- клиента передавались бэкенду при кэшировании, если не использовалась
- директива proxy_set_header с любыми параметрами.
- </para>
- <para lang="en">
- the "If-Modified-Since", "If-Range", etc. client request header lines
- were passed to backend while caching if no "proxy_set_header" directive
- was used with any parameters.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда не скрывались
- при кэшировании, если не использовались директивы
- proxy_hide_header/fastcgi_hide_header с любыми параметрами.
- </para>
- <para lang="en">
- the "Set-Cookie" and "P3P" response header lines were not hidden while caching
- if no "proxy_hide_header/fastcgi_hide_header" directives were used with
- any parameters.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_image_filter_module не понимал формат GIF87a.<br/>
- Спасибо Денису Ильиных.
- </para>
- <para lang="en">
- the ngx_http_image_filter_module did not support GIF87a format.<br/>
- Thanks to Denis Ilyinyh.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Solaris 10 и более ранних;
- ошибка появилась в 0.7.56.
- </para>
- <para lang="en">
- nginx could not be built modules on Solaris 10 and early;
- the bug had appeared in 0.7.56.
- </para>
- </change>
- </changes>
- <changes ver="0.8.0" date="2009-06-02">
- <change type="feature">
- <para lang="ru">
- директива keepalive_requests.
- </para>
- <para lang="en">
- the "keepalive_requests" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива limit_rate_after.<br/>
- Спасибо Ivan Debnar.
- </para>
- <para lang="en">
- the "limit_rate_after" directive.<br/>
- Thanks to Ivan Debnar.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- XSLT-фильтр не работал в подзапросах.
- </para>
- <para lang="en">
- XLST filter did not work in subrequests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- обработке относительных путей в nginx/Windows.
- </para>
- <para lang="en">
- in relative paths handling in nginx/Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в proxy_store, fastcgi_store, proxy_cache и fastcgi_cache в nginx/Windows.
- </para>
- <para lang="en">
- in proxy_store, fastcgi_store, proxy_cache, and fastcgi_cache in nginx/Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке ошибок выделения памяти.<br/>
- Спасибо Максиму Дунину и Кириллу Коринскому.
- </para>
- <para lang="en">
- in memory allocation error handling.<br/>
- Thanks to Maxim Dounin and Kirill A. Korinskiy.
- </para>
- </change>
- </changes>
- <changes ver="0.7.59" date="2009-05-25">
- <change type="feature">
- <para lang="ru">
- директивы proxy_cache_methods и fastcgi_cache_methods.
- </para>
- <para lang="en">
- the "proxy_cache_methods" and "fastcgi_cache_methods" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов;
- ошибка появилась в 0.7.25.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- socket leak;
- the bug had appeared in 0.7.25.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании переменной $request_body
- в рабочем процессе происходил segmentation fault,
- если в запросе не было тела;
- ошибка появилась в 0.7.58.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- <nobr>if a request</nobr> had no body and the $request_body
- variable was used;<br/>
- the bug had appeared in 0.7.58.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSL-модули могли не собираться на Solaris и Linux;
- ошибка появилась в 0.7.56.
- </para>
- <para lang="en">
- the SSL modules might not built on Solaris and Linux;<br/>
- the bug had appeared in 0.7.56.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответы модуля ngx_http_xslt_filter_module не обрабатывались
- SSI-, charset- и gzip-фильтрами.
- </para>
- <para lang="en">
- ngx_http_xslt_filter_module responses were not handled by SSI, charset,
- and gzip filters.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива charset не ставила кодировку для ответов модуля
- ngx_http_gzip_static_module.
- </para>
- <para lang="en">
- a "charset" directive did not set a charset to ngx_http_gzip_static_module
- responses.
- </para>
- </change>
- </changes>
- <changes ver="0.7.58" date="2009-05-18">
- <change type="feature">
- <para lang="ru">
- директива listen почтового прокси-сервера поддерживает IPv6.
- </para>
- <para lang="en">
- a "listen" directive of the mail proxy module supports IPv6.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива image_filter_jpeg_quality.
- </para>
- <para lang="en">
- the "image_filter_jpeg_quality" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива client_body_in_single_buffer.
- </para>
- <para lang="en">
- the "client_body_in_single_buffer" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $request_body.
- </para>
- <para lang="en">
- the $request_body variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_autoindex_module в ссылках на имена файлов,
- содержащих символ ":".
- </para>
- <para lang="en">
- in ngx_http_autoindex_module in file name links
- having a ":" symbol in the name.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- процедура "make upgrade" не работала;
- ошибка появилась в 0.7.53.<br/>
- Спасибо Денису Латыпову.
- </para>
- <para lang="en">
- "make upgrade" procedure did not work;
- the bug had appeared in 0.7.53.<br/>
- Thanks to Denis F. Latypoff.
- </para>
- </change>
- </changes>
- <changes ver="0.7.57" date="2009-05-12">
- <change type="bugfix">
- <para lang="ru">
- при перенаправлении ошибок модуля ngx_http_image_filter_module
- в именованный location в рабочем процессе происходил floating-point fault;
- ошибка появилась в 0.7.56.
- </para>
- <para lang="en">
- a floating-point fault occurred in worker process,
- if the ngx_http_image_filter_module errors were redirected to named location;
- the bug had appeared in 0.7.56.
- </para>
- </change>
- </changes>
- <changes ver="0.7.56" date="2009-05-11">
- <change type="feature">
- <para lang="ru">
- nginx/Windows поддерживает IPv6 в директиве listen модуля HTTP.
- </para>
- <para lang="en">
- nginx/Windows supports IPv6 in a "listen" directive of the HTTP module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_image_filter_module.
- </para>
- <para lang="en">
- in ngx_http_image_filter_module.
- </para>
- </change>
- </changes>
- <changes ver="0.7.55" date="2009-05-06">
- <change type="bugfix">
- <para lang="ru">
- параметры http_XXX в директивах proxy_cache_use_stale
- и fastcgi_cache_use_stale не работали.
- </para>
- <para lang="en">
- the http_XXX parameters in "proxy_cache_use_stale" and
- "fastcgi_cache_use_stale" directives did not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- fastcgi кэш не кэшировал ответы, состоящие только из заголовка.
- </para>
- <para lang="en">
- fastcgi cache did not cache header only responses.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки "select() failed (9: Bad file descriptor)" в nginx/Unix
- и "select() failed (10038: ...)" в nginx/Windows.
- </para>
- <para lang="en">
- of "select() failed (9: Bad file descriptor)" error in nginx/Unix
- and "select() failed (10038: ...)" error in nginx/Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы debug_connection
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.7.54.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process,
- if an "debug_connection" directive was used;
- the bug had appeared in 0.7.54.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в сборке модуля ngx_http_image_filter_module.
- </para>
- <para lang="en">
- fix ngx_http_image_filter_module building errors.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- файлы больше 2G не передавались с использованием $r->sendfile.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- the files bigger than 2G could not be transferred using $r->sendfile.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.7.54" date="2009-05-01">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_image_filter_module.
- </para>
- <para lang="en">
- the ngx_http_image_filter_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_ignore_headers и fastcgi_ignore_headers.
- </para>
- <para lang="en">
- the "proxy_ignore_headers" and "fastcgi_ignore_headers" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании переменных "open_file_cache_errors on"
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.7.53.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process,
- if an "open_file_cache_errors off" directive was used;
- the bug had appeared in 0.7.53.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива "port_in_redirect off" не работала;
- ошибка появилась в 0.7.39.
- </para>
- <para lang="en">
- the "port_in_redirect off" directive did not work;
- the bug had appeared in 0.7.39.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- улучшение обработки ошибок метода select.
- </para>
- <para lang="en">
- improve handling of "select" method errors.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки "select() failed (10022: ...)" в nginx/Windows.
- </para>
- <para lang="en">
- of "select() failed (10022: ...)" error in nginx/Windows.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в текстовых сообщениях об ошибках в nginx/Windows;
- ошибка появилась в 0.7.53.
- </para>
- <para lang="en">
- in error text descriptions in nginx/Windows;
- the bug had appeared in 0.7.53.
- </para>
- </change>
- </changes>
- <changes ver="0.7.53" date="2009-04-27">
- <change type="change">
- <para lang="ru">
- теперь лог, указанный в --error-log-path, создаётся с самого начала работы.
- </para>
- <para lang="en">
- now a log set by --error-log-path is created from the very start-up.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь ошибки и предупреждения при старте записываются в error_log
- и выводятся на stderr.
- </para>
- <para lang="en">
- now the start up errors and warnings are outputted to an error_log and stderr.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- при сборке с пустым параметром --prefix= nginx использует как префикс каталог,
- в котором он был запущен.
- </para>
- <para lang="en">
- the empty --prefix= configure parameter forces nginx to use a directory
- where it was run as prefix.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ключ -p.
- </para>
- <para lang="en">
- the -p switch.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ключ -s на Unix-платформах.
- </para>
- <para lang="en">
- the -s switch on Unix platforms.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ключи -? и -h.<br/>
- Спасибо Jerome Loyet.
- </para>
- <para lang="en">
- the -? and -h switches.<br/>
- Thanks to Jerome Loyet.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь ключи можно задавать в сжатой форме.
- </para>
- <para lang="en">
- now switches may be set in condensed form.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx/Windows не работал, если файл конфигурации был задан ключом -c.
- </para>
- <para lang="en">
- nginx/Windows did not work if configuration file was given by the -c switch.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директив proxy_store, fastcgi_store,
- proxy_cache или fastcgi_cache временные файлы могли не удаляться.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- temporary files might be not removed if the "proxy_store", "fastcgi_store",
- "proxy_cache", or "fastcgi_cache" were used.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в заголовке Auth-Method запроса серверу аутентификации почтового
- прокси-сервера передавалось неверное значение;
- ошибка появилась в 0.7.34.<br/>
- Спасибо Simon Lecaille.
- </para>
- <para lang="en">
- an incorrect value was passed to mail proxy authentication server
- in "Auth-Method" header line;
- the bug had appeared<br/>
- in 0.7.34.<br/>
- Thanks to Simon Lecaille.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при логгировании на Linux не писались текстовые описания системных ошибок;
- ошибка появилась в 0.7.45.
- </para>
- <para lang="en">
- system error text descriptions were not logged on Linux;<br/>
- the bug had appeared in 0.7.45.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива fastcgi_cache_min_uses не работала.<br/>
- Спасибо Андрею Воробьёву.
- </para>
- <para lang="en">
- the "fastcgi_cache_min_uses" directive did not work.<br/>
- Thanks to Andrew Vorobyoff.
- </para>
- </change>
- </changes>
- <changes ver="0.7.52" date="2009-04-20">
- <change type="feature">
- <para lang="ru">
- первая бинарная версия под Windows.
- </para>
- <para lang="en">
- the first native Windows binary release.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- корректная обработка метода HEAD при кэшировании.
- </para>
- <para lang="en">
- in processing HEAD method while caching.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- корректная обработка строк "If-Modified-Since", "If-Range" и им подобных
- в заголовке запроса клиента при кэшировании.
- </para>
- <para lang="en">
- in processing the "If-Modified-Since", "If-Range", etc. client request
- header lines while caching.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь строки "Set-Cookie" и "P3P" скрываются в заголовке ответа
- для закэшированных ответов.
- </para>
- <para lang="en">
- now the "Set-Cookie" and "P3P" header lines are hidden in cacheable responses.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если nginx был собран с модулем ngx_http_perl_module и perl
- поддерживал потоки, то при выходе основного процесса
- могла выдаваться ошибка "panic: MUTEX_LOCK".
- </para>
- <para lang="en">
- if nginx was built with the ngx_http_perl_module and with a perl which
- supports threads, then during a master process exit
- the message "panic: MUTEX_LOCK" might be issued.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с параметром --without-http-cache;
- ошибка появилась в 0.7.48.
- </para>
- <para lang="en">
- nginx could not be built --without-http-cache;
- the bug had appeared in 0.7.48.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
- ошибка появилась в 0.7.42.
- </para>
- <para lang="en">
- nginx could not be built on platforms different from i386, amd64, sparc,
- and ppc;
- the bug had appeared in 0.7.42.
- </para>
- </change>
- </changes>
- <changes ver="0.7.51" date="2009-04-12">
- <change type="feature">
- <para lang="ru">
- директива try_files поддерживает код ответа в последнем параметре.
- </para>
- <para lang="en">
- the "try_files" directive supports a response code in the fallback parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь в директиве return можно использовать любой код ответа.
- </para>
- <para lang="en">
- now any response code can be used in the "return" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива error_page делала внешний редирект без строки запроса;
- ошибка появилась в 0.7.44.
- </para>
- <para lang="en">
- the "error_page" directive made an external redirect without query string;
- the bug had appeared in 0.7.44.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если сервера слушали на нескольких явно описанных адресах,
- то виртуальные сервера могли не работать;
- ошибка появилась в 0.7.39.
- </para>
- <para lang="en">
- if servers listened on several defined explicitly addresses,
- then virtual servers might not work;
- the bug had appeared in 0.7.39.
- </para>
- </change>
- </changes>
- <changes ver="0.7.50" date="2009-04-06">
- <change type="bugfix">
- <para lang="ru">
- переменные $arg_... не работали;
- ошибка появилась в 0.7.49.
- </para>
- <para lang="en">
- the $arg_... variables did not work;
- the bug had appeared in 0.7.49.
- </para>
- </change>
- </changes>
- <changes ver="0.7.49" date="2009-04-06">
- <change type="bugfix">
- <para lang="ru">
- при использовании переменных $arg_...
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.7.48.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process,
- if the $arg_... variables were used;
- the bug had appeared in 0.7.48.
- </para>
- </change>
- </changes>
- <changes ver="0.7.48" date="2009-04-06">
- <change type="feature">
- <para lang="ru">
- директива proxy_cache_key.
- </para>
- <para lang="en">
- the "proxy_cache_key" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь nginx учитывает при кэшировании строки "X-Accel-Expires",
- "Expires" и "Cache-Control" в заголовке ответа бэкенда.
- </para>
- <para lang="en">
- now nginx takes into account the "X-Accel-Expires", "Expires", and
- "Cache-Control" header lines in a backend response.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь nginx кэширует только ответы на запросы GET.
- </para>
- <para lang="en">
- now nginx caches responses for the GET requests only.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива fastcgi_cache_key не наследовалась.
- </para>
- <para lang="en">
- the "fastcgi_cache_key" directive was not inherited.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменные $arg_... не работали с SSI-подзапросами.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- the $arg_... variables did not work with SSI subrequests.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с библиотекой uclibc.<br/>
- Спасибо Timothy Redaelli.
- </para>
- <para lang="en">
- nginx could not be built with uclibc library.<br/>
- Thanks to Timothy Redaelli.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на OpenBSD;
- ошибка появилась <nobr>в 0.7.46.</nobr>
- </para>
- <para lang="en">
- nginx could not be built on OpenBSD;
- the bug had <nobr>appeared in 0.7.46.</nobr>
- </para>
- </change>
- </changes>
- <changes ver="0.7.47" date="2009-04-01">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на FreeBSD 6 и более ранних версиях;
- ошибка появилась в 0.7.46.
- </para>
- <para lang="en">
- nginx could not be built on FreeBSD 6 and early versions;
- the bug had appeared in 0.7.46.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на MacOSX;
- ошибка появилась в 0.7.46.
- </para>
- <para lang="en">
- nginx could not be built on MacOSX;
- the bug had <nobr>appeared in 0.7.46.</nobr>
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если использовался параметр max_size, то cache manager мог удалить весь кэш;
- ошибка появилась в 0.7.46.
- </para>
- <para lang="en">
- if the "max_size" parameter was set, then the cache manager might purge
- a whole cache;
- the bug had appeared in 0.7.46.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если директивы proxy_cache/fastcgi_cache
- и proxy_cache_valid/ fastcgi_cache_valid не были заданы на одном уровне;
- ошибка появилась в 0.7.46.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process,
- if the "proxy_cache"/"fastcgi_cache" and
- the "proxy_cache_valid"/ "fastcgi_cache_valid" were set on different levels;
- the bug had appeared in 0.7.46.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault
- при перенаправлении запроса проксированному или FastCGI-серверу
- с помощью error_page или try_files;
- ошибка появилась в 0.7.44.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process,
- if a request was redirected to a proxied or FastCGI server via
- error_page or try_files;
- the bug had appeared in 0.7.44.
- </para>
- </change>
- </changes>
- <changes ver="0.7.46" date="2009-03-30">
- <change type="bugfix">
- <para lang="ru">
- архив предыдущего релиза был неверным.
- </para>
- <para lang="en">
- the previous release tarball was incorrect.
- </para>
- </change>
- </changes>
- <changes ver="0.7.45" date="2009-03-30">
- <change type="change">
- <para lang="ru">
- теперь директивы proxy_cache и proxy_cache_valid можно задавать
- на разных уровнях.
- </para>
- <para lang="en">
- now the "proxy_cache" and the "proxy_cache_valid" directives can be set on
- different levels.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- параметр clean_time в директиве proxy_cache_path удалён.
- </para>
- <para lang="en">
- the "clean_time" parameter of the "proxy_cache_path" directive is canceled.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр max_size в директиве proxy_cache_path.
- </para>
- <para lang="en">
- the "max_size" parameter of the "proxy_cache_path" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- предварительная поддержка кэширования в модуле ngx_http_fastcgi_module.
- </para>
- <para lang="en">
- the ngx_http_fastcgi_module preliminary cache support.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь при ошибках выделения в разделяемой памяти в логе указываются
- названия директивы и зоны.
- </para>
- <para lang="en">
- now on shared memory allocation errors directive and zone names are logged.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива "add_header last-modified ''" не удаляла в заголовке ответа
- строку "Last-Modified";
- ошибка появилась в 0.7.44.
- </para>
- <para lang="en">
- the directive "add_header last-modified ''" did not delete a "Last-Modified"
- response header line;
- the bug had appeared in 0.7.44.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве auth_basic_user_file не работал относительный путь,
- заданный строкой без переменных;
- ошибка появилась в 0.7.44.<br/>
- Спасибо Jerome Loyet.
- </para>
- <para lang="en">
- a relative path in the "auth_basic_user_file" directive given without variables
- did not work;
- the bug had appeared in 0.7.44.<br/>
- Thanks to Jerome Loyet.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве alias, заданной переменными
- без ссылок на выделения в регулярных выражениях;
- ошибка появилась в 0.7.42.
- </para>
- <para lang="en">
- in an "alias" directive given using variables
- without references to captures of regular expressions;
- the bug had appeared in 0.7.42.
- </para>
- </change>
- </changes>
- <changes ver="0.7.44" date="2009-03-23">
- <change type="feature">
- <para lang="ru">
- предварительная поддержка кэширования в модуле ngx_http_proxy_module.
- </para>
- <para lang="en">
- the ngx_http_proxy_module preliminary cache support.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр --with-pcre в configure.
- </para>
- <para lang="en">
- the --with-pcre option in the configure.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь директива try_files может быть использована на уровне server.
- </para>
- <para lang="en">
- the "try_files" directive is now allowed on the server block level.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива try_files неправильно обрабатывала строку запроса в последнем
- параметре.
- </para>
- <para lang="en">
- the "try_files" directive handled incorrectly a query string
- in a fallback parameter.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива try_files могла неверно тестировать каталоги.
- </para>
- <para lang="en">
- the "try_files" directive might test incorrectly directories.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если для пары адрес:порт описан только один сервер, то выделения
- в регулярных выражениях в директиве server_name не работали.
- </para>
- <para lang="en">
- if there was a single server for given address:port pair,
- then captures in regular expressions in a "server_name" directive did not work.
- </para>
- </change>
- </changes>
- <changes ver="0.7.43" date="2009-03-18">
- <change type="bugfix">
- <para lang="ru">
- запрос обрабатывался неверно, если директива root использовала переменные;
- ошибка появилась в 0.7.42.
- </para>
- <para lang="en">
- a request was handled incorrectly, if a "root" directive used variables;
- the bug had appeared in 0.7.42.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если сервер слушал на адресах типа "*", то значение переменной $server_addr
- было "0.0.0.0";
- ошибка появилась в 0.7.36.
- </para>
- <para lang="en">
- if a server listened on wildcard address, then the $server_addr variable
- value was "0.0.0.0";
- the bug had appeared in 0.7.36.
- </para>
- </change>
- </changes>
- <changes ver="0.7.42" date="2009-03-16">
- <change type="change">
- <para lang="ru">
- ошибка "Invalid argument", возвращаемая setsockopt(TCP_NODELAY) на Solaris,
- теперь игнорируется.
- </para>
- <para lang="en">
- now the "Invalid argument" error returned by setsockopt(TCP_NODELAY) on Solaris,
- is ignored.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- при отсутствии файла, указанного в директиве auth_basic_user_file,
- теперь возвращается ошибка 403 вместо 500.
- </para>
- <para lang="en">
- now if a file specified in a "auth_basic_user_file" directive is absent,
- then the 403 error is returned instead of the 500 one.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива auth_basic_user_file поддерживает переменные.
- <br/>
- Спасибо Кириллу Коринскому.
- </para>
- <para lang="en">
- the "auth_basic_user_file" directive supports variables.<br/>
- Thanks to Kirill A. Korinskiy.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива listen поддерживает параметр ipv6only.<br/>
- Спасибо Zhang Hua.
- </para>
- <para lang="en">
- the "listen" directive supports the "ipv6only" parameter.
- <br/>
- Thanks to Zhang Hua.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве alias со ссылками на выделения в регулярных выражениях;
- ошибка появилась в 0.7.40.
- </para>
- <para lang="en">
- in an "alias" directive with references to captures of regular expressions;
- the bug had appeared in 0.7.40.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с Tru64 UNIX.<br/>
- Спасибо Dustin Marquess.
- </para>
- <para lang="en">
- compatibility with Tru64 UNIX.<br/>
- Thanks to Dustin Marquess.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался без библиотеки PCRE;
- ошибка появилась в 0.7.41.
- </para>
- <para lang="en">
- nginx could not be built without PCRE library;
- the bug had appeared in 0.7.41.
- </para>
- </change>
- </changes>
- <changes ver="0.7.41" date="2009-03-11">
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если в server_name или location были выделения в регулярных выражениях;
- ошибка появилась в 0.7.40.<br/>
- Спасибо Владимиру Сопоту.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process,
- if a "server_name" or a "location" directives had captures
- in regular expressions;
- the issue had appeared in 0.7.40.<br/>
- Thanks to Vladimir Sopot.
- </para>
- </change>
- </changes>
- <changes ver="0.7.40" date="2009-03-09">
- <change type="feature">
- <para lang="ru">
- директива location поддерживает выделения в регулярных выражениях.
- </para>
- <para lang="en">
- the "location" directive supports captures in regular expressions.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директиву alias с ссылками на выделения в регулярных выражениях
- можно использовать внутри location'а, заданного регулярным выражением
- с выделениями.
- </para>
- <para lang="en">
- an "alias" directive with capture references may be used inside
- a location given by a regular expression with captures.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива server_name поддерживает выделения в регулярных выражениях.
- </para>
- <para lang="en">
- the "server_name" directive supports captures in regular expressions.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- модуль ngx_http_autoindex_module не показывал последний слэш для каталогов
- на файловой системе XFS;
- ошибка появилась в 0.7.15.<br/>
- Спасибо Дмитрию Кузьменко.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module did not show the trailing slash in directories
- on XFS filesystem;
- the issue had appeared in 0.7.15.<br/>
- Thanks to Dmitry Kuzmenko.
- </para>
- </change>
- </changes>
- <changes ver="0.7.39" date="2009-03-02">
- <change type="bugfix">
- <para lang="ru">
- при включённом сжатии большие ответы с использованием SSI могли зависать;
- ошибка появилась в 0.7.28.<br/>
- Спасибо Артёму Бохану.
- </para>
- <para lang="en">
- large response with SSI might hang, if gzipping was enabled;
- the bug had appeared in 0.7.28.<br/>
- Thanks to Artem Bokhan.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании коротких статических вариантов в директиве try_files
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process,
- if short static variants are used in a "try_files" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.7.38" date="2009-02-23">
- <change type="feature">
- <para lang="ru">
- логгирование ошибок аутентификации.
- </para>
- <para lang="en">
- authentication failures logging.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- имя/пароль, заданные в auth_basic_user_file, игнорировались после нечётного
- числа пустых строк.<br/>
- Спасибо Александру Загребину.
- </para>
- <para lang="en">
- name/password in auth_basic_user_file were ignored after odd number
- of empty lines.<br/>
- Thanks to Alexander Zagrebin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании длинного пути в unix domain сокете
- в главном процессе происходил segmentation fault;
- ошибка появилась в 0.7.36.
- </para>
- <para lang="en">
- a segmentation fault occurred in a master process,
- if long path was used in unix domain socket;
- the bug had appeared in 0.7.36.
- </para>
- </change>
- </changes>
- <changes ver="0.7.37" date="2009-02-21">
- <change type="bugfix">
- <para lang="ru">
- директивы, использующие upstream'ы, не работали;
- ошибка появилась в 0.7.36.
- </para>
- <para lang="en">
- directives using upstreams did not work;
- the bug had appeared in 0.7.36.
- </para>
- </change>
- </changes>
- <changes ver="0.7.36" date="2009-02-21">
- <change type="feature">
- <para lang="ru">
- предварительная поддержка IPv6;
- директива listen модуля HTTP поддерживает IPv6.
- </para>
- <para lang="en">
- a preliminary IPv6 support;
- the "listen" directive of the HTTP module supports IPv6.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $ancient_browser не работала для браузеров, заданных
- директивами modern_browser.
- </para>
- <para lang="en">
- the $ancient_browser variable did not work for browsers
- preset by a "modern_browser" directives.
- </para>
- </change>
- </changes>
- <changes ver="0.7.35" date="2009-02-16">
- <change type="bugfix">
- <para lang="ru">
- директива ssl_engine не использовала SSL-акселератор
- для асимметричных шифров.<br/>
- Спасибо Marcin Gozdalik.
- </para>
- <para lang="en">
- a "ssl_engine" directive did not use a SSL-accelerator
- for asymmetric ciphers.<br/>
- Thanks to Marcin Gozdalik.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива try_files выставляла MIME-type, исходя из расширения
- первоначального запроса.
- </para>
- <para lang="en">
- a "try_files" directive set MIME type depending on an
- original request extension.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директивах server_name, valid_referers и map
- неправильно обрабатывались имена вида "*domain.tld",
- если использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
- ошибка появилась в 0.7.9.
- </para>
- <para lang="en">
- "*domain.tld" names were handled incorrectly in
- "server_name", "valid_referers", and "map" directives,
- if ".domain.tld" and ".subdomain.domain.tld" wildcards were used;
- <nobr>the bug had</nobr> appeared in 0.7.9.
- </para>
- </change>
- </changes>
- <changes ver="0.7.34" date="2009-02-10">
- <change type="feature">
- <para lang="ru">
- параметр off в директиве if_modified_since.
- </para>
- <para lang="en">
- the "off" parameter of the "if_modified_since" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь после команды XCLIENT nginx посылает команду HELO/EHLO.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- now nginx sends an HELO/EHLO command after a XCLIENT command.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка Microsoft-специфичного режима
- <nobr>"AUTH LOGIN with User Name"</nobr>
- в почтовом прокси-сервере.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- Microsoft specific "AUTH LOGIN with User Name" mode support
- in mail proxy server.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве rewrite, возвращающей редирект, старые аргументы присоединялись
- к новым через символ "?" вместо "&";<br/>
- ошибка появилась в 0.1.18.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- in a redirect rewrite directive original arguments were concatenated with
- new arguments by a "?" rather than an "&";<br/>
- the bug had appeared in 0.1.18.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на AIX.
- </para>
- <para lang="en">
- nginx could not be built on AIX.
- </para>
- </change>
- </changes>
- <changes ver="0.7.33" date="2009-02-02">
- <change type="bugfix">
- <para lang="ru">
- если на запрос с телом возвращался редирект, то ответ мог быть двойным
- при использовании методов epoll или rtsig.<br/>
- Спасибо Eden Li.
- </para>
- <para lang="en">
- a double response might be returned if the epoll or rtsig methods are used
- and a redirect was returned to a request with body.<br/>
- Thanks to Eden Li.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- для некоторых типов редиректов в переменной $sent_http_location
- было пустое значение.
- </para>
- <para lang="en">
- the $sent_http_location variable was empty for some redirects types.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы resolver в SMTP прокси-сервере
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if "resolver" directive was used in SMTP proxy.
- </para>
- </change>
- </changes>
- <changes ver="0.7.32" date="2009-01-26">
- <change type="feature">
- <para lang="ru">
- теперь в директиве try_files можно явно указать проверку каталога.
- </para>
- <para lang="en">
- now a directory existence testing can be set explicitly
- in the "try_files" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- fastcgi_store не всегда сохранял файлы.
- </para>
- <para lang="en">
- fastcgi_store stored files not always.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в гео-диапазонах.
- </para>
- <para lang="en">
- in geo ranges.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки выделения больших блоков в разделяемой памяти,
- если nginx был собран без отладки.<br/>
- Спасибо Андрею Квасову.
- </para>
- <para lang="en">
- in shared memory allocations if nginx was built without debugging.<br/>
- Thanks to Andrey Kvasov.
- </para>
- </change>
- </changes>
- <changes ver="0.7.31" date="2009-01-19">
- <change type="change">
- <para lang="ru">
- теперь директива try_files проверяет только файлы, игнорируя каталоги.
- </para>
- <para lang="en">
- now the "try_files" directive tests files only and ignores directories.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива fastcgi_split_path_info.
- </para>
- <para lang="en">
- the "fastcgi_split_path_info" directive.
- </para>
- </change>
- <change>
- <para lang="ru">
- Исправления в поддержке строки "Expect" в заголовке запроса.
- </para>
- <para lang="en">
- Bugfixes in an "Expect" request header line support.
- </para>
- </change>
- <change>
- <para lang="ru">
- Исправления в гео-диапазонах.
- </para>
- <para lang="en">
- Bugfixes in geo ranges.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при отсутствии ответа ngx_http_memcached_module возвращал
- в теле ответа строку "END" вместо 404-ой страницы по умолчанию;
- ошибка появилась в 0.7.18.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- in a miss case ngx_http_memcached_module returned the "END" line
- as response body instead of default 404 page body;
- the bug had appeared in 0.7.18.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при проксировании SMTP nginx выдавал сообщение
- <nobr>"250 2.0.0 OK"</nobr> вместо "235 2.0.0 OK";
- ошибка появилась в 0.7.22.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- while SMTP proxying nginx issued message
- "250 2.0.0 OK" instead of "235 2.0.0 OK";
- the bug had appeared in 0.7.22.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.7.30" date="2008-12-24">
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе происходил segmentation fault,
- если в директивах fastcgi_pass или proxy_pass
- использовались переменные и имя хоста должно было резолвиться;
- ошибка появилась в 0.7.29.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- if variables were used in the "fastcgi_pass" or "proxy_pass" directives
- and host name must be resolved;
- the bug had appeared in 0.7.29.
- </para>
- </change>
- </changes>
- <changes ver="0.7.29" date="2008-12-24">
- <change type="bugfix">
- <para lang="ru">
- директивы fastcgi_pass и proxy_pass не поддерживали переменные
- при использовании unix domain сокетов.
- </para>
- <para lang="en">
- the "fastcgi_pass" and "proxy_pass" directives did not support
- variables if unix domain sockets were used.
- </para>
- </change>
- <change>
- <para lang="ru">
- Исправления в обработке подзапросов;
- ошибки появились в 0.7.25.
- </para>
- <para lang="en">
- Bugfixes in subrequest processing;
- the bugs had appeared in 0.7.25.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответ "100 Continue" выдавался для запросов версии HTTP/1.0;<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- a "100 Continue" response was issued for HTTP/1.0 requests;<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в выделении памяти в модуле ngx_http_gzip_filter_module под Cygwin.
- </para>
- <para lang="en">
- in memory allocation in the ngx_http_gzip_filter_module on Cygwin.
- </para>
- </change>
- </changes>
- <changes ver="0.7.28" date="2008-12-22">
- <change type="change">
- <para lang="ru">
- в выделении памяти в модуле ngx_http_gzip_filter_module.
- </para>
- <para lang="en">
- in memory allocation in the ngx_http_gzip_filter_module.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- значения по умолчанию для директивы gzip_buffers изменены с 4 4k/8k
- на 32 4k или 16 8k.
- </para>
- <para lang="en">
- the default "gzip_buffers" directive values have been changed
- to 32 4k or 16 8k from 4 4k/8k.
- </para>
- </change>
- </changes>
- <changes ver="0.7.27" date="2008-12-15">
- <change type="feature">
- <para lang="ru">
- директива try_files.
- </para>
- <para lang="en">
- the "try_files" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива fastcgi_pass поддерживает переменные.
- </para>
- <para lang="en">
- variables support in the "fastcgi_pass" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь директива geo может брать адрес из переменной.<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- now the $geo variable may get an address from a variable.<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь модификатор location'а можно указывать без пробела перед названием.
- </para>
- <para lang="en">
- now a location's modifier may be used without space before name.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $upstream_response_length.
- </para>
- <para lang="en">
- the $upstream_response_length variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь директива add_header не добавляет пустое значение.
- </para>
- <para lang="en">
- now a "add_header" directive does not add an empty value.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при запросе файла нулевой длины nginx закрывал соединение, ничего не передав;
- ошибка появилась в 0.7.25.
- </para>
- <para lang="en">
- if zero length static file was requested, then nginx just closed connection;
- the bug had appeared in 0.7.25.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- метод MOVE не мог перемещать файл в несуществующий каталог.
- </para>
- <para lang="en">
- a MOVE method could not move file in non-existent directory.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в сервере не был описан ни один именованный location,
- но такой location использовался в директиве error_page,
- то в рабочем процессе происходил segmentation fault.<br/>
- Спасибо Сергею Боченкову.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- if no one named location was defined in server,
- but some one was used in an error_page directive.<br/>
- Thanks to Sergey Bochenkov.
- </para>
- </change>
- </changes>
- <changes ver="0.7.26" date="2008-12-08">
- <change type="bugfix">
- <para lang="ru">
- в обработке подзапросов;
- ошибка появилась в 0.7.25.
- </para>
- <para lang="en">
- in subrequest processing;
- the bug had appeared in 0.7.25.
- </para>
- </change>
- </changes>
- <changes ver="0.7.25" date="2008-12-08">
- <change type="change">
- <para lang="ru">
- в обработке подзапросов.
- </para>
- <para lang="en">
- in subrequest processing.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь разрешаются POST'ы без строки "Content-Length" в заголовке запроса.
- </para>
- <para lang="en">
- now POSTs without "Content-Length" header line are allowed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь директивы limit_req и limit_conn указывают причину запрета запроса.
- </para>
- <para lang="en">
- now the "limit_req" and "limit_conn" directives log a prohibition reason.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в параметре delete директивы geo.
- </para>
- <para lang="en">
- in the "delete" parameter of the "geo" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.7.24" date="2008-12-01">
- <change type="feature">
- <para lang="ru">
- директива if_modified_since.
- </para>
- <para lang="en">
- the "if_modified_since" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не обрабатывал ответ FastCGI-сервера,
- если перед ответом сервер передавал много сообщений в stderr.
- </para>
- <para lang="en">
- nginx did not process a FastCGI server response,
- if the server send too many messages to stderr before response.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменные "$cookie_..." не работали в SSI and в перловом модуле.
- </para>
- <para lang="en">
- the "$cookie_..." variables did not work in the SSI and the perl module.
- </para>
- </change>
- </changes>
- <changes ver="0.7.23" date="2008-11-27">
- <change type="feature">
- <para lang="ru">
- параметры delete и ranges в директиве geo.
- </para>
- <para lang="en">
- the "delete" and "ranges" parameters in the "geo" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ускорение загрузки geo-базы с большим числом значений.
- </para>
- <para lang="en">
- speeding up loading of geo base with large number of values.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- уменьшение памяти, необходимой для загрузки geo-базы.
- </para>
- <para lang="en">
- decrease of memory required for geo base load.
- </para>
- </change>
- </changes>
- <changes ver="0.7.22" date="2008-11-20">
- <change type="feature">
- <para lang="ru">
- параметр none в директиве smtp_auth.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- the "none" parameter in the "smtp_auth" directive.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные "$cookie_...".
- </para>
- <para lang="en">
- the "$cookie_..." variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива directio не работала с файловой системой XFS.
- </para>
- <para lang="en">
- the "directio" directive did not work in XFS filesystem.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- resolver не понимал большие DNS-ответы.<br/>
- Спасибо Zyb.
- </para>
- <para lang="en">
- the resolver did not understand big DNS responses.<br/>
- Thanks to Zyb.
- </para>
- </change>
- </changes>
- <changes ver="0.7.21" date="2008-11-11">
- <change>
- <para lang="ru">
- Изменения в модуле ngx_http_limit_req_module.
- </para>
- <para lang="en">
- Changes in the ngx_http_limit_req_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка EXSLT в модуле ngx_http_xslt_module.<br/>
- Спасибо Денису Латыпову.
- </para>
- <para lang="en">
- the EXSLT support in the ngx_http_xslt_module.<br/>
- Thanks to Denis F. Latypoff.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- совместимость с glibc 2.3.<br/>
- Спасибо Eric Benson и Максиму Дунину.
- </para>
- <para lang="en">
- compatibility with glibc 2.3.<br/>
- Thanks to Eric Benson and Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не запускался на MacOSX 10.4 и более ранних;
- ошибка появилась в 0.7.6.
- </para>
- <para lang="en">
- nginx could not run on MacOSX 10.4 and earlier;
- the bug had appeared in 0.7.6.
- </para>
- </change>
- </changes>
- <changes ver="0.7.20" date="2008-11-10">
- <change>
- <para lang="ru">
- Изменения в модуле ngx_http_gzip_filter_module.
- </para>
- <para lang="en">
- Changes in the ngx_http_gzip_filter_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_limit_req_module.
- </para>
- <para lang="en">
- the ngx_http_limit_req_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на платформах sparc и ppc рабочие процессы могли выходить по сигналу SIGBUS;
- ошибка появилась в 0.7.3.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- worker processes might exit on a SIGBUS signal on sparc and ppc platforms;
- the bug had appeared in 0.7.3.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы вида "proxy_pass http://host/some:uri" не работали;
- ошибка появилась в 0.7.12.
- </para>
- <para lang="en">
- the "proxy_pass http://host/some:uri" directives did not work;
- the bug had appeared in 0.7.12.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry".
- </para>
- <para lang="en">
- in HTTPS mode requests might fail with the "bad write retry" error.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_secure_link_module не работал внутри location'ов
- с именами меньше 3 символов.
- </para>
- <para lang="en">
- the ngx_http_secure_link_module did not work inside locations,
- whose names are less than 3 characters.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $server_addr могла не иметь значения.
- </para>
- <para lang="en">
- $server_addr variable might have no value.
- </para>
- </change>
- </changes>
- <changes ver="0.7.19" date="2008-10-13">
- <change type="bugfix">
- <para lang="ru">
- обновление номера версии.
- </para>
- <para lang="en">
- version number update.
- </para>
- </change>
- </changes>
- <changes ver="0.7.18" date="2008-10-13">
- <change type="change">
- <para lang="ru">
- директива underscores_in_headers;
- теперь nginx по умолчанию не разрешает подчёркивания в именах строк
- в заголовке запроса клиента.
- </para>
- <para lang="en">
- the "underscores_in_headers" directive;
- now nginx does not allows underscores in a client request header line names.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_secure_link_module.
- </para>
- <para lang="en">
- the ngx_http_secure_link_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива real_ip_header поддерживает любой заголовок.
- </para>
- <para lang="en">
- the "real_ip_header" directive supports any header.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива log_subrequest.
- </para>
- <para lang="en">
- the "log_subrequest" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $realpath_root.
- </para>
- <para lang="en">
- the $realpath_root variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметры http_502 и http_504 в директиве proxy_next_upstream.
- </para>
- <para lang="en">
- the "http_502" and "http_504" parameters of the "proxy_next_upstream" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream
- не работал.
- </para>
- <para lang="en">
- the "http_503" parameter of the "proxy_next_upstream" or
- "fastcgi_next_upstream" directives did not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx мог выдавать строку "Transfer-Encoding: chunked" для запросов HEAD.
- </para>
- <para lang="en">
- nginx might send a "Transfer-Encoding: chunked" header line for HEAD requests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь accept-лимит зависит от числа worker_connections.
- </para>
- <para lang="en">
- now accept threshold depends on worker_connections.
- </para>
- </change>
- </changes>
- <changes ver="0.7.17" date="2008-09-15">
- <change type="feature">
- <para lang="ru">
- директива directio теперь работает на Linux.
- </para>
- <para lang="en">
- now the "directio" directive works on Linux.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $pid.
- </para>
- <para lang="en">
- the $pid variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- оптимизация directio, появившаяся в 0.7.15, не работала при использовании
- open_file_cache.
- </para>
- <para lang="en">
- the "directio" optimization that had appeared in 0.7.15 did not work with
- open_file_cache.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- access_log с переменными не работал на Linux;
- ошибка появилась в 0.7.7.
- </para>
- <para lang="en">
- the "access_log" with variables did not work on Linux;
- the bug had appeared in 0.7.7.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_charset_module не понимал название кодировки в кавычках,
- полученное от бэкенда.
- </para>
- <para lang="en">
- the ngx_http_charset_module did not understand quoted charset name
- received from backend.
- </para>
- </change>
- </changes>
- <changes ver="0.7.16" date="2008-09-08">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на 64-битных платформах;
- ошибка появилась в 0.7.15.
- </para>
- <para lang="en">
- nginx could not be built on 64-bit platforms;
- the bug had appeared in 0.7.15.
- </para>
- </change>
- </changes>
- <changes ver="0.7.15" date="2008-09-08">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_random_index_module.
- </para>
- <para lang="en">
- the ngx_http_random_index_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива directio оптимизирована для запросов файлов, начинающихся
- с произвольной позиции.
- </para>
- <para lang="en">
- the "directio" directive has been optimized for file requests starting
- from arbitrary position.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива directio при необходимости запрещает использование sendfile.
- </para>
- <para lang="en">
- the "directio" directive turns off sendfile if it is necessary.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь nginx разрешает подчёркивания в именах строк в заголовке запроса клиента.
- </para>
- <para lang="en">
- now nginx allows underscores in a client request header line names.
- </para>
- </change>
- </changes>
- <changes ver="0.7.14" date="2008-09-01">
- <change type="change">
- <para lang="ru">
- теперь директивы ssl_certificate и ssl_certificate_key не имеют
- значений по умолчанию.
- </para>
- <para lang="en">
- now the ssl_certificate and ssl_certificate_key directives have no
- default values.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива listen поддерживает параметр ssl.
- </para>
- <para lang="en">
- the "listen" directive supports the "ssl" parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь при переконфигурации nginx учитывает изменение временной зоны
- на FreeBSD и Linux.
- </para>
- <para lang="en">
- now nginx takes into account a time zone change while reconfiguration
- on FreeBSD and Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметры директивы listen, такие как backlog, rcvbuf и прочие,
- не устанавливались, если сервером по умолчанию был не первый сервер.
- </para>
- <para lang="en">
- the "listen" directive parameters such as "backlog", "rcvbuf", etc.
- were not set, if a default server was not the first one.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании в качестве аргументов части URI, выделенного с помощью
- директивы rewrite, эти аргументы не экранировались.
- </para>
- <para lang="en">
- if URI part captured by a "rewrite" directive was used as a query string,
- then the query string was not escaped.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- улучшения тестирования правильности конфигурационного файла.
- </para>
- <para lang="en">
- configuration file validity test improvements.
- </para>
- </change>
- </changes>
- <changes ver="0.7.13" date="2008-08-26">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Linux и Solaris;
- ошибка появилась в 0.7.12.
- </para>
- <para lang="en">
- nginx could not be built on Linux and Solaris;
- the bug had appeared in 0.7.12.
- </para>
- </change>
- </changes>
- <changes ver="0.7.12" date="2008-08-26">
- <change type="feature">
- <para lang="ru">
- директива server_name поддерживает пустое имя "".
- </para>
- <para lang="en">
- the "server_name" directive supports empty name "".
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива gzip_disable поддерживает специальную маску msie6.
- </para>
- <para lang="en">
- the "gzip_disable" directive supports special "msie6" mask.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании параметра max_fails=0 в upstream'е с несколькими
- серверами рабочий процесс выходил по сигналу SIGFPE.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- if the "max_fails=0" parameter was used in upstream with several servers,
- then a worker process exited on a SIGFPE signal.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при перенаправлении запроса с помощью директивы error_page
- терялось тело запроса.
- </para>
- <para lang="en">
- a request body was dropped while redirection via an "error_page" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при перенаправлении запроса с методом HEAD с помощью директивы error_page
- возвращался полный ответ.
- </para>
- <para lang="en">
- a full response was returned for request method HEAD
- while redirection via an "error_page" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- метод $r->header_in() не возвращал значения строк "Host", "User-Agent",
- и "Connection" из заголовка запроса;
- ошибка появилась в 0.7.0.
- </para>
- <para lang="en">
- the $r->header_in() method did not return value of the "Host",
- "User-Agent", and "Connection" request header lines;
- the bug had appeared in 0.7.0.
- </para>
- </change>
- </changes>
- <changes ver="0.7.11" date="2008-08-18">
- <change type="change">
- <para lang="ru">
- теперь ngx_http_charset_module по умолчанию не работает MIME-типом text/css.
- </para>
- <para lang="en">
- now ngx_http_charset_module does not work by default with text/css MIME type.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь nginx возвращает код 405 для метода POST при запросе статического
- файла, только если файл существует.
- </para>
- <para lang="en">
- now nginx returns the 405 status code for POST method requesting a static file
- only if the file exists.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_ssl_session_reuse.
- </para>
- <para lang="en">
- the "proxy_ssl_session_reuse" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- после перенаправления запроса с помощью "X-Accel-Redirect"
- директива proxy_pass без URI могла использовать оригинальный запрос.
- </para>
- <para lang="en">
- a "proxy_pass" directive without URI part might use original request
- after the "X-Accel-Redirect" redirection was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если у каталога были права доступа только на поиск файлов
- и первый индексный файл отсутствовал, то nginx возвращал ошибку 500.
- </para>
- <para lang="en">
- if a directory has search only rights and the first index file was absent,
- then nginx returned the 500 status code.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибок во вложенных location'ах;
- ошибки появились в 0.7.1.
- </para>
- <para lang="en">
- in inclusive locations;
- the bugs had appeared in 0.7.1.
- </para>
- </change>
- </changes>
- <changes ver="0.7.10" date="2008-08-13">
- <change type="bugfix">
- <para lang="ru">
- ошибок в директивах addition_types, charset_types,
- gzip_types, ssi_types, sub_filter_types и xslt_types;
- ошибки появились в 0.7.9.
- </para>
- <para lang="en">
- in the "addition_types", "charset_types",
- "gzip_types", "ssi_types", "sub_filter_types", and "xslt_types" directives;
- the bugs had appeared in 0.7.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- рекурсивной error_page для 500 ошибки.
- </para>
- <para lang="en">
- of recursive error_page for 500 status code.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь модуль ngx_http_realip_module устанавливает адрес не для
- всего keepalive соединения, а для каждого запроса по этому соединению.
- </para>
- <para lang="en">
- now the ngx_http_realip_module sets address not for whole keepalive connection,
- but for each request passed via the connection.
- </para>
- </change>
- </changes>
- <changes ver="0.7.9" date="2008-08-12">
- <change type="change">
- <para lang="ru">
- теперь ngx_http_charset_module по умолчанию работает со следующими MIME-типами:
- text/html, text/css, text/xml, text/plain, text/vnd.wap.wml,
- application/x-javascript и application/rss+xml.
- </para>
- <para lang="en">
- now ngx_http_charset_module works by default with following MIME types:
- text/html, text/css, text/xml, text/plain, text/vnd.wap.wml,
- application/x-javascript, and application/rss+xml.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы charset_types и addition_types.
- </para>
- <para lang="en">
- the "charset_types" and "addition_types" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь директивы gzip_types, ssi_types и sub_filter_types используют хэш.
- </para>
- <para lang="en">
- now the "gzip_types", "ssi_types", and "sub_filter_types" directives use hash.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_cpp_test_module.
- </para>
- <para lang="en">
- the ngx_cpp_test_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива expires поддерживает суточное время.
- </para>
- <para lang="en">
- the "expires" directive supports daily time.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- улучшения и исправления в модуле ngx_http_xslt_module.<br/>
- Спасибо Денису Латыпову и Максиму Дунину.
- </para>
- <para lang="en">
- the ngx_http_xslt_module improvements and bug fixing.<br/>
- Thanks to Denis F. Latypoff and Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива log_not_found не работала при поиске индексных файлов.
- </para>
- <para lang="en">
- the "log_not_found" directive did not work for index files tests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- HTTPS-соединения могли зависнуть,
- если использовались методы kqueue, epoll, rtsig или eventport;
- ошибка появилась в 0.7.7.
- </para>
- <para lang="en">
- HTTPS connections might hang,
- if kqueue, epoll, rtsig, or eventport methods were used;
- the bug had appeared in 0.7.7.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директивах server_name, valid_referers и map
- использовалась маска вида "*.domain.tld" и при этом полное имя
- вида "domain.tld" не было описано, то это имя попадало под маску;
- ошибка появилась в 0.3.18.
- </para>
- <para lang="en">
- if the "server_name", "valid_referers", and "map" directives used
- an "*.domain.tld" wildcard and exact name "domain.tld" was not set,
- then the exact name was matched by the wildcard;
- the bug had appeared in 0.3.18.
- </para>
- </change>
- </changes>
- <changes ver="0.7.8" date="2008-08-04">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_xslt_module.
- </para>
- <para lang="en">
- the ngx_http_xslt_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные "$arg_...".
- </para>
- <para lang="en">
- the "$arg_..." variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка directio в Solaris.<br/>
- Спасибо Ivan Debnar.
- </para>
- <para lang="en">
- Solaris directio support.<br/>
- Thanks to Ivan Debnar.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь, если FastCGI-сервер присылает строку "Location" в заголовке ответа
- без строки статуса, то nginx использует код статуса 302.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- now if FastCGI server sends a "Location" header line without status line,
- then nginx uses 302 status code.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.7.7" date="2008-07-30">
- <change type="change">
- <para lang="ru">
- теперь ошибка EAGAIN при вызове connect() не считается временной.
- </para>
- <para lang="en">
- now the EAGAIN error returned by connect() is not considered as temporary error.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- значением переменной $ssl_client_cert теперь является сертификат,
- перед каждой строкой которого, кроме первой, вставляется символ табуляции;
- неизменённый сертификат доступен через переменную $ssl_client_raw_cert.
- </para>
- <para lang="en">
- now the $ssl_client_cert variable value is a certificate with TAB character
- intended before each line except first one;
- an unchanged certificate is available in the $ssl_client_raw_cert variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр ask директивы ssl_verify_client.
- </para>
- <para lang="en">
- the "ask" parameter in the "ssl_verify_client" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- улучшения в обработке byte-range.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- byte-range processing improvements.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива directio.<br/>
- Спасибо Jiang Hong.
- </para>
- <para lang="en">
- the "directio" directive.<br/>
- Thanks to Jiang Hong.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка sendfile() в MacOSX 10.5.
- </para>
- <para lang="en">
- MacOSX 10.5 sendfile() support.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в MacOSX и Cygwin при проверке location'ов теперь делается сравнение
- без учёта регистра символов;
- однако, сравнение ограничено только однобайтными locale'ями.
- </para>
- <para lang="en">
- now in MacOSX and Cygwin locations are tested in case insensitive mode;
- however, the compare is provided by single-byte locales only.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- соединения почтового прокси-сервера зависали в режиме SSL,
- если использовались методы select, poll или /dev/poll.
- </para>
- <para lang="en">
- mail proxy SSL connections hanged,
- if select, poll, or /dev/poll methods were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module.
- </para>
- <para lang="en">
- UTF-8 encoding usage in the ngx_http_autoindex_module.
- </para>
- </change>
- </changes>
- <changes ver="0.7.6" date="2008-07-07">
- <change type="bugfix">
- <para lang="ru">
- теперь при использовании переменных в директиве access_log
- всегда проверяется существовании root'а для запроса.
- </para>
- <para lang="en">
- now if variables are used in the "access_log" directive
- a request root existence is always tested.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_flv_module не поддерживал несколько значений в
- аргументах запроса.
- </para>
- <para lang="en">
- the ngx_http_flv_module did not support several values in a query string.
- </para>
- </change>
- </changes>
- <changes ver="0.7.5" date="2008-07-01">
- <change>
- <para lang="ru">
- Исправления в поддержке переменных в директиве access_log;
- ошибки появились в 0.7.4.
- </para>
- <para lang="en">
- Bugfixes in variables support in the "access_log" directive;
- the bugs had appeared in 0.7.4.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с параметром --without-http_gzip_module;
- ошибка появилась в 0.7.3.<br/>
- Спасибо Кириллу Коринскому.
- </para>
- <para lang="en">
- nginx could not be built --without-http_gzip_module;
- the bug had appeared in 0.7.3.<br/>
- Thanks to Kirill A. Korinskiy.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при совместном использовании sub_filter и SSI
- ответы могли передаваться неверно.
- </para>
- <para lang="en">
- if sub_filter and SSI were used together, then responses might
- were transferred incorrectly.
- </para>
- </change>
- </changes>
- <changes ver="0.7.4" date="2008-06-30">
- <change type="feature">
- <para lang="ru">
- директива access_log поддерживает переменные.
- </para>
- <para lang="en">
- variables support in the "access_log" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива open_log_file_cache.
- </para>
- <para lang="en">
- the "open_log_file_cache" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ключ -g.
- </para>
- <para lang="en">
- the -g switch.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка строки "Expect" в заголовке запроса.
- </para>
- <para lang="en">
- the "Expect" request header line support.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- большие включения в SSI могли передавались не полностью.
- </para>
- <para lang="en">
- large SSI inclusions might be truncated.
- </para>
- </change>
- </changes>
- <changes ver="0.7.3" date="2008-06-23">
- <change type="change">
- <para lang="ru">
- MIME-тип для расширения rss изменён на "application/rss+xml".
- </para>
- <para lang="en">
- the "rss" extension MIME type has been changed to "application/rss+xml".
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь директива "gzip_vary on" выдаёт строку
- <nobr>"Vary: Accept-Encoding"</nobr>
- в заголовке ответа и для несжатых ответов.
- </para>
- <para lang="en">
- now the "gzip_vary" directive turned on issues
- a <nobr>"Vary: Accept-Encoding"</nobr>
- header line for uncompressed responses too.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь при использовании протокола "https://" в директиве rewrite
- автоматически делается редирект.
- </para>
- <para lang="en">
- now the "rewrite" directive does a redirect automatically
- if the "https://" protocol is used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива proxy_pass не работала с протоколом HTTPS;
- ошибка появилась в 0.6.9.
- </para>
- <para lang="en">
- the "proxy_pass" directive did not work with the HTTPS protocol;
- the bug had appeared in 0.6.9.
- </para>
- </change>
- </changes>
- <changes ver="0.7.2" date="2008-06-16">
- <change type="feature">
- <para lang="ru">
- теперь nginx поддерживает шифры с обменом EDH-ключами.
- </para>
- <para lang="en">
- now nginx supports EDH key exchange ciphers.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_dhparam.
- </para>
- <para lang="en">
- the "ssl_dhparam" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $ssl_client_cert.<br/>
- Спасибо Manlio Perillo.
- </para>
- <para lang="en">
- the $ssl_client_cert variable.<br/>
- Thanks to Manlio Perillo.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- после изменения URI с помощью директивы rewrite nginx не искал новый location;
- ошибка появилась в 0.7.1.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- after changing URI via a "rewrite" directive nginx did not search
- a new location;
- the bug had appeared in 0.7.1.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался без библиотеки PCRE;
- ошибка появилась в 0.7.1.
- </para>
- <para lang="en">
- nginx could not be built without PCRE library;
- the bug had appeared in 0.7.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при редиректе запроса к каталогу с добавлением слэша nginx
- не добавлял аргументы из оригинального запроса.
- </para>
- <para lang="en">
- when a request to a directory was redirected with the slash added,
- nginx dropped a query string from the original request.
- </para>
- </change>
- </changes>
- <changes ver="0.7.1" date="2008-05-26">
- <change type="change">
- <para lang="ru">
- теперь поиск location'а делается с помощью дерева.
- </para>
- <para lang="en">
- now locations are searched in a tree.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива optimize_server_names упразднена в связи с появлением
- директивы server_name_in_redirect.
- </para>
- <para lang="en">
- the "optimize_server_names" directive was canceled
- due to the "server_name_in_redirect" directive introduction.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- некоторые давно устаревшие директивы больше не поддерживаются.
- </para>
- <para lang="en">
- some long deprecated directives are not supported anymore.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- параметр "none" в директиве ssl_session_cache;
- теперь этот параметр используется по умолчанию.<br/>
- Спасибо Rob Mueller.
- </para>
- <para lang="en">
- the "none" parameter in the "ssl_session_cache" directive;
- now this is default parameter.<br/>
- Thanks to Rob Mueller.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- рабочие процессы могли не реагировать на сигналы переконфигурации
- и ротации логов.
- </para>
- <para lang="en">
- worker processes might not catch reconfiguration and log rotation signals.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на последних Fedora 9 Linux.<br/>
- Спасибо Roxis.
- </para>
- <para lang="en">
- nginx could not be built on latest Fedora 9 Linux.<br/>
- Thanks to Roxis.
- </para>
- </change>
- </changes>
- <changes ver="0.7.0" date="2008-05-19">
- <change type="change">
- <para lang="ru">
- теперь символы 0x00-0x1F, '"' и '\' в access_log записываются в виде \xXX.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- now the 0x00-0x1F, '"' and '\' characters are escaped as \xXX in an
- access_log.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx разрешает несколько строк "Host" в заголовке запроса.
- </para>
- <para lang="en">
- now nginx allows several "Host" request header line.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива expires поддерживает флаг modified.
- </para>
- <para lang="en">
- the "modified" flag in the "expires" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $uid_got и $uid_set можно использовать на любой стадии обработки
- запроса.
- </para>
- <para lang="en">
- the $uid_got and $uid_set variables may be used at any request processing stage.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $hostname.<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- the $hostname variable.<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка DESTDIR.<br/>
- Спасибо Todd A. Fisher и Andras Voroskoi.
- </para>
- <para lang="en">
- DESTDIR support.<br/>
- Thanks to Todd A. Fisher and Andras Voroskoi.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании keepalive на Linux
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process on Linux,
- if keepalive was enabled.
- </para>
- </change>
- </changes>
- <changes ver="0.6.31" date="2008-05-12">
- <change type="bugfix">
- <para lang="ru">
- nginx не обрабатывал ответ FastCGI-сервера, если строка заголовка ответа была
- в конце записи FastCGI;
- ошибка появилась в 0.6.2.<br/>
- Спасибо Сергею Серову.
- </para>
- <para lang="en">
- nginx did not process FastCGI response
- if header was at the end of FastCGI record;
- the bug had appeared in 0.6.2.<br/>
- Thanks to Sergey Serov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при удалении файла и использовании директивы open_file_cache_errors off
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process if a file was deleted
- and the "open_file_cache_errors" directive was off.
- </para>
- </change>
- </changes>
- <changes ver="0.6.30" date="2008-04-29">
- <change type="change">
- <para lang="ru">
- теперь, если маске, заданной в директиве include, не соответствует
- ни один файл, то nginx не выдаёт ошибку.
- </para>
- <para lang="en">
- now if an "include" directive pattern does not match any file,
- then nginx does not issue an error.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь время в директивах можно задавать без пробела, например, "1h50m".
- </para>
- <para lang="en">
- now the time in directives may be specified without spaces,
- for example, "1h50m".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечек памяти, если директива ssl_verify_client имела значение on.<br/>
- Спасибо Chavelle Vincent.
- </para>
- <para lang="en">
- memory leaks if the "ssl_verify_client" directive was on.<br/>
- Thanks to Chavelle Vincent.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива sub_filter могла вставлять заменяемый текст в вывод.
- </para>
- <para lang="en">
- the "sub_filter" directive might set text to change into output.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива error_page не воспринимала параметры в перенаправляемом URI.
- </para>
- <para lang="en">
- the "error_page" directive did not take into account arguments in
- redirected URI.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь при сборке с Cygwin nginx всегда открывает файлы в бинарном режиме.
- </para>
- <para lang="en">
- now nginx always opens files in binary mode under Cygwin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался под OpenBSD;
- ошибка появилась в 0.6.15.
- </para>
- <para lang="en">
- nginx could not be built on OpenBSD;
- the bug had appeared in 0.6.15.
- </para>
- </change>
- </changes>
- <changes ver="0.6.29" date="2008-03-18">
- <change type="feature">
- <para lang="ru">
- модуль ngx_google_perftools_module.
- </para>
- <para lang="en">
- the ngx_google_perftools_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_perl_module не собирался на 64-битных платформах;
- ошибка появилась в 0.6.27.
- </para>
- <para lang="en">
- the ngx_http_perl_module could not be built on 64-bit platforms;
- the bug had appeared in 0.6.27.
- </para>
- </change>
- </changes>
- <changes ver="0.6.28" date="2008-03-13">
- <change type="bugfix">
- <para lang="ru">
- метод rtsig не собирался;
- ошибка появилась в 0.6.27.
- </para>
- <para lang="en">
- the rtsig method could not be built;
- the bug had appeared in 0.6.27.
- </para>
- </change>
- </changes>
- <changes ver="0.6.27" date="2008-03-12">
- <change type="change">
- <para lang="ru">
- теперь на Linux 2.6.18+ по умолчанию не собирается метод rtsig.
- </para>
- <para lang="en">
- now by default the rtsig method is not built on <nobr>Linux 2.6.18+.</nobr>
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь при перенаправлении запроса в именованный location с помощью
- директивы error_page метод запроса не изменяется.
- </para>
- <para lang="en">
- now a request method is not changed while redirection to a named location
- via an "error_page" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы resolver и resolver_timeout в SMTP прокси-сервере.
- </para>
- <para lang="en">
- the "resolver" and "resolver_timeout" directives in SMTP proxy.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива post_action поддерживает именованные location'ы.
- </para>
- <para lang="en">
- the "post_action" directive supports named locations.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при перенаправлении запроса из location'а c обработчиком proxy, FastCGI
- или memcached в именованный location со статическим обработчиком
- в рабочем процессе происходил segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- if a request was redirected from proxy, FastCGI, or memcached location
- to static named locations.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- браузеры не повторяли SSL handshake, если при первом handshake
- не оказалось правильного клиентского сертификата.
- <br/>
- Спасибо Александру Инюхину.
- </para>
- <para lang="en">
- browsers did not repeat SSL handshake if there is no valid client certificate
- in first handshake.
- <br/>
- Thanks to Alexander V. Inyukhin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при перенаправлении ошибок 495-497 с помощью директивы error_page
- без изменения кода ошибки nginx пытался выделить очень много памяти.
- </para>
- <para lang="en">
- if response code 495-497 was redirected via an "error_page" directive
- without code change, then nginx tried to allocate too many memory.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти в долгоживущих небуфферизированных соединениях.
- </para>
- <para lang="en">
- memory leak in long-lived non buffered connections.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки памяти в resolver'е.
- </para>
- <para lang="en">
- memory leak in resolver.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при перенаправлении запроса из location'а c обработчиком proxy
- в другой location с обработчиком proxy
- в рабочем процессе происходил segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- if a request was redirected from proxy, FastCGI, or memcached location
- to static named locations.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки в кэшировании переменных $proxy_host и $proxy_port.<br/>
- Спасибо Сергею Боченкову.
- </para>
- <para lang="en">
- in the $proxy_host and $proxy_port variables caching.<br/>
- Thanks to Sergey Bochenkov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива proxy_pass с переменными использовала порт, описанной в другой
- директиве proxy_pass без переменных, но с таким же именем хоста.<br/>
- Спасибо Сергею Боченкову.
- </para>
- <para lang="en">
- a "proxy_pass" directive with variables used incorrectly the same port
- as in another "proxy_pass" directive with the same host name
- and without variables.<br/>
- Thanks to Sergey Bochenkov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- во время переконфигурации на некоторых 64-битном платформах в лог
- записывался alert "sendmsg() failed (9: Bad file descriptor)".
- </para>
- <para lang="en">
- an alert "sendmsg() failed (9: Bad file descriptor)" on some 64-bit platforms
- while reconfiguration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при повторном использовании в SSI пустого block'а в качестве заглушки
- в рабочем процессе происходил segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- if empty stub block was used second time in SSI.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при копировании части URI, содержащего экранированные символы,
- в аргументы.
- </para>
- <para lang="en">
- in copying URI part contained escaped symbols into arguments.
- </para>
- </change>
- </changes>
- <changes ver="0.6.26" date="2008-02-11">
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_store и fastcgi_store не проверяли длину ответа.
- </para>
- <para lang="en">
- the "proxy_store" and "fastcgi_store" directives did not check
- a response length.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании большого значения в директиве expires
- в рабочем процессе происходил segmentation fault.<br/>
- Спасибо Joaquin Cuenca Abela.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- if big value was used in a "expires" directive.<br/>
- Thanks to Joaquin Cuenca Abela.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx неверно определял длину строки кэша на <nobr>Pentium 4.</nobr><br/>
- Спасибо Геннадию Махомеду.
- </para>
- <para lang="en">
- nginx incorrectly detected cache line size on Pentium 4.<br/>
- Thanks to Gena Makhomed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в проксированных подзапросах и подзапросах к FastCGI-серверу
- вместо метода GET использовался оригинальный метод клиента.
- </para>
- <para lang="en">
- in proxied or FastCGI subrequests a client original method was used
- instead of the GET method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов в режиме HTTPS при использовании отложенного accept'а.<br/>
- Спасибо Ben Maurer.
- </para>
- <para lang="en">
- socket leak in HTTPS mode if deferred accept was used.<br/>
- Thanks to Ben Maurer.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx выдавал ошибочное сообщение "SSL_shutdown() failed (SSL: )";
- ошибка появилась в 0.6.23.
- </para>
- <para lang="en">
- nginx issued the bogus error message "SSL_shutdown() failed (SSL: )";
- the bug had appeared in 0.6.23.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry";
- ошибка появилась в 0.6.23.
- </para>
- <para lang="en">
- in HTTPS mode requests might fail with the "bad write retry" error;
- the bug had appeared in 0.6.23.
- </para>
- </change>
- </changes>
- <changes ver="0.6.25" date="2008-01-08">
- <change type="change">
- <para lang="ru">
- вместо специального параметра "*" в директиве server_name теперь
- используется директива server_name_in_redirect.
- </para>
- <para lang="en">
- now the "server_name_in_redirect" directive is used instead of
- the "server_name" directive's special "*" parameter.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- в качестве основного имени в директиве server_name теперь
- можно использовать имена с масками и регулярными выражениями.
- </para>
- <para lang="en">
- now wildcard and regex names can be used as main name in
- a "server_name" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива satisfy_any заменена директивой satisfy.
- </para>
- <para lang="en">
- the "satisfy_any" directive was replaced by the "satisfy" directive.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- после переконфигурации старые рабочие процесс могли сильно нагружать процессор
- при запуске под Linux OpenVZ.
- </para>
- <para lang="en">
- old worker processes might hog CPU after reconfiguration if they was run
- under Linux OpenVZ.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива min_delete_depth.
- </para>
- <para lang="en">
- the "min_delete_depth" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- методы COPY и MOVE не работали с одиночными файлами.
- </para>
- <para lang="en">
- the COPY and MOVE methods did not work with single files.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_gzip_static_module не позволял работать модулю
- ngx_http_dav_module;
- ошибка появилась в 0.6.23.
- </para>
- <para lang="en">
- the ngx_http_gzip_static_module did not allow the ngx_http_dav_module to work;
- the bug had appeared in 0.6.23.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов в режиме HTTPS при использовании отложенного accept'а.<br/>
- Спасибо Ben Maurer.
- </para>
- <para lang="en">
- socket leak in HTTPS mode if deferred accept was used.<br/>
- Thanks to Ben Maurer.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался без библиотеки PCRE;
- ошибка появилась в 0.6.23.
- </para>
- <para lang="en">
- nginx could not be built without PCRE library;
- the bug had appeared in 0.6.23.
- </para>
- </change>
- </changes>
- <changes ver="0.6.24" date="2007-12-27">
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTPS в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.6.23.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process if HTTPS was used;
- the bug had appeared in 0.6.23.
- </para>
- </change>
- </changes>
- <changes ver="0.6.23" date="2007-12-27">
- <change type="change">
- <para lang="ru">
- параметр "off" в директиве ssl_session_cache;
- теперь этот параметр используется по умолчанию.
- </para>
- <para lang="en">
- the "off" parameter in the "ssl_session_cache" directive;
- now this is default parameter.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива open_file_cache_retest переименована в open_file_cache_valid.
- </para>
- <para lang="en">
- the "open_file_cache_retest" directive was renamed
- to the "open_file_cache_valid".
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива open_file_cache_min_uses.
- </para>
- <para lang="en">
- the "open_file_cache_min_uses" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_gzip_static_module.
- </para>
- <para lang="en">
- the ngx_http_gzip_static_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива gzip_disable.
- </para>
- <para lang="en">
- the "gzip_disable" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директиву memcached_pass можно использовать внутри блока if.
- </para>
- <para lang="en">
- the "memcached_pass" directive may be used inside the "if" block.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если внутри одного location'а использовались директивы "memcached_pass" и "if",
- то в рабочем процессе происходил segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- if the "memcached_pass" and "if" directives were used in the same location.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если при использовании директивы satisfy_any on" были заданы директивы
- не всех модулей доступа, то заданные директивы не проверялись.
- </para>
- <para lang="en">
- if a "satisfy_any on" directive was used and not all access and auth modules
- directives were set, then other given access and auth directives
- were not tested;
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметры, заданные регулярным выражением в директиве valid_referers,
- не наследовалась с предыдущего уровня.
- </para>
- <para lang="en">
- regex parameters in a "valid_referers" directive were not inherited
- from previous level.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива post_action не работала, если запрос завершался с кодом 499.
- </para>
- <para lang="en">
- a "post_action" directive did run if a request was completed
- with 499 status code.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- оптимизация использования 16K буфера для SSL-соединения.<br/>
- Спасибо Ben Maurer.
- </para>
- <para lang="en">
- optimization of 16K buffer usage in a SSL connection.<br/>
- Thanks to Ben Maurer.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- STARTTLS в режиме SMTP не работал.<br/>
- Спасибо Олегу Мотиенко.
- </para>
- <para lang="en">
- the STARTTLS in SMTP mode did not work.<br/>
- Thanks to Oleg Motienko.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry";
- ошибка появилась в 0.5.13.
- </para>
- <para lang="en">
- in HTTPS mode requests might fail with the "bad write retry" error;
- the bug had appeared in 0.5.13.
- </para>
- </change>
- </changes>
- <changes ver="0.6.22" date="2007-12-19">
- <change type="change">
- <para lang="ru">
- теперь все методы модуля ngx_http_perl_module
- возвращают значения, скопированные в память, выделенную perl'ом.
- </para>
- <para lang="en">
- now all ngx_http_perl_module methods return values copied to perl's
- allocated memory.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если nginx был собран с модулем ngx_http_perl_module,
- использовался perl до версии 5.8.6 и perl поддерживал потоки,
- то во время переконфигурации основной процесс аварийно выходил;
- ошибка появилась в 0.5.9.<br/>
- Спасибо Борису Жмурову.
- </para>
- <para lang="en">
- if nginx was built with ngx_http_perl_module,
- the perl before 5.8.6 was used, and perl supported threads,
- then during reconfiguration the master process aborted;
- the bug had appeared in 0.5.9.<br/>
- Thanks to Boris Zhmurov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в методы модуля ngx_http_perl_module
- могли передаваться неверные результаты выделения в регулярных выражениях.
- </para>
- <para lang="en">
- the ngx_http_perl_module methods may get invalid values of the regex captures.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если метод $r->has_request_body() вызывался для запроса,
- у которого небольшое тело запроса было уже полностью получено,
- то в рабочем процессе происходил segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process,
- if the $r->has_request_body() method was called for a request
- whose small request body was already received.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- large_client_header_buffers не освобождались перед переходом в состояние
- keep-alive.<br/>
- Спасибо Олександру Штепе.
- </para>
- <para lang="en">
- large_client_header_buffers did not freed before going to keep-alive state.<br/>
- Thanks to Olexander Shtepa.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в переменной $upstream_addr не записывался последний адрес;
- ошибка появилась в 0.6.18.
- </para>
- <para lang="en">
- the last address was missed in the $upstream_addr variable;
- the bug had appeared in 0.6.18.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива fastcgi_catch_stderr не возвращала ошибку;
- теперь она возвращает ошибку 502, которую можно направить на следующий сервер
- с помощью "fastcgi_next_upstream invalid_header".
- </para>
- <para lang="en">
- the "fastcgi_catch_stderr" directive did return error code;
- now it returns 502 code, that can be rerouted to a next server using
- the "fastcgi_next_upstream invalid_header" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы fastcgi_catch_stderr
- в основном процессе происходил segmentation fault;
- ошибка появилась в 0.6.10.<br/>
- Спасибо Manlio Perillo.
- </para>
- <para lang="en">
- a segmentation fault occurred in master process
- if the "fastcgi_catch_stderr" directive was used;
- the bug had appeared in 0.6.10.<br/>
- Thanks to Manlio Perillo.
- </para>
- </change>
- </changes>
- <changes ver="0.6.21" date="2007-12-03">
- <change type="change">
- <para lang="ru">
- если в значениях переменных директивы proxy_pass используются
- только IP-адреса, то указывать resolver не нужно.
- </para>
- <para lang="en">
- if variable values used in a "proxy_pass" directive contain IP-addresses only,
- then a "resolver" directive is not mandatory.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы proxy_pass c URI-частью
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.6.19.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if a "proxy_pass" directive with URI-part was used;
- the bug had appeared in 0.6.19.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если resolver использовался на платформах, не поддерживающих метод kqueue,
- то nginx выдавал alert "name is out of response".<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- if resolver was used on platform that does not support kqueue,
- then nginx issued an alert "name is out of response".<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- При использовании переменной $server_protocol в FastCGI-параметрах
- и запросе, длина которого была близка к значению директивы
- client_header_buffer_size,
- nginx выдавал alert "fastcgi: the request record is too big".
- </para>
- <para lang="en">
- if the $server_protocol was used in FastCGI parameters
- and a request line length was near to the "client_header_buffer_size"
- directive value,
- then nginx issued an alert "fastcgi: the request record is too big".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при обычном запросе версии HTTP/0.9 к HTTPS серверу nginx возвращал
- обычный ответ.
- </para>
- <para lang="en">
- if a plain text HTTP/0.9 version request was made to HTTPS server,
- then nginx returned usual response.
- </para>
- </change>
- </changes>
- <changes ver="0.6.20" date="2007-11-28">
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы proxy_pass c URI-частью
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.6.19.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if a "proxy_pass" directive with URI-part was used;
- the bug had appeared in 0.6.19.
- </para>
- </change>
- </changes>
- <changes ver="0.6.19" date="2007-11-27">
- <change type="bugfix">
- <para lang="ru">
- версия 0.6.18 не собиралась.
- </para>
- <para lang="en">
- the 0.6.18 version could not be built.
- </para>
- </change>
- </changes>
- <changes ver="0.6.18" date="2007-11-27">
- <change type="change">
- <para lang="ru">
- теперь модуль ngx_http_userid_module в поле куки с номером процесса
- добавляет микросекунды на время старта.
- </para>
- <para lang="en">
- now the ngx_http_userid_module adds start time microseconds
- to the cookie field contains a pid value.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- в error_log теперь записывается полная строка запроса вместо только URI.
- </para>
- <para lang="en">
- now the full request line instead of URI only is written to error_log.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_pass поддерживает переменные.
- </para>
- <para lang="en">
- variables support in the "proxy_pass" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы resolver и resolver_timeout.
- </para>
- <para lang="en">
- the "resolver" and "resolver_timeout" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь директива "add_header last-modified ''" удаляет в заголовке ответа
- строку "Last-Modified".
- </para>
- <para lang="en">
- now the directive "add_header last-modified ''" deletes a "Last-Modified"
- response header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива limit_rate не позволяла передавать на полной скорости,
- даже если был указан очень большой лимит.
- </para>
- <para lang="en">
- the "limit_rate" directive did not allow to use full throughput,
- even if limit value was very high.
- </para>
- </change>
- </changes>
- <changes ver="0.6.17" date="2007-11-15">
- <change type="feature">
- <para lang="ru">
- поддержка строки "If-Range" в заголовке запроса.<br/>
- Спасибо Александру Инюхину.
- </para>
- <para lang="en">
- the "If-Range" request header line support.<br/>
- Thanks to Alexander V. Inyukhin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы msie_refresh повторно экранировались
- уже экранированные символы;
- ошибка появилась в 0.6.4.
- </para>
- <para lang="en">
- URL double escaping in a redirect of the "msie_refresh" directive;
- the bug had appeared in 0.6.4.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива autoindex не работала при использовании "alias /".
- </para>
- <para lang="en">
- the "autoindex" directive did not work with the "alias /" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании подзапросов
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process if subrequests were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании SSL и gzip большие ответы могли передаваться не полностью.
- </para>
- <para lang="en">
- the big responses may be transferred truncated if SSL and gzip were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если ответ проксированного сервера был версии HTTP/0.9,
- то переменная $status была равна 0.
- </para>
- <para lang="en">
- the $status variable was equal to 0 if a proxied server returned response
- in HTTP/0.9 version.
- </para>
- </change>
- </changes>
- <changes ver="0.6.16" date="2007-10-29">
- <change type="change">
- <para lang="ru">
- теперь на Linux используется uname(2) вместо procfs.<br/>
- Спасибо Илье Новикову.
- </para>
- <para lang="en">
- now the uname(2) is used on Linux instead of procfs.<br/>
- Thanks to Ilya Novikov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директиве error_page использовался символ "?", то он экранировался
- при проксировании запроса;
- ошибка появилась в 0.6.11.
- </para>
- <para lang="en">
- if the "?" character was in a "error_page" directive, then it was escaped
- in a proxied request;
- the bug had appeared in 0.6.11.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с mget.
- </para>
- <para lang="en">
- compatibility with mget.
- </para>
- </change>
- </changes>
- <changes ver="0.6.15" date="2007-10-22">
- <change type="feature">
- <para lang="ru">
- совместимость с Cygwin.<br/>
- Спасибо Владимиру Кутакову.
- </para>
- <para lang="en">
- Cygwin compatibility.<br/>
- Thanks to Vladimir Kutakov.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива merge_slashes.
- </para>
- <para lang="en">
- the "merge_slashes" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива gzip_vary.
- </para>
- <para lang="en">
- the "gzip_vary" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива server_tokens.
- </para>
- <para lang="en">
- the "server_tokens" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не раскодировал URI в команде SSI include.
- </para>
- <para lang="en">
- nginx did not unescape URI in the "include" SSI command.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании переменной в директивах charset или source_charset
- на старте или во время переконфигурации происходил segmentation fault,
- </para>
- <para lang="en">
- the segmentation fault was occurred on start or while reconfiguration
- if variable was used in the "charset" or "source_charset" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx возвращал ошибку 400 на запросы вида
- <nobr>"GET http://www.domain.com HTTP/1.0"</nobr>.<br/>
- Спасибо James Oakley.
- </para>
- <para lang="en">
- nginx returned the 400 response on requests like
- <nobr>"GET http://www.domain.com HTTP/1.0"</nobr>.<br/>
- Thanks to James Oakley.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- после перенаправления запроса с телом запроса с помощью директивы
- error_page nginx пытался снова прочитать тело запроса;
- ошибка появилась в 0.6.7.
- </para>
- <para lang="en">
- if request with request body was redirected using the "error_page" directive,
- then nginx tried to read the request body again;
- the bug had appeared in 0.6.7.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе происходил segmentation fault, если у сервера,
- обрабатывающему запрос, не был явно определён server_name;
- ошибка появилась в 0.6.7.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process
- if no server_name was explicitly defined for server processing request;
- the bug had appeared in 0.6.7.
- </para>
- </change>
- </changes>
- <changes ver="0.6.14" date="2007-10-15">
- <change type="change">
- <para lang="ru">
- теперь по умолчанию команда SSI echo использует кодирование entity.
- </para>
- <para lang="en">
- now by default the "echo" SSI command uses entity encoding.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр encoding в команде SSI echo.
- </para>
- <para lang="en">
- the "encoding" parameter in the "echo" SSI command.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директиву access_log можно использовать внутри блока limit_except.
- </para>
- <para lang="en">
- the "access_log" directive may be used inside the "limit_except" block.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если все сервера апстрима оказывались недоступными,
- то до восстановления работоспособности
- у всех серверов вес становился равным одному;
- ошибка появилась в 0.6.6.
- </para>
- <para lang="en">
- if all upstream servers were failed, then all servers had got weight
- the was equal one until servers became alive;
- the bug had appeared in 0.6.6.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании переменных $date_local и $date_gmt вне модуля
- ngx_http_ssi_filter_module в рабочем процессе происходил segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process
- if $date_local and $date_gmt were used outside the ngx_http_ssi_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании включённом отладочном логе
- в рабочем процессе мог произойти segmentation fault.<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if debug log was enabled.<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ngx_http_memcached_module не устанавливал $upstream_response_time.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- ngx_http_memcached_module did not set $upstream_response_time.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- рабочий процесс мог зациклиться при использовании memcached.
- </para>
- <para lang="en">
- a worker process may got caught in an endless loop, if the memcached was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx распознавал параметры "close" и "keep-alive" в строке "Connection"
- в заголовке запроса только, если они были в нижнем регистре;
- ошибка появилась в 0.6.11.
- </para>
- <para lang="en">
- nginx supported low case only "close" and "keep-alive" values
- in the "Connection" request header line;
- the bug had appeared in 0.6.11.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- sub_filter не работал с пустой строкой замены.
- </para>
- <para lang="en">
- sub_filter did not work with empty substitution.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в парсинге sub_filter.
- </para>
- <para lang="en">
- in sub_filter parsing.
- </para>
- </change>
- </changes>
- <changes ver="0.6.13" date="2007-09-24">
- <change type="bugfix">
- <para lang="ru">
- nginx не закрывал файл каталога для запроса HEAD,
- если использовался autoindex<br/>
- Спасибо Arkadiusz Patyk.
- </para>
- <para lang="en">
- nginx did not close directory file on HEAD request if autoindex was used.<br/>
- Thanks to Arkadiusz Patyk.
- </para>
- </change>
- </changes>
- <changes ver="0.6.12" date="2007-09-21">
- <change type="change">
- <para lang="ru">
- почтовый прокси-сервер разделён на три модуля: pop3, imap и smtp.
- </para>
- <para lang="en">
- mail proxy was split on three modules: pop3, imap and smtp.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметры конфигурации --without-mail_pop3_module,
- --without-mail_imap_module и --without-mail_smtp_module.
- </para>
- <para lang="en">
- the --without-mail_pop3_module, --without-mail_imap_module,
- and --without-mail_smtp_module configuration parameters.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы smtp_greeting_delay и smtp_client_buffer модуля ngx_mail_smtp_module.
- </para>
- <para lang="en">
- the "smtp_greeting_delay" and "smtp_client_buffer" directives
- of the ngx_mail_smtp_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- wildcard в конце имени сервера не работали;
- ошибка появилась в 0.6.9.
- </para>
- <para lang="en">
- the trailing wildcards did not work;
- the bug had appeared in 0.6.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании разделяемой библиотеки PCRE,
- расположенной в нестандартном месте, nginx не запускался на Solaris.
- </para>
- <para lang="en">
- nginx could not start on Solaris if the shared PCRE library located
- in non-standard place was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_hide_header и fastcgi_hide_header не скрывали
- строки заголовка ответа с именем больше 32 символов.<br/>
- Спасибо Manlio Perillo.
- </para>
- <para lang="en">
- the "proxy_hide_header" and "fastcgi_hide_header" directives did not
- hide response header lines whose name was longer than 32 characters.<br/>
- Thanks to Manlio Perillo.
- </para>
- </change>
- </changes>
- <changes ver="0.6.11" date="2007-09-11">
- <change type="bugfix">
- <para lang="ru">
- счётчик активных соединений всегда рос при использовании почтового
- прокси-сервера.
- </para>
- <para lang="en">
- active connection counter always increased if mail proxy was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если бэкенд возвращал только заголовок ответа при небуферизированном
- проксировании, то nginx закрывал соединение с бэкендом по таймауту.
- </para>
- <para lang="en">
- if backend returned response header only using non-buffered proxy,
- then nginx closed backend connection on timeout.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не поддерживал несколько строк "Connection" в заголовке запроса.
- </para>
- <para lang="en">
- nginx did not support several "Connection" request header lines.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в сервере апстрима был задан max_fails, то после первой же неудачной
- попытки вес сервера навсегда становился равным одному;
- ошибка появилась в 0.6.6.
- </para>
- <para lang="en">
- if the "max_fails" was set for upstream server, then after first
- failure server weight was always one;
- the bug had appeared in 0.6.6.
- </para>
- </change>
- </changes>
- <changes ver="0.6.10" date="2007-09-03">
- <change type="feature">
- <para lang="ru">
- директивы open_file_cache, open_file_cache_retest и open_file_cache_errors.
- </para>
- <para lang="en">
- the "open_file_cache", "open_file_cache_retest", and "open_file_cache_errors"
- directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- утечки сокетов;
- ошибка появилась в 0.6.7.
- </para>
- <para lang="en">
- socket leak;
- the bug had appeared in 0.6.7.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- В строку заголовка ответа "Content-Type", указанную в методе
- $r->send_http_header(), не добавлялась кодировка, указанная в директиве charset.
- </para>
- <para lang="en">
- a charset set by the "charset" directive was not appended
- to the "Content-Type" header set by $r->send_http_header().
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании метода /dev/poll
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if /dev/poll method was used.
- </para>
- </change>
- </changes>
- <changes ver="0.6.9" date="2007-08-28">
- <change type="bugfix">
- <para lang="ru">
- рабочий процесс мог зациклиться при использовании протокола HTTPS;
- ошибка появилась в 0.6.7.
- </para>
- <para lang="en">
- a worker process may got caught in an endless loop,
- if the HTTPS protocol was used;
- the bug had appeared in 0.6.7.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если сервер слушал на двух адресах или портах, то nginx не запускался
- при использовании wildcard в конце имени сервера.
- </para>
- <para lang="en">
- if server listened on two addresses or ports and trailing wildcard was used,
- then nginx did not run.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива ip_hash могла неверно помечать сервера как нерабочие.
- </para>
- <para lang="en">
- the "ip_hash" directive might incorrectly mark servers as down.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на amd64;
- ошибка появилась в 0.6.8.
- </para>
- <para lang="en">
- nginx could not be built on amd64;
- the bug had appeared in 0.6.8.
- </para>
- </change>
- </changes>
- <changes ver="0.6.8" date="2007-08-20">
- <change type="change">
- <para lang="ru">
- теперь nginx пытается установить директивы worker_priority,
- worker_rlimit_nofile, worker_rlimit_core, worker_rlimit_sigpending
- без привилегий root'а.
- </para>
- <para lang="en">
- now nginx tries to set the "worker_priority", "worker_rlimit_nofile",
- "worker_rlimit_core", and "worker_rlimit_sigpending" without super-user
- privileges.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx экранирует символы пробела и "%" при передаче запроса
- серверу аутентификации почтового прокси-сервера.
- </para>
- <para lang="en">
- now nginx escapes space and "%" in request to a mail proxy authentication
- server.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь nginx экранирует символ "%" в переменной $memcached_key.
- </para>
- <para lang="en">
- now nginx escapes "%" in $memcached_key variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при указании относительного пути к конфигурационному файлу в качестве
- параметра ключа -c nginx определял путь относительно конфигурационного префикса;
- ошибка появилась в 0.6.6.
- </para>
- <para lang="en">
- nginx used path relative to configuration prefix for non-absolute
- configuration file path specified in the "-c" key;
- the bug had appeared in 0.6.6.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не работал на FreeBSD/sparc64.
- </para>
- <para lang="en">
- nginx did not work on FreeBSD/sparc64.
- </para>
- </change>
- </changes>
- <changes ver="0.6.7" date="2007-08-15">
- <change type="change">
- <para lang="ru">
- теперь пути, указанные в директивах include, auth_basic_user_file,
- perl_modules, ssl_certificate, ssl_certificate_key и
- ssl_client_certificate, определяются относительно каталога конфигурационного
- файла nginx.conf, а не относительно префикса.
- </para>
- <para lang="en">
- now the paths specified in the "include", "auth_basic_user_file",
- "perl_modules", "ssl_certificate", "ssl_certificate_key", and
- "ssl_client_certificate" directives are relative to directory of
- nginx configuration file nginx.conf, but not to nginx prefix directory.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- параметр --sysconfdir=PATH в configure упразднён.
- </para>
- <para lang="en">
- the --sysconfdir=PATH option in configure was canceled.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- для обновления на лету версий 0.1.x создан специальный сценарий
- <nobr>make upgrade1.</nobr>
- </para>
- <para lang="en">
- the special make target "upgrade1" was defined for online upgrade of
- 0.1.x versions.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы server_name и valid_referers поддерживают регулярные выражения.
- </para>
- <para lang="en">
- the "server_name" and "valid_referers" directives support regular expressions.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива server в блоке upstream поддерживает параметр backup.
- </para>
- <para lang="en">
- the "server" directive in the "upstream" context supports
- the "backup" parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module поддерживает метод $r->discard_request_body.
- </para>
- <para lang="en">
- the ngx_http_perl_module supports the $r->discard_request_body.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива "add_header Last-Modified ..." меняет строку "Last-Modified"
- в заголовке ответа.
- </para>
- <para lang="en">
- the "add_header Last-Modified ..." directive changes the "Last-Modified"
- response header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если на запрос с телом возвращался ответ с кодом HTTP отличным от 200,
- и после этого запроса соединение переходило в состояние keep-alive,
- то на следующий запрос nginx возвращал 400.
- </para>
- <para lang="en">
- if a response different than 200 was returned to a request with body
- and connection went to the keep-alive state after the request, then
- nginx returned 400 for the next request.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директиве auth_http был задан неправильный адрес, то
- в рабочем процессе происходил segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process
- if invalid address was set in the "auth_http" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь по умолчанию nginx использует значение 511 для listen backlog
- на всех платформах, кроме FreeBSD.<br/>
- Спасибо Jiang Hong.
- </para>
- <para lang="en">
- now nginx uses default listen backlog value 511 on all platforms
- except FreeBSD.<br/>
- Thanks to Jiang Hong.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- рабочий процесс мог зациклиться, если server в блоке upstream был помечен
- как down;
- ошибка появилась в 0.6.6.
- </para>
- <para lang="en">
- a worker process may got caught in an endless loop, if a "server" inside
- "upstream" block was marked as "down";
- the bug had appeared in 0.6.6.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- sendfilev() в Solaris теперь не используется при передаче тела запроса
- FastCGI-серверу через unix domain сокет.
- </para>
- <para lang="en">
- now Solaris sendfilev() is not used to transfer the client request body
- to FastCGI-server via the unix domain socket.
- </para>
- </change>
- </changes>
- <changes ver="0.6.6" date="2007-07-30">
- <change type="feature">
- <para lang="ru">
- параметр --sysconfdir=PATH в configure.
- </para>
- <para lang="en">
- the --sysconfdir=PATH option in configure.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- именованные location'ы.
- </para>
- <para lang="en">
- named locations.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменную $args можно устанавливать с помощью set.
- </para>
- <para lang="en">
- the $args variable can be set with the "set" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $is_args.
- </para>
- <para lang="en">
- the $is_args variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- равномерное распределение запросов к апстримам с большими весами.
- </para>
- <para lang="en">
- fair big weight upstream balancer.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если клиент в почтовом прокси-сервере закрывал соединение,
- то nginx мог не закрывать соединение с бэкендом.
- </para>
- <para lang="en">
- if a client has closed connection to mail proxy
- then nginx might not close connection to backend.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании одного хоста в качестве бэкендов для протоколов HTTP и HTTPS
- без явного указания портов, nginx использовал только один порт—80 или 443.
- </para>
- <para lang="en">
- if the same host without specified port was used as backend for HTTP and HTTPS,
- then nginx used only one port—80 or 443.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Solaris/amd64 Sun Studio 11 и более ранними версиями;
- ошибка появилась в 0.6.4.
- </para>
- <para lang="en">
- fix building on Solaris/amd64 by Sun Studio 11 and early versions;
- the bug had appeared in 0.6.4.
- </para>
- </change>
- </changes>
- <changes ver="0.6.5" date="2007-07-23">
- <change type="feature">
- <para lang="ru">
- переменная $nginx_version.<br/>
- Спасибо Николаю Гречуху.
- </para>
- <para lang="en">
- $nginx_version variable.<br/>
- Thanks to Nick S. Grechukh.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- почтовый прокси-сервер поддерживает AUTHENTICATE в режиме IMAP.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- the mail proxy supports AUTHENTICATE in IMAP mode.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- почтовый прокси-сервер поддерживает STARTTLS в режиме SMTP.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- the mail proxy supports STARTTLS in SMTP mode.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь nginx экранирует пробел в переменной $memcached_key.
- </para>
- <para lang="en">
- now nginx escapes space in $memcached_key variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx неправильно собирался Sun Studio на Solaris/amd64.<br/>
- Спасибо Jiang Hong.
- </para>
- <para lang="en">
- nginx was incorrectly built by Sun Studio on Solaris/amd64.<br/>
- Thanks to Jiang Hong.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- незначительных потенциальных ошибок.<br/>
- Спасибо Coverity's Scan.
- </para>
- <para lang="en">
- of minor potential bugs.<br/>
- Thanks to Coverity's Scan.
- </para>
- </change>
- </changes>
- <changes ver="0.6.4" date="2007-07-17">
- <change type="security">
- <para lang="ru">
- при использовании директивы msie_refresh был возможен XSS.<br/>
- Спасибо Максиму Богуку.
- </para>
- <para lang="en">
- the "msie_refresh" directive allowed XSS.<br/>
- Thanks to Maxim Boguk.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директивы proxy_store и fastcgi_store изменены.
- </para>
- <para lang="en">
- the "proxy_store" and "fastcgi_store" directives were changed.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_store_access и fastcgi_store_access.
- </para>
- <para lang="en">
- the "proxy_store_access" and "fastcgi_store_access" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не работал на Solaris/sparc64, если был собран Sun Studio.<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- nginx did not work on Solaris/sparc64 if it was built by Sun Studio.<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- обход ошибки в Sun Studio 12.<br/>
- Спасибо Jiang Hong.
- </para>
- <para lang="en">
- for Sun Studio 12.<br/>
- Thanks to Jiang Hong.
- </para>
- </change>
- </changes>
- <changes ver="0.6.3" date="2007-07-12">
- <change type="feature">
- <para lang="ru">
- директивы proxy_store и fastcgi_store.
- </para>
- <para lang="en">
- the "proxy_store" and "fastcgi_store" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы auth_http_header
- в рабочем процессе мог произойти segmentation fault.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if the "auth_http_header" directive was used.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если использовался метод аутентификации CRAM-MD5, но он не был разрешён,
- то в рабочем процессе происходил segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process
- if the CRAM-MD5 authentication method was used, but it was not enabled.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании протокола HTTPS в директиве proxy_pass
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process when
- the HTTPS protocol was used in the "proxy_pass" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в рабочем процессе мог произойти segmentation fault,
- если использовался метод eventport.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if the eventport method was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort не работали;
- ошибка появилась в 0.5.13.
- </para>
- <para lang="en">
- the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives
- did not work;
- the bug had appeared in 0.5.13.
- </para>
- </change>
- </changes>
- <changes ver="0.6.2" date="2007-07-09">
- <change type="bugfix">
- <para lang="ru">
- если заголовок ответа был разделён в FastCGI-записях, то nginx передавал
- клиенту мусор в таких заголовках.
- </para>
- <para lang="en">
- if the FastCGI header was split in records,
- then nginx passed garbage in the header to a client.
- </para>
- </change>
- </changes>
- <changes ver="0.6.1" date="2007-06-17">
- <change type="bugfix">
- <para lang="ru">
- в парсинге SSI.
- </para>
- <para lang="en">
- in SSI parsing.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании удалённого подзапроса в SSI последующий
- подзапрос локального файла мог отдаваться клиенту в неверном порядке.
- </para>
- <para lang="en">
- if remote SSI subrequest was used, then posterior local file subrequest
- might transferred to client in wrong order.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- большие включения в SSI, сохранённые во временные файлы,
- передавались не полностью.
- </para>
- <para lang="en">
- large SSI inclusions buffered in temporary files were truncated.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- значение perl'овой переменной $$ модуля ngx_http_perl_module было равно
- номеру главного процесса.
- </para>
- <para lang="en">
- the perl $$ variable value in ngx_http_perl_module was equal to the master
- process identification number.
- </para>
- </change>
- </changes>
- <changes ver="0.6.0" date="2007-06-14">
- <change type="feature">
- <para lang="ru">
- директивы "server_name", "map", and "valid_referers" поддерживают
- маски вида "www.example.*".
- </para>
- <para lang="en">
- the "server_name", "map", and "valid_referers" directives support
- the "www.example.*" wildcards.
- </para>
- </change>
- </changes>
- <changes ver="0.5.25" date="2007-06-11">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с параметром --without-http_rewrite_module;
- ошибка появилась в 0.5.24.
- </para>
- <para lang="en">
- nginx could not be built with the --without-http_rewrite_module parameter;
- the bug had appeared in 0.5.24.
- </para>
- </change>
- </changes>
- <changes ver="0.5.24" date="2007-06-06">
- <change type="security">
- <para lang="ru">
- директива ssl_verify_client не работала, если запрос выполнялся
- по протоколу HTTP/0.9.
- </para>
- <para lang="en">
- the "ssl_verify_client" directive did not work if request was made
- using HTTP/0.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании сжатия часть ответа могла передаваться несжатой;
- ошибка появилась в 0.5.23.
- </para>
- <para lang="en">
- a part of response body might be passed uncompressed if gzip was used;
- the bug had appeared in 0.5.23.
- </para>
- </change>
- </changes>
- <changes ver="0.5.23" date="2007-06-04">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssl_module поддерживает расширение TLS Server Name Indication.
- </para>
- <para lang="en">
- the ngx_http_ssl_module supports Server Name Indication TLS extension.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива fastcgi_catch_stderr.<br/>
- Спасибо Николаю Гречуху, проект OWOX.
- </para>
- <para lang="en">
- the "fastcgi_catch_stderr" directive.<br/>
- Thanks to Nick S. Grechukh, OWOX project.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на Линуксе в основном процессе происходил segmentation fault,
- если два виртуальных сервера должны bind()ится к пересекающимся портам.
- </para>
- <para lang="en">
- a segmentation fault occurred in master process if
- two virtual servers should bind() to the overlapping ports.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если nginx был собран с модулем ngx_http_perl_module и perl
- поддерживал потоки, то во время второй переконфигурации
- выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
- </para>
- <para lang="en">
- if nginx was built with ngx_http_perl_module and perl supported threads,
- then during second reconfiguration the error messages
- "panic: MUTEX_LOCK" and "perl_parse() failed" were issued.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в использовании протокола HTTPS в директиве proxy_pass.
- </para>
- <para lang="en">
- in the HTTPS protocol in the "proxy_pass" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.5.22" date="2007-05-29">
- <change type="bugfix">
- <para lang="ru">
- большое тело запроса могло не передаваться бэкенду;
- ошибка появилась в 0.5.21.
- </para>
- <para lang="en">
- a big request body might not be passed to backend;
- the bug had appeared in 0.5.21.
- </para>
- </change>
- </changes>
- <changes ver="0.5.21" date="2007-05-28">
- <change type="bugfix">
- <para lang="ru">
- если внутри сервера описано больше примерно десяти location'ов,
- то location'ы, заданные с помощью регулярного выражения,
- могли выполняться не в том, порядке, в каком они описаны.
- </para>
- <para lang="en">
- if server has more than about ten locations, then regex locations
- might be chosen not in that order as they were specified.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на 64-битной платформе рабочий процесс мог зациклиться, если 33-тий
- по счёту или последующий бэкенд упал.<br/>
- Спасибо Антону Поварову.
- </para>
- <para lang="en">
- a worker process may got caught in an endless loop on 64-bit platform,
- if the 33-rd or next in succession backend has failed.<br/>
- Thanks to Anton Povarov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании библиотеки PCRE на Solaris/sparc64
- мог произойти bus error.<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- a bus error might occur on Solaris/sparc64 if the PCRE library was used.<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в использовании протокола HTTPS в директиве proxy_pass.
- </para>
- <para lang="en">
- in the HTTPS protocol in the "proxy_pass" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.5.20" date="2007-05-07">
- <change type="feature">
- <para lang="ru">
- директива sendfile_max_chunk.
- </para>
- <para lang="en">
- the "sendfile_max_chunk" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные "$http_...", "$sent_http_..." и "$upstream_http_..."
- можно менять директивой set.
- </para>
- <para lang="en">
- the "$http_...", "$sent_http_...", and "$upstream_http_..." variables
- may be changed using the "set" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании SSI-команды 'if expr="$var = /"'
- в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if the SSI command 'if expr="$var = /"' was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- завершающая строка multipart range ответа передавалась неверно.<br/>
- Спасибо Evan Miller.
- </para>
- <para lang="en">
- trailing boundary of multipart range response was transferred incorrectly.<br/>
- Thanks to Evan Miller.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не работал на Solaris/sparc64, если был собран Sun Studio.<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- nginx did not work on Solaris/sparc64 if it was built by Sun Studio.<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_perl_module не собирался make в Solaris.<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- the ngx_http_perl_module could not be built by Solaris make.<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- </changes>
- <changes ver="0.5.19" date="2007-04-24">
- <change type="change">
- <para lang="ru">
- значение переменной $request_time теперь записывается с точностью
- до миллисекунд.
- </para>
- <para lang="en">
- now the $request_time variable has millisecond precision.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- метод $r->rflush в модуле ngx_http_perl_module переименован в $r->flush.
- </para>
- <para lang="en">
- the method $r->rflush of ngx_http_perl_module was renamed to the $r->flush.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $upstream_addr.
- </para>
- <para lang="en">
- the $upstream_addr variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_headers_hash_max_size и proxy_headers_hash_bucket_size.<br/>
- Спасибо Володымыру Костырко.
- </para>
- <para lang="en">
- the "proxy_headers_hash_max_size" and "proxy_headers_hash_bucket_size"
- directives.<br/>
- Thanks to Volodymyr Kostyrko.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании sendfile и limit_rate на 64-битных платформах
- нельзя было передавать файлы больше 2G.
- </para>
- <para lang="en">
- the files more than 2G could not be transferred using sendfile and limit_rate
- on 64-bit platforms.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании sendfile на 64-битном Linux нельзя было передавать файлы
- больше 2G.
- </para>
- <para lang="en">
- the files more than 2G could not be transferred using sendfile on 64-bit Linux.
- </para>
- </change>
- </changes>
- <changes ver="0.5.18" date="2007-04-19">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_sub_filter_module.
- </para>
- <para lang="en">
- the ngx_http_sub_filter_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные "$upstream_http_...".
- </para>
- <para lang="en">
- the "$upstream_http_..." variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь переменные $upstream_status и $upstream_response_time
- содержат данные о всех обращениях к апстримам, сделанным до X-Accel-Redirect.
- </para>
- <para lang="en">
- now the $upstream_status and $upstream_response_time variables
- keep data about all upstreams before X-Accel-Redirect.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если nginx был собран с модулем ngx_http_perl_module и perl
- не поддерживал multiplicity, то после первой переконфигурации
- и после получения любого сигнала
- в основном процессе происходил segmentation fault;
- ошибка появилась в 0.5.9.
- </para>
- <para lang="en">
- a segmentation fault occurred in master process
- after first reconfiguration and receiving any signal
- if nginx was built with ngx_http_perl_module and perl
- did not support multiplicity;
- the bug had appeared in 0.5.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если perl не поддерживал multiplicity, то после переконфигурации
- перловый код не работал;
- ошибка появилась в 0.3.38.
- </para>
- <para lang="en">
- if perl did not support multiplicity, then after reconfiguration
- perl code did not work;
- the bug had appeared in 0.3.38.
- </para>
- </change>
- </changes>
- <changes ver="0.5.17" date="2007-04-02">
- <change type="change">
- <para lang="ru">
- теперь nginx для метода TRACE всегда возвращает код 405.
- </para>
- <para lang="en">
- now nginx always returns the 405 status for the TRACE method.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь nginx поддерживает директиву include внутри блока types.
- </para>
- <para lang="en">
- now nginx supports the "include" directive inside the "types" block.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- использование переменной $document_root в директиве root и alias
- запрещено: оно вызывало рекурсивное переполнение стека.
- </para>
- <para lang="en">
- the $document_root variable usage in the "root" and "alias" directives
- is disabled: this caused recursive stack overflow.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в использовании протокола HTTPS в директиве proxy_pass.
- </para>
- <para lang="en">
- in the HTTPS protocol in the "proxy_pass" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в некоторых случаях некэшируемые переменные (такие, как $uri)
- возвращали старое закэшированное значение.
- </para>
- <para lang="en">
- in some cases non-cacheable variables (such as $uri variable)
- returned old cached value.
- </para>
- </change>
- </changes>
- <changes ver="0.5.16" date="2007-03-26">
- <change type="bugfix">
- <para lang="ru">
- в качестве ключа для хэша в директиве ip_hash не использовалась сеть
- класса С.<br/>
- Спасибо Павлу Ярковому.
- </para>
- <para lang="en">
- the C-class network was not used as hash key in the "ip_hash" directive.<br/>
- Thanks to Pavel Yarkovoy.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в строке "Content-Type" в заголовке ответа бэкенда был указан charset
- и строка завершалась символом ";",
- то в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.3.50.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if a charset was set in the "Content-Type" header line and the line
- has trailing ";";
- the bug had appeared in 0.3.50.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки "[alert] zero size buf" при работе с FastCGI-сервером, если
- тело запроса, записанное во временный файл, было кратно 32K.
- </para>
- <para lang="en">
- the "[alert] zero size buf" error when FastCGI server was used and
- a request body written in a temporary file was multiple of 32K.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Solaris без параметра --with-debug;
- ошибка появилась в 0.5.15.
- </para>
- <para lang="en">
- nginx could not be built on Solaris without the --with-debug option;
- the bug had appeared in 0.5.15.
- </para>
- </change>
- </changes>
- <changes ver="0.5.15" date="2007-03-19">
- <change type="feature">
- <para lang="ru">
- почтовый прокси-сервер поддерживает аутентифицированное SMTP-проксирование и
- директивы smtp_auth, smtp_capabilities и xclient.<br/>
- Спасибо Антону Южанинову и Максиму Дунину.
- </para>
- <para lang="en">
- the mail proxy supports authenticated SMTP proxying and
- the "smtp_auth", "smtp_capabilities", and "xclient" directives.<br/>
- Thanks to Anton Yuzhaninov and Maxim Dounin.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь keep-alive соединения закрываются сразу же по получении сигнала
- переконфигурации.
- </para>
- <para lang="en">
- now the keep-alive connections are closed just after receiving
- the reconfiguration signal.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директивы imap и auth переименованы соответственно в mail и pop3_auth.
- </para>
- <para lang="en">
- the "imap" and "auth" directives were renamed
- to the "mail" and "pop3_auth" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если использовался метод аутентификации CRAM-MD5 и не был разрешён метод APOP,
- то в рабочем процессе происходил segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault occurred in worker process
- if the CRAM-MD5 authentication method was used
- and the APOP method was disabled.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы starttls only в протоколе POP3 nginx
- разрешал аутентификацию без перехода в режим SSL.
- </para>
- <para lang="en">
- if the "starttls only" directive was used in POP3 protocol,
- then nginx allowed authentication without switching to the SSL mode.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- рабочие процессы не выходили после переконфигурации и не переоткрывали логи,
- если использовался метод eventport.
- </para>
- <para lang="en">
- worker processes did not exit after reconfiguration and
- did not rotate logs if the eventport method was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы ip_hash рабочий процесс мог зациклиться.
- </para>
- <para lang="en">
- a worker process may got caught in an endless loop,
- if the "ip_hash" directive was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь nginx не пишет в лог некоторые alert'ы,
- если используются методы eventport или /dev/poll.
- </para>
- <para lang="en">
- now nginx does not log some alerts if eventport or /dev/poll methods are used.
- </para>
- </change>
- </changes>
- <changes ver="0.5.14" date="2007-02-23">
- <change type="bugfix">
- <para lang="ru">
- nginx игнорировал лишние закрывающие скобки "}" в конце
- конфигурационного файла.
- </para>
- <para lang="en">
- nginx ignored superfluous closing "}" in the end of configuration file.
- </para>
- </change>
- </changes>
- <changes ver="0.5.13" date="2007-02-19">
- <change type="feature">
- <para lang="ru">
- методы COPY и MOVE.
- </para>
- <para lang="en">
- the COPY and MOVE methods.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_realip_module устанавливал мусор для запросов,
- переданных по keep-alive соединению.
- </para>
- <para lang="en">
- the ngx_http_realip_module set garbage for requests passed via
- keep-alive connection.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не работал на 64-битном big-endian Linux.<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- nginx did not work on big-endian 64-bit Linux.<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при получении слишком длинной команды IMAP/POP3-прокси теперь сразу
- закрывает соединение, а не по таймауту.
- </para>
- <para lang="en">
- now when IMAP/POP3 proxy receives too long command it closes the connection
- right away, but not after timeout.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если при использовании метода epoll клиент закрывал преждевременно
- соединение со своей стороны, то nginx закрывал это соединение только
- по истечении таймаута на передачу.
- </para>
- <para lang="en">
- if the "epoll" method was used and a client closed a connection prematurely,
- then nginx closed the connection after a send timeout only.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
- ошибка появилась в 0.5.8.
- </para>
- <para lang="en">
- nginx could not be built on platforms different from i386, amd64, sparc,
- and ppc;
- the bug had appeared in 0.5.8.
- </para>
- </change>
- </changes>
- <changes ver="0.5.12" date="2007-02-12">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
- ошибка появилась в 0.5.8.
- </para>
- <para lang="en">
- nginx could not be built on platforms different from i386, amd64, sparc,
- and ppc;
- the bug had appeared in 0.5.8.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании временных файлов в время работы с FastCGI-сервером
- в рабочем процессе мог произойти segmentation fault;
- ошибка появилась в 0.5.8.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if the temporary files were used while working with FastCGI server;
- the bug had appeared in 0.5.8.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если переменная $fastcgi_script_name записывалась в лог,
- то в рабочем процессе мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if the $fastcgi_script_name variable was logged.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ngx_http_perl_module не собирался на Solaris.
- </para>
- <para lang="en">
- ngx_http_perl_module could not be built on Solaris.
- </para>
- </change>
- </changes>
- <changes ver="0.5.11" date="2007-02-05">
- <change type="feature">
- <para lang="ru">
- теперь configure определяет библиотеку PCRE в MacPorts.<br/>
- Спасибо Chris McGrath.
- </para>
- <para lang="en">
- now configure detects system PCRE library in MacPorts.<br/>
- Thanks to Chris McGrath.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответ был неверным, если запрашивалось несколько диапазонов;
- ошибка появилась в 0.5.6.
- </para>
- <para lang="en">
- the response was incorrect if several ranges were requested;
- the bug had appeared in 0.5.6.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива create_full_put_path не могла создавать промежуточные каталоги,
- если не была установлена директива dav_access.<br/>
- Спасибо Evan Miller.
- </para>
- <para lang="en">
- the "create_full_put_path" directive could not create the intermediate
- directories if no "dav_access" directive was set.<br/>
- Thanks to Evan Miller.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- вместо кодов ошибок "400" и "408" в access_log мог записываться код "0".
- </para>
- <para lang="en">
- the "0" response code might be logged in the access_log instead of
- the "400" and "408" error codes.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при сборке с оптимизацией -O2 в рабочем процессе мог произойти
- segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if nginx was built with -O2 optimization.
- </para>
- </change>
- </changes>
- <changes ver="0.5.10" date="2007-01-26">
- <change type="bugfix">
- <para lang="ru">
- во время обновления исполняемого файла новый процесс не наследовал
- слушающие сокеты;
- ошибка появилась в 0.5.9.
- </para>
- <para lang="en">
- while online executable file upgrade the new master process did not
- inherit the listening sockets;
- the bug had appeared in 0.5.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при сборке с оптимизацией -O2 в рабочем процессе мог произойти
- segmentation fault;
- ошибка появилась в 0.5.1.
- </para>
- <para lang="en">
- a segmentation fault might occur in worker process
- if nginx was built with -O2 optimization;
- the bug had appeared in 0.5.1.
- </para>
- </change>
- </changes>
- <changes ver="0.5.9" date="2007-01-25">
- <change type="change">
- <para lang="ru">
- модуль ngx_http_memcached_module теперь в качестве ключа использует
- значение переменной $memcached_key.
- </para>
- <para lang="en">
- now the ngx_http_memcached_module uses the $memcached_key variable value
- as a key.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $memcached_key.
- </para>
- <para lang="en">
- the $memcached_key variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр clean в директиве client_body_in_file_only.
- </para>
- <para lang="en">
- the "clean" parameter in the "client_body_in_file_only" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива env.
- </para>
- <para lang="en">
- the "env" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива sendfile работает внутри блока if.
- </para>
- <para lang="en">
- the "sendfile" directive is available inside the "if" block.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь при ошибке записи в access_log nginx записывает сообщение в error_log,
- но не чаще одного раза в минуту.
- </para>
- <para lang="en">
- now on failure of the writing to access nginx logs a message to error_log,
- but not more often than once a minute.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива "access_log off" не всегда запрещала запись в лог.
- </para>
- <para lang="en">
- the "access_log off" directive did not always turn off the logging.
- </para>
- </change>
- </changes>
- <changes ver="0.5.8" date="2007-01-19">
- <change type="bugfix">
- <para lang="ru">
- если использовалась директива <nobr>"client_body_in_file_only on"</nobr>
- и тело запроса было небольшое, то мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur if
- <nobr>"client_body_in_file_only on"</nobr> was used
- and a request body was small.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- происходил segmentation fault, если использовались директивы
- <nobr>"client_body_in_file_only on"</nobr>
- и <nobr>"proxy_pass_request_body off"</nobr>
- или <nobr>"fastcgi_pass_request_body off"</nobr>,
- и делался переход к следующему бэкенду.
- </para>
- <para lang="en">
- a segmentation fault occurred if <nobr>"client_body_in_file_only on"</nobr>
- and <nobr>"proxy_pass_request_body off"</nobr>
- or <nobr>"fastcgi_pass_request_body off"</nobr>
- directives were used, and nginx switched to a next upstream.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если при использовании директивы "proxy_buffering off" соединение с клиентом
- было неактивно, то оно закрывалось по таймауту, заданному директивой
- send_timeout;
- ошибка появилась в 0.4.7.
- </para>
- <para lang="en">
- if the "proxy_buffering off" directive was used and a client connection
- was non-active, then the connection was closed after send timeout;
- the bug had appeared in 0.4.7.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если при использовании метода epoll клиент закрывал преждевременно
- соединение со своей стороны, то nginx закрывал это соединение только
- по истечении таймаута на передачу.
- </para>
- <para lang="en">
- if the "epoll" method was used and a client closed a connection prematurely,
- then nginx closed the connection after a send timeout only.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки "[alert] zero size buf" при работе с FastCGI-сервером.
- </para>
- <para lang="en">
- the "[alert] zero size buf" error when FastCGI server was used.
- </para>
- </change>
- <change>
- <para lang="ru">
- Исправление ошибок в директиве limit_zone.
- </para>
- <para lang="en">
- Bugfixes in the "limit_zone" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.5.7" date="2007-01-15">
- <change type="feature">
- <para lang="ru">
- оптимизация использования памяти в ssl_session_cache.
- </para>
- <para lang="en">
- the ssl_session_cache storage optimization.
- </para>
- </change>
- <change>
- <para lang="ru">
- Исправление ошибок в директивах ssl_session_cache и limit_zone.
- </para>
- <para lang="en">
- Bugfixes in the "ssl_session_cache" and "limit_zone" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на старте или во время переконфигурации происходил segmentation fault,
- если директивы ssl_session_cache или limit_zone использовались
- на 64-битных платформах.
- </para>
- <para lang="en">
- the segmentation fault was occurred on start or while reconfiguration
- if the "ssl_session_cache" or "limit_zone" directives were used
- on 64-bit platforms.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директив add_before_body или add_after_body происходил
- segmentation fault, если в заголовке ответа нет строки "Content-Type".
- </para>
- <para lang="en">
- a segmentation fault occurred if the "add_before_body" or "add_after_body"
- directives were used and there was no "Content-Type" header line in response.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- библиотека OpenSSL всегда собиралась с поддержкой потоков.<br/>
- Спасибо Дену Иванову.
- </para>
- <para lang="en">
- the OpenSSL library was always built with the threads support.<br/>
- Thanks to Den Ivanov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость библиотеки PCRE-6.5+ и компилятора icc.
- </para>
- <para lang="en">
- the PCRE-6.5+ library and the icc compiler compatibility.
- </para>
- </change>
- </changes>
- <changes ver="0.5.6" date="2007-01-09">
- <change type="change">
- <para lang="ru">
- теперь модуль ngx_http_index_module игнорирует все методы,
- кроме GET, HEAD и POST.
- </para>
- <para lang="en">
- now the ngx_http_index_module ignores all methods except the GET, HEAD, and
- POST methods.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_limit_zone_module.
- </para>
- <para lang="en">
- the ngx_http_limit_zone_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $binary_remote_addr.
- </para>
- <para lang="en">
- the $binary_remote_addr variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы ssl_session_cache модулей ngx_http_ssl_module и ngx_imap_ssl_module.
- </para>
- <para lang="en">
- the "ssl_session_cache" directives
- of the ngx_http_ssl_module and ngx_imap_ssl_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- метод DELETE поддерживает рекурсивное удаление.
- </para>
- <para lang="en">
- the DELETE method supports recursive removal.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании $r->sendfile() byte-ranges передавались неверно.
- </para>
- <para lang="en">
- the byte-ranges were transferred incorrectly if the $r->sendfile() was used.
- </para>
- </change>
- </changes>
- <changes ver="0.5.5" date="2006-12-24">
- <change type="change">
- <para lang="ru">
- ключ -v больше не выводит информацию о компиляторе.
- </para>
- <para lang="en">
- the -v switch does not show compiler information any more.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ключ -V.
- </para>
- <para lang="en">
- the -V switch.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива worker_rlimit_core поддерживает указание размера в K, M и G.
- </para>
- <para lang="en">
- the "worker_rlimit_core" directive supports size in K, M, and G.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль nginx.pm теперь может устанавливаться непривилегированным пользователем.
- </para>
- <para lang="en">
- the nginx.pm module now could be installed by an unprivileged user.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании методов $r->request_body или $r->request_body_file мог
- произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur if the $r->request_body or
- $r->request_body_file methods were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибок, специфичных для платформы ppc.
- </para>
- <para lang="en">
- the ppc platform specific bugs.
- </para>
- </change>
- </changes>
- <changes ver="0.5.4" date="2006-12-15">
- <change type="feature">
- <para lang="ru">
- директиву perl можно использовать внутри блока limit_except.
- </para>
- <para lang="en">
- the "perl" directive may be used inside the "limit_except" block.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_dav_module требовал строку "Date" в заголовке запроса
- для метода DELETE.
- </para>
- <para lang="en">
- the ngx_http_dav_module required the "Date" request header line
- for the DELETE method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании одного параметра в директиве dav_access nginx мог
- сообщить об ошибке в конфигурации.
- </para>
- <para lang="en">
- if one only parameter was used in the "dav_access" directive, then
- nginx might report about configuration error.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании переменной $host мог произойти segmentation fault;
- ошибка появилась в 0.4.14.
- </para>
- <para lang="en">
- a segmentation fault might occur if the $host variable was used;
- the bug had appeared in 0.4.14.
- </para>
- </change>
- </changes>
- <changes ver="0.5.3" date="2006-12-13">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module поддерживает методы $r->status, $r->log_error
- и $r->sleep.
- </para>
- <para lang="en">
- the ngx_http_perl_module supports the $r->status, $r->log_error,
- and $r->sleep methods.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- метод $r->variable поддерживает переменные, неописанные в конфигурации nginx'а.
- </para>
- <para lang="en">
- the $r->variable method supports variables that do not exist in nginx
- configuration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- метод $r->has_request_body не работал.
- </para>
- <para lang="en">
- the $r->has_request_body method did not work.
- </para>
- </change>
- </changes>
- <changes ver="0.5.2" date="2006-12-11">
- <change type="bugfix">
- <para lang="ru">
- если в директивах proxy_pass использовалось имя, указанное в upstream,
- то nginx пытался найти IP-адрес этого имени;
- ошибка появилась в 0.5.1.
- </para>
- <para lang="en">
- if the "proxy_pass" directive used the name of the "upstream" block,
- then nginx tried to resolve the name;
- the bug had appeared in 0.5.1.
- </para>
- </change>
- </changes>
- <changes ver="0.5.1" date="2006-12-11">
- <change type="bugfix">
- <para lang="ru">
- директива post_action могла не работать после неудачного завершения запроса.
- </para>
- <para lang="en">
- the "post_action" directive might not run after a unsuccessful completion
- of a request.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- обход ошибки в Eudora для Mac;
- ошибка появилась в 0.4.11.<br/>
- Спасибо Bron Gondwana.
- </para>
- <para lang="en">
- for Eudora for Mac;
- the bug had appeared in 0.4.11.<br/>
- Thanks to Bron Gondwana.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при указании в директиве fastcgi_pass имени описанного upstream'а выдавалось
- сообщение "no port in upstream";
- ошибка появилась в 0.5.0.
- </para>
- <para lang="en">
- if the "upstream" name was used in the "fastcgi_pass", then the message
- "no port in upstream" was issued;
- the bug had appeared in 0.5.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директивах proxy_pass и fastcgi_pass использовались одинаковых имена
- серверов, но с разными портами, то эти директивы использовали первый
- описанный порт;
- ошибка появилась в 0.5.0.
- </para>
- <para lang="en">
- if the "proxy_pass" and "fastcgi_pass" directives used the same servers but
- different ports, then these directives uses the first described port;
- the bug had appeared in 0.5.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директивах proxy_pass и fastcgi_pass использовались unix domain сокеты,
- то эти директивы использовали первый описанный сокет;
- ошибка появилась в 0.5.0.
- </para>
- <para lang="en">
- if the "proxy_pass" and "fastcgi_pass" directives used the unix domain sockets,
- then these directives used first described socket;
- the bug had appeared in 0.5.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ngx_http_auth_basic_module игнорировал пользователя, если он был указан
- в последней строке файла паролей и после пароля не было перевода строки,
- возврата каретки или символа ":".
- </para>
- <para lang="en">
- ngx_http_auth_basic_module ignored the user if it was in the last line in
- the password file and there was no the carriage return, the line feed,
- or the ":" symbol after the password.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $upstream_response_time могла быть равна "0.000", хотя время
- обработки было больше 1 миллисекунды.
- </para>
- <para lang="en">
- the $upstream_response_time variable might be equal to "0.000", although
- response time was more than 1 millisecond.
- </para>
- </change>
- </changes>
- <changes ver="0.5.0" date="2006-12-04">
- <change type="change">
- <para lang="ru">
- параметры в виде "%name" в директиве log_format больше не поддерживаются.
- </para>
- <para lang="en">
- the parameters in the "%name" form in the "log_format" directive
- are not supported anymore.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout,
- fastcgi_upstream_max_fails, и fastcgi_upstream_fail_timeout,
- memcached_upstream_max_fails и memcached_upstream_fail_timeout
- больше не поддерживаются.
- </para>
- <para lang="en">
- the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout",
- "fastcgi_upstream_max_fails", "fastcgi_upstream_fail_timeout",
- "memcached_upstream_max_fails", and "memcached_upstream_fail_timeout"
- directives are not supported anymore.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива server в блоке upstream поддерживает параметры
- max_fails, fail_timeout и down.
- </para>
- <para lang="en">
- the "server" directive in the "upstream" context supports
- the "max_fails", "fail_timeout", and "down" parameters.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ip_hash в блоке upstream.
- </para>
- <para lang="en">
- the "ip_hash" directive inside the "upstream" block.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- статус WAIT в строке "Auth-Status" в заголовке ответа сервера аутентификации
- IMAP/POP3 прокси.
- </para>
- <para lang="en">
- the WAIT status in the "Auth-Status" header line of the IMAP/POP3 proxy
- authentication server response.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на 64-битных платформах;
- ошибка появилась в 0.4.14.
- </para>
- <para lang="en">
- nginx could not be built on 64-bit platforms;
- the bug had appeared in 0.4.14.
- </para>
- </change>
- </changes>
- <changes ver="0.4.14" date="2006-11-27">
- <change type="feature">
- <para lang="ru">
- директива proxy_pass_error_message в IMAP/POP3 прокси.
- </para>
- <para lang="en">
- the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь configure определяет библиотеку PCRE на FreeBSD, Linux и NetBSD.
- </para>
- <para lang="en">
- now configure detects system PCRE library on FreeBSD, Linux, and NetBSD.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ngx_http_perl_module не работал с перлом, собранным с поддержкой потоков;
- ошибка появилась в 0.3.38.
- </para>
- <para lang="en">
- ngx_http_perl_module did not work with perl built with the threads support;
- the bug had appeared in 0.3.38.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ngx_http_perl_module не работал корректно, если перл вызывался рекурсивно.
- </para>
- <para lang="en">
- ngx_http_perl_module did not work if perl was called recursively.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx игнорировал имя сервера в строке запроса.
- </para>
- <para lang="en">
- nginx ignored a host name in a request line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если FastCGI сервер передавал много в stderr,
- то рабочий процесс мог зациклиться.
- </para>
- <para lang="en">
- a worker process may got caught in an endless loop,
- if a FastCGI server sent too many data to the stderr.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при изменении системного времени переменная $upstream_response_time
- могла быть отрицательной.
- </para>
- <para lang="en">
- the $upstream_response_time variable may be negative if the system time
- was changed backward.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании POP3 серверу аутентификации IMAP/POP3 прокси
- не передавался параметр Auth-Login-Attempt.
- </para>
- <para lang="en">
- the "Auth-Login-Attempt" parameter was not sent to
- IMAP/POP3 proxy authentication server when POP3 was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при ошибке соединения с сервером аутентификации IMAP/POP3 прокси
- мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur if connect to IMAP/POP3 proxy
- authentication server failed.
- </para>
- </change>
- </changes>
- <changes ver="0.4.13" date="2006-11-15">
- <change type="feature">
- <para lang="ru">
- директиву proxy_pass можно использовать внутри блока limit_except.
- </para>
- <para lang="en">
- the "proxy_pass" directive may be used inside the "limit_except" block.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива limit_except поддерживает все WebDAV методы.
- </para>
- <para lang="en">
- the "limit_except" directive supports all WebDAV methods.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы add_before_body без директивы add_after_body
- ответ передавался не полностью.
- </para>
- <para lang="en">
- if the "add_before_body" directive was used without
- the "add_after_body" directive, then a response did not transferred complete.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- большое тело запроса не принималось, если использовались метод epoll
- и deferred accept().
- </para>
- <para lang="en">
- a large request body did not receive if the epoll method
- and the deferred accept() were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- для ответов модуля ngx_http_autoindex_module не выставлялась кодировка;
- ошибка появилась в 0.3.50.
- </para>
- <para lang="en">
- a charset could not be set for ngx_http_autoindex_module responses;
- the bug had appeared in 0.3.50.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки "[alert] zero size buf" при работе с FastCGI-сервером;
- </para>
- <para lang="en">
- the "[alert] zero size buf" error when FastCGI server was used;
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр конфигурации --group= игнорировался.<br/>
- Спасибо Thomas Moschny.
- </para>
- <para lang="en">
- the --group= configuration parameter was ignored.<br/>
- Thanks to Thomas Moschny.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- 50-й подзапрос в SSI ответе не работал;
- ошибка появилась в 0.3.50.
- </para>
- <para lang="en">
- the 50th subrequest in SSI response did not work;
- the bug had appeared in 0.3.50.
- </para>
- </change>
- </changes>
- <changes ver="0.4.12" date="2006-10-31">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module поддерживает метод $r->variable.
- </para>
- <para lang="en">
- the ngx_http_perl_module supports the $r->variable method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при включении в ответ большого статического файла с помощью SSI
- ответ мог передаваться не полностью.
- </para>
- <para lang="en">
- if a big static file was included using SSI in a response,
- then the response may be transferred incomplete.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не убирал "#fragment" в URI.
- </para>
- <para lang="en">
- nginx did not omit the "#fragment" part in URI.
- </para>
- </change>
- </changes>
- <changes ver="0.4.11" date="2006-10-25">
- <change type="feature">
- <para lang="ru">
- POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
- </para>
- <para lang="en">
- the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module поддерживает метод $r->allow_ranges.
- </para>
- <para lang="en">
- the ngx_http_perl_module supports the $r->allow_ranges method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при включённой поддержке команды APOP в POP3 прокси могли
- не работать команды USER/PASS;
- ошибка появилась в 0.4.10.
- </para>
- <para lang="en">
- if the APOP was enabled in the POP3 proxy, then the USER/PASS commands
- might not work;
- the bug had appeared in 0.4.10.
- </para>
- </change>
- </changes>
- <changes ver="0.4.10" date="2006-10-23">
- <change type="feature">
- <para lang="ru">
- POP3 прокси поддерживает APOP.
- </para>
- <para lang="en">
- the POP3 proxy supports the APOP command.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании методов select, poll и /dev/poll во время ожидания
- ответа от сервера аутентификации IMAP/POP3 прокси нагружал процессор.
- </para>
- <para lang="en">
- if the select, poll or /dev/poll methods were used, then while
- waiting authentication server response the IMAP/POP3 proxy hogged CPU.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании переменной $server_addr в директиве map мог
- произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault might occur if the $server_addr variable was used
- in the "map" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_flv_module не поддерживал byte ranges для полных ответов;
- ошибка появилась в 0.4.7.
- </para>
- <para lang="en">
- the ngx_http_flv_module did not support the byte ranges for full responses;
- the bug had appeared in 0.4.7.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Debian amd64;
- ошибка появилась в 0.4.9.
- </para>
- <para lang="en">
- nginx could not be built on Debian amd64;
- the bug had appeared in 0.4.9.
- </para>
- </change>
- </changes>
- <changes ver="0.4.9" date="2006-10-13">
- <change type="feature">
- <para lang="ru">
- параметр set в команде SSI include.
- </para>
- <para lang="en">
- the "set" parameter in the "include" SSI command.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module теперь проверяет версию модуля nginx.pm.
- </para>
- <para lang="en">
- the ngx_http_perl_module now tests the nginx.pm module version.
- </para>
- </change>
- </changes>
- <changes ver="0.4.8" date="2006-10-11">
- <change type="bugfix">
- <para lang="ru">
- если до команды SSI include с параметром wait выполнялась ещё
- одна команда SSI include, то параметр wait мог не работать.
- </para>
- <para lang="en">
- if an "include" SSI command were before another "include" SSI command
- with a "wait" parameter, then the "wait" parameter might not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_flv_module добавлял FLV-заголовок для полных ответов.<br/>
- Спасибо Алексею Ковырину.
- </para>
- <para lang="en">
- the ngx_http_flv_module added the FLV header to the full responses.<br/>
- Thanks to Alexey Kovyrin.
- </para>
- </change>
- </changes>
- <changes ver="0.4.7" date="2006-10-10">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_flv_module.
- </para>
- <para lang="en">
- the ngx_http_flv_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $request_body_file.
- </para>
- <para lang="en">
- the $request_body_file variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы charset и source_charset поддерживают переменные.
- </para>
- <para lang="en">
- the "charset" and "source_charset" directives support the variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если до команды SSI include с параметром wait выполнялась ещё
- одна команда SSI include, то параметр wait мог не работать.
- </para>
- <para lang="en">
- if an "include" SSI command were before another "include" SSI command
- with a "wait" parameter, then the "wait" parameter might not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании директивы "proxy_buffering off" или при работе
- с memcached соединения могли не закрываться по таймауту.
- </para>
- <para lang="en">
- if the "proxy_buffering off" directive was used or while working with
- memcached the connections might not be closed on timeout.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64.
- </para>
- <para lang="en">
- nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64.
- </para>
- </change>
- </changes>
- <changes ver="0.4.6" date="2006-10-06">
- <change type="bugfix">
- <para lang="ru">
- nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64.
- </para>
- <para lang="en">
- nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при запросе версии HTTP/1.1 nginx передавал ответ chunk'ами,
- если длина ответа в методе $r->headers_out("Content-Length", ...)
- была задана текстовой строкой.
- </para>
- <para lang="en">
- nginx sent the chunked response for HTTP/1.1 request,<br/>
- if its length was set by text string in
- the $r->headers_out("Content-Length", ...) method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- после перенаправления ошибки с помощью директивы error_page любая директива
- модуля ngx_http_rewrite_module возвращала эту ошибку;
- ошибка появилась в 0.4.4.
- </para>
- <para lang="en">
- after redirecting error by an "error_page" directive
- any ngx_http_rewrite_module directive returned this error code;
- the bug had appeared in 0.4.4.
- </para>
- </change>
- </changes>
- <changes ver="0.4.5" date="2006-10-02">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Linux и Solaris;
- ошибка появилась в 0.4.4.
- </para>
- <para lang="en">
- nginx could not be built on Linux and Solaris;
- the bug had appeared in 0.4.4.
- </para>
- </change>
- </changes>
- <changes ver="0.4.4" date="2006-10-02">
- <change type="feature">
- <para lang="ru">
- переменная $scheme.
- </para>
- <para lang="en">
- the $scheme variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива expires поддерживает параметр max.
- </para>
- <para lang="en">
- the "expires" directive supports the "max" parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива include поддерживает маску "*".<br/>
- Спасибо Jonathan Dance.
- </para>
- <para lang="en">
- the "include" directive supports the "*" mask.<br/>
- Thanks to Jonathan Dance.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива return всегда изменяла код ответа, перенаправленного
- директивой error_page.
- </para>
- <para lang="en">
- the "return" directive always overrode the "error_page" response code
- redirected by the "error_page" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- происходил segmentation fault, если в методе PUT передавалось
- тело нулевой длины.
- </para>
- <para lang="en">
- a segmentation fault occurred if zero-length body was in PUT method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании переменных в директиве proxy_redirect редирект
- изменялся неверно.
- </para>
- <para lang="en">
- the redirect was changed incorrectly if the variables were used
- in the "proxy_redirect" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.4.3" date="2006-09-26">
- <change type="change">
- <para lang="ru">
- ошибку 499 теперь нельзя перенаправить с помощью директивы error_page.
- </para>
- <para lang="en">
- now the 499 error could not be redirected using an "error_page" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка Solaris 10 event ports.
- </para>
- <para lang="en">
- the Solaris 10 event ports support.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_browser_module.
- </para>
- <para lang="en">
- the ngx_http_browser_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при перенаправлении ошибки 400 проксированному серверу
- помощью директивы error_page мог произойти segmentation fault.
- </para>
- <para lang="en">
- a segmentation fault may occur while redirecting the 400 error
- to the proxied server using a "proxy_pass" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- происходил segmentation fault, если в директиве proxy_pass использовался
- unix domain сокет;
- ошибка появилась в 0.3.47.
- </para>
- <para lang="en">
- a segmentation fault occurred if an unix domain socket was used in
- a "proxy_pass" directive;
- the bug had appeared in 0.3.47.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- SSI не работал с ответами memcached и небуферизированными проксированными
- ответами.
- </para>
- <para lang="en">
- SSI did work with memcached and nonbuffered responses.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- обход ошибки PAUSE hardware capability в Sun Studio.
- </para>
- <para lang="en">
- of the Sun Studio PAUSE hardware capability bug.
- </para>
- </change>
- </changes>
- <changes ver="0.4.2" date="2006-09-14">
- <change type="bugfix">
- <para lang="ru">
- убрана поддержка флага O_NOATIME на Linux;
- ошибка появилась в 0.4.1.
- </para>
- <para lang="en">
- the O_NOATIME flag support on Linux was canceled;
- the bug had appeared in 0.4.1.
- </para>
- </change>
- </changes>
- <changes ver="0.4.1" date="2006-09-14">
- <change type="bugfix">
- <para lang="ru">
- совместимость с DragonFlyBSD.<br/>
- Спасибо Павлу Назарову.
- </para>
- <para lang="en">
- the DragonFlyBSD compatibility.<br/>
- Thanks to Pavel Nazarov.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- обход ошибки в sendfile() в 64-битном Linux при передаче файлов больше 2G.
- </para>
- <para lang="en">
- of bug in 64-bit Linux sendfile(), when file is more than 2G.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- теперь на Linux nginx для статических запросов использует флаг O_NOATIME.<br/>
- Спасибо Yusuf Goolamabbas.
- </para>
- <para lang="en">
- now on Linux nginx uses O_NOATIME flag for static requests.<br/>
- Thanks to Yusuf Goolamabbas.
- </para>
- </change>
- </changes>
- <changes ver="0.4.0" date="2006-08-30">
- <change>
- <para lang="ru">
- Изменение во внутреннем API: инициализация модулей HTTP перенесена из фазы
- init module в фазу HTTP postconfiguration.
- </para>
- <para lang="en">
- Change in internal API: the HTTP modules initialization was moved
- from the init module phase to the HTTP postconfiguration phase.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь тело запроса в модуле ngx_http_perl_module не считывается
- заранее: нужно явно инициировать чтение с помощью метода $r->has_request_body.
- </para>
- <para lang="en">
- now the request body is not read beforehand for the ngx_http_perl_module:
- it's required to start the reading using the $r->has_request_body method.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module поддерживает код возврата DECLINED.
- </para>
- <para lang="en">
- the ngx_http_perl_module supports the DECLINED return code.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_dav_module поддерживает входящую строку заголовка "Date"
- для метода PUT.
- </para>
- <para lang="en">
- the ngx_http_dav_module supports the incoming "Date" header line
- for the PUT method.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssi работает внутри блока if.
- </para>
- <para lang="en">
- the "ssi" directive is available inside the "if" block.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- происходил segmentation fault, если в директиве index использовалась
- переменные и при этом первое имя индексного файла было без переменных;
- ошибка появилась в 0.1.29.
- </para>
- <para lang="en">
- a segmentation fault occurred if there was an "index" directive with
- variables and the first index name was without variables;
- the bug had appeared in 0.1.29.
- </para>
- </change>
- </changes>
- <changes ver="0.3.61" date="2006-08-28">
- <change type="change">
- <para lang="ru">
- директива tcp_nodelay теперь по умолчанию включена.
- </para>
- <para lang="en">
- now the "tcp_nodelay" directive is turned on by default.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива msie_refresh.
- </para>
- <para lang="en">
- the "msie_refresh" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива recursive_error_pages.
- </para>
- <para lang="en">
- the "recursive_error_pages" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива rewrite возвращала неправильный редирект, если редирект
- включал в себя выделенные закодированные символы из оригинального URI.
- </para>
- <para lang="en">
- the "rewrite" directive returned incorrect redirect, if the redirect
- had the captured escaped symbols from original URI.
- </para>
- </change>
- </changes>
- <changes ver="0.3.60" date="2006-08-18">
- <change type="bugfix">
- <para lang="ru">
- во время перенаправления ошибки рабочий процесс мог зациклиться;
- ошибка появилась в 0.3.59.
- </para>
- <para lang="en">
- a worker process may got caught in an endless loop
- while an error redirection;
- the bug had appeared in 0.3.59.
- </para>
- </change>
- </changes>
- <changes ver="0.3.59" date="2006-08-16">
- <change type="feature">
- <para lang="ru">
- теперь можно делать несколько перенаправлений через директиву error_page.
- </para>
- <para lang="en">
- now is possible to do several redirection using the "error_page" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива dav_access не поддерживала три параметра.
- </para>
- <para lang="en">
- the "dav_access" directive did not support three parameters.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива error_page не изменяла строку "Content-Type"
- после перенаправления с помощью "X-Accel-Redirect";
- ошибка появилась в 0.3.58.
- </para>
- <para lang="en">
- the "error_page" directive did not changes the "Content-Type" header line
- after the "X-Accel-Redirect" was used;
- the bug had appeared in 0.3.58.
- </para>
- </change>
- </changes>
- <changes ver="0.3.58" date="2006-08-14">
- <change type="feature">
- <para lang="ru">
- директива error_page поддерживает переменные.
- </para>
- <para lang="en">
- the "error_page" directive supports the variables.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь на Linux используется интерфейс procfs вместо sysctl.
- </para>
- <para lang="en">
- now the procfs interface instead of sysctl is used on Linux.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь при использовании "X-Accel-Redirect" строка "Content-Type" наследуется
- из первоначального ответа.
- </para>
- <para lang="en">
- now the "Content-Type" header line is inherited from first response
- when the "X-Accel-Redirect" was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива error_page не перенаправляла ошибку 413.
- </para>
- <para lang="en">
- the "error_page" directive did not redirect the 413 error.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- завершающий "?" не удалял старые аргументы, если в переписанном URI
- не было новых аргументов.
- </para>
- <para lang="en">
- the trailing "?" did not remove old arguments if no new arguments
- were added to a rewritten URI.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
- </para>
- <para lang="en">
- nginx could not run on 64-bit FreeBSD 7.0-CURRENT.
- </para>
- </change>
- </changes>
- <changes ver="0.3.57" date="2006-08-09">
- <change type="feature">
- <para lang="ru">
- переменная $ssl_client_serial.
- </para>
- <para lang="en">
- the $ssl_client_serial variable.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в операторе "!-e" в директиве if.<br/>
- Спасибо Андриану Буданцову.
- </para>
- <para lang="en">
- in the "!-e" operator of the "if" directive.<br/>
- Thanks to Andrian Budanstov.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при проверке клиентского сертификата nginx не передавал клиенту
- информацию о требуемых сертификатах.
- </para>
- <para lang="en">
- while a client certificate verification nginx did not send to a client
- the required certificates information.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $document_root не поддерживала переменные в директиве root.
- </para>
- <para lang="en">
- the $document_root variable did not support the variables in the "root"
- directive.
- </para>
- </change>
- </changes>
- <changes ver="0.3.56" date="2006-08-04">
- <change type="feature">
- <para lang="ru">
- директива dav_access.
- </para>
- <para lang="en">
- the "dav_access" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива if поддерживает операторы "-d", "!-d", "-e", "!-e", "-x" и "!-x".
- </para>
- <para lang="en">
- the "if" directive supports the "-d", "!-d", "-e", "!-e", "-x", and "!-x"
- operators.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при записи в access_log некоторых передаваемых клиенту строк заголовков
- происходил segmentation fault, если запрос возвращал редирект.
- </para>
- <para lang="en">
- a segmentation fault occurred if a request returned a redirect and
- some sent to client header lines were logged in the access log.
- </para>
- </change>
- </changes>
- <changes ver="0.3.55" date="2006-07-28">
- <change type="feature">
- <para lang="ru">
- параметр stub в команде SSI include.
- </para>
- <para lang="en">
- the "stub" parameter in the "include" SSI command.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- команда SSI block.
- </para>
- <para lang="en">
- the "block" SSI command.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- скрипт unicode2nginx добавлен в contrib.
- </para>
- <para lang="en">
- the unicode2nginx script was added to contrib.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если root был задан только переменной, то корень задавался
- относительно префикса сервера.
- </para>
- <para lang="en">
- if a "root" was specified by variable only, then the root was relative
- to a server prefix.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в запросе был "//" или "/.", и после этого закодированные
- символы в виде "%XX", то проксируемый запрос передавался незакодированным.
- </para>
- <para lang="en">
- if the request contained "//" or "/./" and escaped symbols after them,
- then the proxied request was sent unescaped.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- метод $r->header_in("Cookie") модуля ngx_http_perl_module теперь возвращает
- все строки "Cookie" в заголовке запроса.
- </para>
- <para lang="en">
- the $r->header_in("Cookie") of the ngx_http_perl_module now returns
- all "Cookie" header lines.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- происходил segmentation fault, если использовался
- <nobr>"client_body_in_file_only on"</nobr>
- и делался переход к следующему бэкенду.
- </para>
- <para lang="en">
- a segmentation fault occurred if <nobr>"client_body_in_file_only on"</nobr>
- was used and nginx switched to a next upstream.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при некоторых условиях во время переконфигурации коды символов
- внутри директивы charset_map могли считаться неверными;
- ошибка появилась в 0.3.50.
- </para>
- <para lang="en">
- on some condition while reconfiguration character codes
- inside the "charset_map" may be treated invalid;
- the bug had appeared in 0.3.50.
- </para>
- </change>
- </changes>
- <changes ver="0.3.54" date="2006-07-11">
- <change type="feature">
- <para lang="ru">
- nginx теперь записывает в лог информацию о подзапросах.
- </para>
- <para lang="en">
- nginx now logs the subrequest information to the error log.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_next_upstream, fastcgi_next_upstream и memcached_next_upstream
- поддерживают параметр off.
- </para>
- <para lang="en">
- the "proxy_next_upstream", "fastcgi_next_upstream",
- and "memcached_next_upstream" directives support the "off" parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива debug_connection поддерживает запись адресов в формате CIDR.
- </para>
- <para lang="en">
- the "debug_connection" directive supports the CIDR address form.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при перекодировании ответа проксированного сервера или сервера FastCGI
- в UTF-8 или наоборот ответ мог передаваться не полностью.
- </para>
- <para lang="en">
- if a response of proxied server or FastCGI server was converted from UTF-8
- or back, then it may be transferred incomplete.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $upstream_response_time содержала время только первого
- обращения к бэкенду.
- </para>
- <para lang="en">
- the $upstream_response_time variable had the time of the first
- request to a backend only.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на платформе amd64;
- ошибка появилась в 0.3.53.
- </para>
- <para lang="en">
- nginx could not be built on amd64 platform;
- the bug had appeared in 0.3.53.
- </para>
- </change>
- </changes>
- <changes ver="0.3.53" date="2006-07-07">
- <change type="change">
- <para lang="ru">
- директива add_header добавляет строки в ответы с кодом 204, 301 и 302.
- </para>
- <para lang="en">
- the "add_header" directive adds the string to 204, 301, and 302 responses.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива server в блоке upstream поддерживает параметр weight.
- </para>
- <para lang="en">
- the "server" directive in the "upstream" context supports
- the "weight" parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива server_name поддерживает маску "*".
- </para>
- <para lang="en">
- the "server_name" directive supports the "*" wildcard.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- nginx поддерживает тело запроса больше 2G.
- </para>
- <para lang="en">
- nginx supports the request body size more than 2G.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если при использовании "satisfy_any on" клиент успешно проходил аутентификацию,
- в лог всё равно записалоcь сообщение "access forbidden by rule".
- </para>
- <para lang="en">
- if a client was successfully authorized using "satisfy_any on", then anyway
- the message "access forbidden by rule" was written in the log.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- метод PUT мог ошибочно не создать файл и вернуть код 409.
- </para>
- <para lang="en">
- the "PUT" method may erroneously not create a file and return the 409 code.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если во время аутентификации IMAP/POP3 бэкенд возвращал ошибку, nginx
- продолжал проксирование.
- </para>
- <para lang="en">
- if the IMAP/POP3 backend returned an error, then nginx continued proxying
- anyway.
- </para>
- </change>
- </changes>
- <changes ver="0.3.52" date="2006-07-03">
- <change type="change">
- <para lang="ru">
- восстановлено поведение модуля ngx_http_index_module для запросов "POST /":
- как в версии до 0.3.40, модуль теперь не выдаёт ошибку 405.
- </para>
- <para lang="en">
- the ngx_http_index_module behavior for the "POST /" requests is reverted
- to the 0.3.40 version state: the module now does not return the 405 error.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании ограничения скорости рабочий процесс мог зациклиться;
- ошибка появилась в 0.3.37.
- </para>
- <para lang="en">
- the worker process may got caught in an endless loop if the limit rate was used;
- the bug had appeared in 0.3.37.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_charset_module записывал в лог ошибку "unknown charset",
- даже если перекодировка не требовалась;
- ошибка появилась в 0.3.50.
- </para>
- <para lang="en">
- ngx_http_charset_module logged "unknown charset" alert, even if the recoding
- was not needed;
- the bug had appeared in 0.3.50.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в результате запроса PUT возвращался код 409, то временный файл
- не удалялся.
- </para>
- <para lang="en">
- if a code response of the PUT request was 409, then a temporary file
- was not removed.
- </para>
- </change>
- </changes>
- <changes ver="0.3.51" date="2006-06-30">
- <change type="bugfix">
- <para lang="ru">
- при некоторых условиях в SSI мог пропадать символы "<";
- ошибка появилась в 0.3.50.
- </para>
- <para lang="en">
- the "<" symbols might disappeared some conditions in the SSI;
- the bug had appeared in 0.3.50.
- </para>
- </change>
- </changes>
- <changes ver="0.3.50" date="2006-06-28">
- <change type="change">
- <para lang="ru">
- директивы proxy_redirect_errors и fastcgi_redirect_errors
- переименованы соответственно в proxy_intercept_errors и
- fastcgi_intercept_errors.
- </para>
- <para lang="en">
- the "proxy_redirect_errors" and "fastcgi_redirect_errors" directives
- was renamed to the "proxy_intercept_errors" and
- "fastcgi_intercept_errors" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_charset_module поддерживает перекодирование из
- однобайтных кодировок в UTF-8 и обратно.
- </para>
- <para lang="en">
- the ngx_http_charset_module supports the recoding from the single byte
- encodings to the UTF-8 encoding and back.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Charset"
- в ответе бэкенда.
- </para>
- <para lang="en">
- the "X-Accel-Charset" response header line is supported in proxy
- and FastCGI mode.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- символ "\" в парах "\"" и "\'" в SSI командах убирался, только если
- также использовался символ "$".
- </para>
- <para lang="en">
- the "\" escape symbol in the "\"" and "\'" pairs in the SSI command
- was removed only if the command also has the "$" symbol.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при некоторых условиях в SSI после вставки могла быть добавлена
- строка "<!--".
- </para>
- <para lang="en">
- the "<!--" string might be added on some conditions
- in the SSI after inclusion.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в заголовке ответа была строка <nobr>"Content-Length: 0",</nobr>
- то при использовании небуферизированного проксировании не закрывалось соединение
- с клиентом.
- </para>
- <para lang="en">
- if the "Content-Length: 0" header line was in response, then
- in nonbuffered proxying mode the client connection was not closed.
- </para>
- </change>
- </changes>
- <changes ver="0.3.49" date="2006-05-31">
- <change type="bugfix">
- <para lang="ru">
- в директиве set.
- </para>
- <para lang="en">
- in the "set" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при включении в ssi двух и более подзапросов, обрабатываемых через FastCGI,
- вместо вывода второго и остальных подзапросов в ответ включался вывод
- первого подзапроса.
- </para>
- <para lang="en">
- if two or more FastCGI subrequests was in SSI, then first subrequest output
- was included instead of second and following subrequests.
- </para>
- </change>
- </changes>
- <changes ver="0.3.48" date="2006-05-29">
- <change type="change">
- <para lang="ru">
- теперь модуль ngx_http_charset_module работает для подзапросов,
- в ответах которых нет строки заголовка "Content-Type".
- </para>
- <para lang="en">
- now the ngx_http_charset_module works for subrequests,
- if the response has no "Content-Type" header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директиве proxy_pass не было URI,
- то директива "proxy_redirect default" добавляла в переписанный
- редирект в начало лишний слэш.
- </para>
- <para lang="en">
- if the "proxy_pass" directive has no URI part,
- then the "proxy_redirect default" directive add the unnecessary slash
- in start of the rewritten redirect.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- внутренний редирект всегда превращал любой HTTP-метод в GET,
- теперь это делается только для редиректов, выполняемых с помощью
- X-Accel-Redirect, и у которых метод не равен HEAD;
- ошибка появилась в 0.3.42.
- </para>
- <para lang="en">
- the internal redirect always transform client's HTTP method to GET,
- now the transformation is made for the "X-Accel-Redirect" redirects only
- and if the method is not HEAD;
- the bug had appeared in 0.3.42.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_perl_module не собирался, если перл был с поддержкой потоков;
- ошибка появилась в 0.3.46.
- </para>
- <para lang="en">
- the ngx_http_perl_module could not be built, if the perl was built
- with the threads support;
- the bug had appeared in 0.3.46.
- </para>
- </change>
- </changes>
- <changes ver="0.3.47" date="2006-05-23">
- <change type="feature">
- <para lang="ru">
- директива upstream.
- </para>
- <para lang="en">
- the "upstream" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- символ "\" в парах "\"" и "\'" в SSI командах теперь всегда убирается.
- </para>
- <para lang="en">
- now the "\" escape symbol in the "\"" and "\'" pairs in the SSI command
- is always removed.
- </para>
- </change>
- </changes>
- <changes ver="0.3.46" date="2006-05-11">
- <change type="feature">
- <para lang="ru">
- директивы proxy_hide_header, proxy_pass_header, fastcgi_hide_header
- и fastcgi_pass_header.
- </para>
- <para lang="en">
- the "proxy_hide_header", "proxy_pass_header", "fastcgi_hide_header",
- and "fastcgi_pass_header" directives.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и proxy_pass_server
- упразднены.
- </para>
- <para lang="en">
- the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and "proxy_pass_server"
- directives were canceled.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в режиме прокси поддерживается строка заголовка "X-Accel-Buffering"
- в ответе бэкенда.
- </para>
- <para lang="en">
- the "X-Accel-Buffering" response header line is supported in proxy mode.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибок и утечек памяти при переконфигурации в модуле ngx_http_perl_module.
- </para>
- <para lang="en">
- the reconfiguration bug and memory leaks in the ngx_http_perl_module.
- </para>
- </change>
- </changes>
- <changes ver="0.3.45" date="2006-05-06">
- <change type="feature">
- <para lang="ru">
- директивы ssl_verify_client, ssl_verify_depth и ssl_client_certificate.
- </para>
- <para lang="en">
- the "ssl_verify_client", "ssl_verify_depth", and "ssl_client_certificate"
- directives.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь переменная $request_method возвращает метод только основного запроса.
- </para>
- <para lang="en">
- the $request_method variable now returns the main request method.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- в таблице перекодировки koi-win изменены коды символа &deg;.
- </para>
- <para lang="en">
- the &deg; symbol codes were changed in koi-win conversion table.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в таблицу перекодировки koi-win добавлены символы евро и номера.
- </para>
- <para lang="en">
- the euro and N symbols were added to koi-win conversion table.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если nginx распределял запросы на несколько машин, то при падении
- одной из них запросы, предназначенные для этой машины, перенаправлялись только
- на одну машину вместо того, чтобы равномерно распределяться между остальными.
- </para>
- <para lang="en">
- if nginx distributed the requests among several backends and some backend
- failed, then requests intended for this backend was directed to one live
- backend only instead of being distributed among the rest.
- </para>
- </change>
- </changes>
- <changes ver="0.3.44" date="2006-05-04">
- <change type="feature">
- <para lang="ru">
- параметр wait в команде SSI include.
- </para>
- <para lang="en">
- the "wait" parameter in the "include" SSI command.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в таблицу перекодировки koi-win добавлены украинские и белорусские символы.
- </para>
- <para lang="en">
- the Ukrainian and Byelorussian characters were added to koi-win conversion
- table.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в SSI.
- </para>
- <para lang="en">
- in the SSI.
- </para>
- </change>
- </changes>
- <changes ver="0.3.43" date="2006-04-26">
- <change type="bugfix">
- <para lang="ru">
- в SSI.
- </para>
- <para lang="en">
- in the SSI.
- </para>
- </change>
- </changes>
- <changes ver="0.3.42" date="2006-04-26">
- <change type="feature">
- <para lang="ru">
- параметр bind в директиве listen в IMAP/POP3 прокси.
- </para>
- <para lang="en">
- the "bind" option of the "listen" directive in IMAP/POP3 proxy.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании в директиве rewrite одного и того же
- выделения более одного раза.
- </para>
- <para lang="en">
- if the same capture in the "rewrite" directive was used more then once.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в лог не записывались переменные
- $sent_http_content_type, $sent_http_content_length, $sent_http_last_modified,
- $sent_http_connection, $sent_http_keep_alive и $sent_http_transfer_encoding.
- </para>
- <para lang="en">
- the $sent_http_content_type, $sent_http_content_length,
- $sent_http_last_modified, $sent_http_connection, $sent_http_keep_alive,
- and $sent_http_transfer_encoding variables were not written to access log.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменная $sent_http_cache_control возвращала содержимое только одной
- строки "Cache-Control" в заголовке ответа.
- </para>
- <para lang="en">
- the $sent_http_cache_control returned value of the single "Cache-Control"
- response header line.
- </para>
- </change>
- </changes>
- <changes ver="0.3.41" date="2006-04-21">
- <change type="feature">
- <para lang="ru">
- ключ -v.
- </para>
- <para lang="en">
- the -v switch.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при включении в SSI удалённых подзапросов
- мог произойти segmentation fault.
- </para>
- <para lang="en">
- the segmentation fault may occurred if the SSI page has remote subrequests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в обработке FastCGI.
- </para>
- <para lang="en">
- in FastCGI handling.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если путь к перловым модулям не был указан с помощью
- --with-perl_modules_path=PATH или директивы perl_modules,
- то на старте происходил segmentation fault.
- </para>
- <para lang="en">
- if the perl modules path was not set using
- --with-perl_modules_path=PATH or the "perl_modules", then
- the segmentation fault was occurred.
- </para>
- </change>
- </changes>
- <changes ver="0.3.40" date="2006-04-19">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_dav_module поддерживает метод MKCOL.
- </para>
- <para lang="en">
- the ngx_http_dav_module supports the MKCOL method.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива create_full_put_path.
- </para>
- <para lang="en">
- the "create_full_put_path" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $limit_rate.
- </para>
- <para lang="en">
- the "$limit_rate" variable.
- </para>
- </change>
- </changes>
- <changes ver="0.3.39" date="2006-04-17">
- <change type="feature">
- <para lang="ru">
- директива uninitialized_variable_warn; уровень логгирования сообщения
- о неинициализированной переменной понижен с уровня alert на warn.
- </para>
- <para lang="en">
- the "uninitialized_variable_warn" directive; the logging level of the
- "uninitialized variable" message was lowered from "alert" to "warn".
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива override_charset.
- </para>
- <para lang="en">
- the "override_charset" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- при использовании неизвестной переменной в SSI-командах echo и if expr='$name'
- теперь не записывается в лог сообщение о неизвестной переменной.
- </para>
- <para lang="en">
- now if the unknown variable is used in the "echo" and "if expr='$name'"
- SSI-commands, then the "unknown variable" message is not logged.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- счётчик активных соединений рос при превышении лимита соединений,
- заданного директивой worker_connections;
- ошибка появилась в 0.2.0.
- </para>
- <para lang="en">
- the active connection counter increased on the exceeding of the connection
- limit specified by the "worker_connections" directive;
- the bug had appeared in 0.2.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при некоторых условия ограничение скорости соединения могло не работать;
- ошибка появилась в 0.3.38.
- </para>
- <para lang="en">
- the limit rate might not work on some condition;
- the bug had appeared in 0.3.38.
- </para>
- </change>
- </changes>
- <changes ver="0.3.38" date="2006-04-14">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_dav_module.
- </para>
- <para lang="en">
- the ngx_http_dav_module.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- оптимизация модуля ngx_http_perl_module.<br/>
- Спасибо Сергею Скворцову.
- </para>
- <para lang="en">
- the ngx_http_perl_module optimizations.<br/>
- Thanks to Sergey Skvortsov.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module поддерживает метод $r->request_body_file.
- </para>
- <para lang="en">
- the ngx_http_perl_module supports the $r->request_body_file method.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива client_body_in_file_only.
- </para>
- <para lang="en">
- the "client_body_in_file_only" directive.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- теперь при переполнении диска nginx пытается писать access_log'и только
- раз в секунду.<br/>
- Спасибо Антону Южанинову и Максиму Дунину.
- </para>
- <para lang="en">
- now on disk overflow nginx tries to write access logs once a second only.<br/>
- Thanks to Anton Yuzhaninov and Maxim Dounin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- теперь директива limit_rate точнее ограничивает скорость при значениях
- больше <nobr>100 Kbyte/s.</nobr><br/>
- Спасибо ForJest.
- </para>
- <para lang="en">
- now the "limit_rate" directive more precisely limits rate if rate is more
- than <nobr>100 Kbyte/s.</nobr><br/>
- Thanks to ForJest.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- IMAP/POP3 прокси теперь передаёт серверу авторизации символы "\r" и "\n"
- в логине и пароле в закодированном виде.<br/>
- Спасибо Максиму Дунину.
- </para>
- <para lang="en">
- now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in login and
- password to pass authorization server.<br/>
- Thanks to Maxim Dounin.
- </para>
- </change>
- </changes>
- <changes ver="0.3.37" date="2006-04-07">
- <change type="feature">
- <para lang="ru">
- директива limit_except.
- </para>
- <para lang="en">
- the "limit_except" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива if поддерживает операторы "!~", "!~*", "-f" и "!-f".
- </para>
- <para lang="en">
- the "if" directive supports the "!~", "!~*", "-f", and "!-f" operators.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module поддерживает метод $r->request_body.
- </para>
- <para lang="en">
- the ngx_http_perl_module supports the $r->request_body method.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в модуле ngx_http_addition_filter_module.
- </para>
- <para lang="en">
- in the ngx_http_addition_filter_module.
- </para>
- </change>
- </changes>
- <changes ver="0.3.36" date="2006-04-05">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_addition_filter_module.
- </para>
- <para lang="en">
- the ngx_http_addition_filter_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_pass и fastcgi_pass можно использовать внутри блока if.
- </para>
- <para lang="en">
- the "proxy_pass" and "fastcgi_pass" directives may be used inside
- the "if" block.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort.
- </para>
- <para lang="en">
- the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $request_completion.
- </para>
- <para lang="en">
- the "$request_completion" variable.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module поддерживает методы $r->request_method и
- $r->remote_addr.
- </para>
- <para lang="en">
- the ngx_http_perl_module supports the $r->request_method and $r->remote_addr.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssi_module поддерживает команду elif.
- </para>
- <para lang="en">
- the ngx_http_ssi_module supports the "elif" command.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строка "\/" в начале выражения команды if модуля ngx_http_ssi_module
- воспринималась неверно.
- </para>
- <para lang="en">
- the "\/" string in the expression of the "if" command of the
- ngx_http_ssi_module was treated incorrectly.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в использовании регулярных выражениях в команде if модуля ngx_http_ssi_module.
- </para>
- <para lang="en">
- in the regular expressions in the "if" command of the ngx_http_ssi_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при задании относительного пути в директивах
- client_body_temp_path, proxy_temp_path, fastcgi_temp_path и perl_modules
- использовался каталог относительно текущего каталога, а не относительно
- префикса сервера.
- </para>
- <para lang="en">
- if the relative path was specified in the "client_body_temp_path",
- "proxy_temp_path", "fastcgi_temp_path", and "perl_modules" directives,
- then the directory was used relatively to a current path but not
- to a server prefix.
- </para>
- </change>
- </changes>
- <changes ver="0.3.35" date="2006-03-22">
- <change type="bugfix">
- <para lang="ru">
- accept-фильтр и TCP_DEFER_ACCEPT устанавливались только для первой
- директивы listen;
- ошибка появилась в 0.3.31.
- </para>
- <para lang="en">
- the accept-filter and the TCP_DEFER_ACCEPT option were set for first "listen"
- directive only;
- the bug had appeared in 0.3.31.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве proxy_pass без URI при использовании в подзапросе.
- </para>
- <para lang="en">
- in the "proxy_pass" directive without the URI part in a subrequest.
- </para>
- </change>
- </changes>
- <changes ver="0.3.34" date="2006-03-21">
- <change type="feature">
- <para lang="ru">
- директива add_header поддерживает переменные.
- </para>
- <para lang="en">
- the "add_header" directive supports the variables.
- </para>
- </change>
- </changes>
- <changes ver="0.3.33" date="2006-03-15">
- <change type="feature">
- <para lang="ru">
- параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream.
- </para>
- <para lang="en">
- the "http_503" parameter of the "proxy_next_upstream" or
- "fastcgi_next_upstream" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ngx_http_perl_module не работал со встроенным в конфигурационный файл кодом,
- если он не начинался сразу же с "sub".
- </para>
- <para lang="en">
- ngx_http_perl_module did not work with inlined in the configuration code,
- if it was not started with the "sub" word.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве post_action.
- </para>
- <para lang="en">
- in the "post_action" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.3.32" date="2006-03-11">
- <change type="bugfix">
- <para lang="ru">
- удаление отладочного логгирования на старте и при переконфигурации;
- ошибка появилась в 0.3.31.
- </para>
- <para lang="en">
- the debug logging on startup and reconfiguration time was removed;
- the bug had appeared in 0.3.31.
- </para>
- </change>
- </changes>
- <changes ver="0.3.31" date="2006-03-10">
- <change type="change">
- <para lang="ru">
- теперь nginx передаёт неверные ответы проксированного бэкенда.
- </para>
- <para lang="en">
- now nginx passes the malformed proxied backend responses.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы listen поддерживают адрес в виде "*:порт".
- </para>
- <para lang="en">
- the "listen" directives support the address in the "*:port" form.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка EVFILER_TIMER в MacOSX 10.4.
- </para>
- <para lang="en">
- the EVFILER_TIMER support in MacOSX 10.4.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- обход ошибки обработки миллисекундных таймаутов kqueue в 64-битном ядре
- MacOSX.<br/>
- Спасибо Андрею Нигматулину.
- </para>
- <para lang="en">
- for MacOSX 64-bit kernel kqueue millisecond timeout bug.<br/>
- Thanks to Andrei Nigmatulin.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если внутри одного сервера описаны несколько директив listen, слушающих на
- разных адресах, то имена серверов вида "*.domain.tld" работали только
- для первого адреса;
- ошибка появилась в 0.3.18.
- </para>
- <para lang="en">
- if there were several "listen" directives listening one various addresses
- inside one server, then server names like "*.domain.tld" worked for first
- address only;
- the bug had appeared in 0.3.18.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании протокола HTTPS в директиве proxy_pass не передавались
- запросы с телом, записанным во временный файл.
- </para>
- <para lang="en">
- if the HTTPS protocol was used in the "proxy_pass" directive and
- the request body was in temporary file then the request was not transferred.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с perl 5.8.8.
- </para>
- <para lang="en">
- perl 5.8.8 compatibility.
- </para>
- </change>
- </changes>
- <changes ver="0.3.30" date="2006-02-22">
- <change type="change">
- <para lang="ru">
- уровень записи в лог ошибки ECONNABORTED изменён на error с уровня crit.
- </para>
- <para lang="en">
- the ECONNABORTED error log level was changed to "error" from "crit".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_perl_module не собирался без модуля ngx_http_ssi_filter_module.
- </para>
- <para lang="en">
- the ngx_http_perl_module could not be build without
- the ngx_http_ssi_filter_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на i386 платформе, если использовался PIC;
- ошибка появилась в 0.3.27.
- </para>
- <para lang="en">
- nginx could not be built on i386 platform, if the PIC was used;
- the bug had appeared in 0.3.27.
- </para>
- </change>
- </changes>
- <changes ver="0.3.29" date="2006-02-20">
- <change type="feature">
- <para lang="ru">
- теперь nginx использует меньше памяти, если PHP в режиме FastCGI передаёт
- большое количество предупреждений перед ответом.
- </para>
- <para lang="en">
- now nginx uses less memory, if PHP in FastCGI mode sends many warnings
- before the response.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в ответах 204 для запросов версии HTTP/1.1 выдавалась строка заголовка
- "Transfer-Encoding: chunked".
- </para>
- <para lang="en">
- the "Transfer-Encoding: chunked" header line was issued in the 204 responses
- for the HTTP/1.1 requests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx возвращал 502 код ответа, если FastCGI сервер передавал полные строки
- заголовка ответа в отдельных FastCGI записях.
- </para>
- <para lang="en">
- nginx returned the 502 response, if the complete response header lines
- were transferred in a separate FastCGI records.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директиве post_action был указан проксируемый URI, то он выполнялся
- только после успешного завершения запроса.
- </para>
- <para lang="en">
- if the proxied URI was specified in the "post_action" directive, then it ran
- only after a successful completion of a request.
- </para>
- </change>
- </changes>
- <changes ver="0.3.28" date="2006-02-16">
- <change type="feature">
- <para lang="ru">
- директива restrict_host_names упразднена.
- </para>
- <para lang="en">
- the "restrict_host_names" directive was canceled.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр конфигурации --with-cpu-opt=ppc64.
- </para>
- <para lang="en">
- the --with-cpu-opt=ppc64 configuration parameter.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при некоторых условиях проксированное соединение с клиентом завершалось
- преждевременно.<br/>
- Спасибо Владимиру Шутову.
- </para>
- <para lang="en">
- on some condition the proxied connection with a client was terminated
- prematurely.<br/>
- Thanks to Vladimir Shutoff.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строка заголовка "X-Accel-Limit-Rate" не учитывалась для запросов,
- перенаправленных с помощью строки "X-Accel-Redirect".
- </para>
- <para lang="en">
- the "X-Accel-Limit-Rate" header line was not taken into account
- if the request was redirected using the "X-Accel-Redirect" header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива post_action работала только после успешного завершения запроса.
- </para>
- <para lang="en">
- the "post_action" directive ran only after a successful completion of a request.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- тело проксированного ответа, создаваемого директивой post_action,
- передавалось клиенту.
- </para>
- <para lang="en">
- the proxied response body generated by the "post_action" directive
- was transferred to a client.
- </para>
- </change>
- </changes>
- <changes ver="0.3.27" date="2006-02-08">
- <change type="change">
- <para lang="ru">
- директивы variables_hash_max_size и variables_hash_bucket_size.
- </para>
- <para lang="en">
- the "variables_hash_max_size" and "variables_hash_bucket_size" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменная $body_bytes_sent доступна не только в директиве log_format.
- </para>
- <para lang="en">
- the $body_bytes_sent variable can be used not only in the "log_format"
- directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные $ssl_protocol и $ssl_cipher.
- </para>
- <para lang="en">
- the $ssl_protocol and $ssl_cipher variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- определение размера строки кэша распространённых процессоров при старте.
- </para>
- <para lang="en">
- the cache line size detection for widespread CPUs at start time.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива accept_mutex теперь поддерживается посредством fcntl(2)
- на платформах, отличных от i386, amd64, sparc64 и ppc.
- </para>
- <para lang="en">
- now the "accept_mutex" directive is supported using fcntl(2)
- on platforms different from i386, amd64, sparc64, and ppc.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива lock_file и параметр автоконфигурации --with-lock-path=PATH.
- </para>
- <para lang="en">
- the "lock_file" directive and the --with-lock-path=PATH autoconfiguration
- directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании протокола HTTPS в директиве proxy_pass не передавались
- запросы с телом.
- </para>
- <para lang="en">
- if the HTTPS protocol was used in the "proxy_pass" directive then
- the requests with the body was not transferred.
- </para>
- </change>
- </changes>
- <changes ver="0.3.26" date="2006-02-03">
- <change type="change">
- <para lang="ru">
- директива optimize_host_names переименована в optimize_server_names.
- </para>
- <para lang="en">
- the "optimize_host_names" directive was renamed to the "optimize_server_names".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при проксировании подзапроса в SSI бэкенду передавался URI основного запроса,
- если в директиве proxy_pass отсутствовал URI.
- </para>
- <para lang="en">
- if in the "proxy_pass" directive was no the URI part, then the main request
- URI was transferred to a backend while proxying the SSI subrequest.
- </para>
- </change>
- </changes>
- <changes ver="0.3.25" date="2006-02-01">
- <change type="bugfix">
- <para lang="ru">
- при неверной конфигурации на старте или во время переконфигурации происходил
- segmentation fault;
- ошибка появилась в 0.3.24.
- </para>
- <para lang="en">
- the segmentation fault was occurred on start or while reconfiguration
- if there was invalid configuration;
- the bug had appeared in 0.3.24.
- </para>
- </change>
- </changes>
- <changes ver="0.3.24" date="2006-02-01">
- <change type="workaround">
- <para lang="ru">
- обход ошибки в kqueue во FreeBSD.
- </para>
- <para lang="en">
- for bug in FreeBSD kqueue.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответ, создаваемый директивой post_action, теперь не передаётся клиенту.
- </para>
- <para lang="en">
- now a response generated by the "post_action" directive is not transferred
- to a client.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании большого количества лог-файлов происходила утечка памяти.
- </para>
- <para lang="en">
- the memory leaks were occurring if many log files were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- внутри одного location работала только первая директива proxy_redirect.
- </para>
- <para lang="en">
- the first "proxy_redirect" directive was working inside one location.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на 64-битных платформах при старте мог произойти segmentation fault,
- если использовалось большое количество имён в директивах server_name;
- ошибка появилась в 0.3.18.
- </para>
- <para lang="en">
- on 64-bit platforms segmentation fault may occurred on start
- if the many names were used in the "server_name" directives;
- the bug had appeared in 0.3.18.
- </para>
- </change>
- </changes>
- <changes ver="0.3.23" date="2006-01-24">
- <change type="feature">
- <para lang="ru">
- директива optimize_host_names.
- </para>
- <para lang="en">
- the "optimize_host_names" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании переменных в директивах path и alias.
- </para>
- <para lang="en">
- in using of the variables in the "path" and "alias" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_perl_module неправильно собирался на Linux и Solaris.
- </para>
- <para lang="en">
- the ngx_http_perl_module was incorrectly built on Linux and Solaris.
- </para>
- </change>
- </changes>
- <changes ver="0.3.22" date="2006-01-17">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module поддерживает методы $r->args и $r->unescape.
- </para>
- <para lang="en">
- the ngx_http_perl_module supports the $r->args and $r->unescape methods.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- метод $r->query_string в модуле ngx_http_perl_module упразднён.
- </para>
- <para lang="en">
- the method $r->query_string of ngx_http_perl_module was canceled.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директиве valid_referers указаны только none или blocked, то
- происходил segmentation fault;
- ошибка появилась в 0.3.18.
- </para>
- <para lang="en">
- segmentation fault was occurred if the "none" or "blocked" values was
- specified in the "valid_referers" directive;
- the bug had appeared in 0.3.18.
- </para>
- </change>
- </changes>
- <changes ver="0.3.21" date="2006-01-16">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_perl_module.
- </para>
- <para lang="en">
- the ngx_http_perl_module.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива valid_referers разрешает использовать рефереры совсем без URI.
- </para>
- <para lang="en">
- the "valid_referers" directive allows the referrers without URI part.
- </para>
- </change>
- </changes>
- <changes ver="0.3.20" date="2006-01-11">
- <change type="bugfix">
- <para lang="ru">
- ошибки в обработке SSI.
- </para>
- <para lang="en">
- in SSI handling.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_memcached_module не поддерживал ключи в виде /uri?args.
- </para>
- <para lang="en">
- the ngx_http_memcached_module did not support the keys in the "/usr?args" form.
- </para>
- </change>
- </changes>
- <changes ver="0.3.19" date="2005-12-28">
- <change type="feature">
- <para lang="ru">
- директивы path и alias поддерживают переменные.
- </para>
- <para lang="en">
- the "path" and "alias" directives support the variables.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь директива valid_referers опять учитывает URI.
- </para>
- <para lang="en">
- now the "valid_referers" directive again checks the URI part.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки в обработке SSI.
- </para>
- <para lang="en">
- in SSI handling.
- </para>
- </change>
- </changes>
- <changes ver="0.3.18" date="2005-12-26">
- <change type="feature">
- <para lang="ru">
- директива server_names поддерживает имена вида ".domain.tld".
- </para>
- <para lang="en">
- the "server_names" directive supports the ".domain.tld" names.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива server_names использует хэш для имён вида "*.domain.tld"
- и более эффективный хэш для обычных имён.
- </para>
- <para lang="en">
- the "server_names" directive uses the hash for the "*.domain.tld" names
- and more effective hash for usual names.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директивы server_names_hash_max_size и server_names_hash_bucket_size.
- </para>
- <para lang="en">
- the "server_names_hash_max_size" and "server_names_hash_bucket_size" directives.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директивы server_names_hash и server_names_hash_threshold упразднены.
- </para>
- <para lang="en">
- the "server_names_hash" and "server_names_hash_threshold" directives
- were canceled.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива valid_referers использует хэш для имён сайтов.
- </para>
- <para lang="en">
- the "valid_referers" directive uses the hash site names.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- теперь директива valid_referers проверяет только имена сайтов без учёта URI.
- </para>
- <para lang="en">
- now the "valid_referers" directive checks the site names only without
- the URI part.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- некоторые имена вида ".domain.tld" неверно обрабатывались модулем
- ngx_http_map_module.
- </para>
- <para lang="en">
- some ".domain.tld" names incorrectly processed by the ngx_http_map_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если конфигурационного файла не было, то происходил segmentation fault;
- ошибка появилась в 0.3.12.
- </para>
- <para lang="en">
- segmentation fault was occurred if configuration file did not exist;
- the bug had appeared in 0.3.12.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на 64-битных платформах при старте мог произойти segmentation fault;
- ошибка появилась в 0.3.16.
- </para>
- <para lang="en">
- on 64-bit platforms segmentation fault may occurred on start;
- the bug had appeared in 0.3.16.
- </para>
- </change>
- </changes>
- <changes ver="0.3.17" date="2005-12-18">
- <change type="change">
- <para lang="ru">
- на Linux configure теперь проверяет наличие epoll и sendfile64() в ядре.
- </para>
- <para lang="en">
- now on Linux configure checks the presence of epoll and sendfile64() in kernel.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива map поддерживает доменные имена в формате ".domain.tld".
- </para>
- <para lang="en">
- the "map" directive supports domain names in the ".domain.tld" form.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- во время SSL handshake не иcпользовались таймауты;
- ошибка появилась в 0.2.4.
- </para>
- <para lang="en">
- the timeouts were not used in SSL handshake;
- the bug had appeared in 0.2.4.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в использовании протокола HTTPS в директиве proxy_pass.
- </para>
- <para lang="en">
- in the HTTPS protocol in the "proxy_pass" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании протокола HTTPS в директиве proxy_pass по умолчанию
- использовался порт 80.
- </para>
- <para lang="en">
- when the HTTPS protocol was used in the "proxy_pass" directive the port 80
- was used by default.
- </para>
- </change>
- </changes>
- <changes ver="0.3.16" date="2005-12-16">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_map_module.
- </para>
- <para lang="en">
- the ngx_http_map_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы types_hash_max_size и types_hash_bucket_size.
- </para>
- <para lang="en">
- the "types_hash_max_size" and "types_hash_bucket_size" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssi_value_length.
- </para>
- <para lang="en">
- the "ssi_value_length" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива worker_rlimit_core.
- </para>
- <para lang="en">
- the "worker_rlimit_core" directive.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
- <nobr>Pentium 4</nobr> номер соединения в логах всегда был равен 1.
- </para>
- <para lang="en">
- the connection number in logs was always 1 if nginx was built by the
- icc 8.1 or 9.0 compilers with optimization for <nobr>Pentium 4.</nobr>
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- команда config timefmt в SSI задавала неверный формат времени.
- </para>
- <para lang="en">
- the "config timefmt" SSI command set incorrect time format.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не закрывал соединения с IMAP/POP3 бэкендом при использовании SSL
- соединений;
- ошибка появилась в 0.3.13.<br/>
- Спасибо Rob Mueller.
- </para>
- <para lang="en">
- nginx did not close connection to IMAP/POP3 backend for the SSL
- connections;
- the bug had appeared in 0.3.13.<br/>
- Thanks to Rob Mueller.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- segmentation fault мог произойти во время SSL shutdown;
- ошибка появилась в 0.3.13.
- </para>
- <para lang="en">
- segmentation fault may occurred in at SSL shutdown;
- the bug had appeared in 0.3.13.
- </para>
- </change>
- </changes>
- <changes ver="0.3.15" date="2005-12-07">
- <change type="feature">
- <para lang="ru">
- новой код 444 в директиве return для закрытия соединения.
- </para>
- <para lang="en">
- the new 444 code of the "return" directive to close connection.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива so_keepalive в IMAP/POP3 прокси.
- </para>
- <para lang="en">
- the "so_keepalive" directive in IMAP/POP3 proxy.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx теперь вызывает abort() при обнаружении незакрытых соединений
- только при плавном выходе и включённой директиве debug_points.
- </para>
- <para lang="en">
- if there are unclosed connection nginx now calls abort() only on graceful
- quit and active "debug_points" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.3.14" date="2005-12-05">
- <change type="bugfix">
- <para lang="ru">
- в ответе 304 передавалось тело ответа;
- ошибка появилась в 0.3.13.
- </para>
- <para lang="en">
- in the 304 response the body was transferred;
- the bug had appeared in 0.3.13.
- </para>
- </change>
- </changes>
- <changes ver="0.3.13" date="2005-12-05">
- <change type="feature">
- <para lang="ru">
- IMAP/POP3 прокси поддерживает STARTTLS и STLS.
- </para>
- <para lang="en">
- the IMAP/POP3 proxy supports STARTTLS and STLS.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- IMAP/POP3 прокси не работала с методами select, poll и /dev/poll.
- </para>
- <para lang="en">
- the IMAP/POP3 proxy did not work with the select, poll, and /dev/poll methods.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки в обработке SSI.
- </para>
- <para lang="en">
- in SSI handling.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- sendfilev() в Solaris теперь не используется при передаче тела запроса
- FastCGI-серверу через unix domain сокет.
- </para>
- <para lang="en">
- now Solaris sendfilev() is not used to transfer the client request body
- to FastCGI-server via the unix domain socket.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива auth_basic не запрещала аутентификацию;
- ошибка появилась в 0.3.11.
- </para>
- <para lang="en">
- the "auth_basic" directive did not disable the authorization;
- the bug had appeared in 0.3.11.
- </para>
- </change>
- </changes>
- <changes ver="0.3.12" date="2005-11-26">
- <change type="security">
- <para lang="ru">
- если nginx был собран с модулем ngx_http_realip_module, то при использовании
- директивы "satisfy_any on" директивы доступа и аутентификации не работали.
- Модуль ngx_http_realip_module не собирался и не собирается по умолчанию.
- </para>
- <para lang="en">
- if nginx was built with the ngx_http_realip_module and the "satisfy_any on"
- directive was used, then access and authorization directives did not work.
- The ngx_http_realip_module was not built and is not built by default.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- имя переменной "$time_gmt" изменено на "$time_local".
- </para>
- <para lang="en">
- the "$time_gmt" variable name was changed to "$time_local".
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директивы proxy_header_buffer_size и fastcgi_header_buffer_size
- переименованы соответственно в proxy_buffer_size и fastcgi_buffer_size.
- </para>
- <para lang="en">
- the "proxy_header_buffer_size" and "fastcgi_header_buffer_size" directives
- was renamed to the "proxy_buffer_size" and "fastcgi_buffer_size" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_memcached_module.
- </para>
- <para lang="en">
- the ngx_http_memcached_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_buffering.
- </para>
- <para lang="en">
- the "proxy_buffering" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- изменение в работе с accept mutex при использовании метода rtsig;
- ошибка появилась в 0.3.0.
- </para>
- <para lang="en">
- the changes in accept mutex handling when the "rtsig" method was used;
- the bug had appeared in 0.3.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если клиент передал строку "Transfer-Encoding: chunked" в заголовке
- запроса, то nginx теперь выдаёт ошибку 411.
- </para>
- <para lang="en">
- if the client sent the "Transfer-Encoding: chunked" header line, then
- nginx returns the 411 error.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при наследовании директивы auth_basic с уровня http в строке
- "WWW-Authenticate" заголовка ответа выводился realm без текста "Basic realm".
- </para>
- <para lang="en">
- if the "auth_basic" directive was inherited from the http level,
- then the realm in the "WWW-Authenticate" header line was without
- the "Basic realm" text.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директиве access_log был явно указан формат combined, то в лог
- записывались пустые строки;
- ошибка появилась в 0.3.8.
- </para>
- <para lang="en">
- if the "combined" format was explicitly specified in the "access_log" directive,
- then the empty lines was written to the log;
- the bug had appeared in 0.3.8.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не работал на платформе sparc под любыми OS, кроме Solaris.
- </para>
- <para lang="en">
- nginx did not run on the sparc platform under any OS except Solaris.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве if теперь не нужно разделять пробелом строку в кавычках и
- закрывающую скобку.
- </para>
- <para lang="en">
- now it is not necessary to place space between the quoted string and closing
- bracket in the "if" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.3.11" date="2005-11-15">
- <change type="bugfix">
- <para lang="ru">
- nginx не передавал при проксировании тело запроса и строки заголовка клиента;
- ошибка появилась в 0.3.10.
- </para>
- <para lang="en">
- nginx did not pass the client request headers and body while proxying;
- the bug had appeared in 0.3.10.
- </para>
- </change>
- </changes>
- <changes ver="0.3.10" date="2005-11-15">
- <change type="change">
- <para lang="ru">
- директива valid_referers и переменная $invalid_referer перенесены
- из модуля ngx_http_rewrite_module в новый модуль ngx_http_referer_module.
- </para>
- <para lang="en">
- the "valid_referers" directive and the "$invalid_referer" variable
- were moved to the new ngx_http_referer_module from the ngx_http_rewrite_module.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- имя переменной "$apache_bytes_sent" изменено на "$body_bytes_sent".
- </para>
- <para lang="en">
- the "$apache_bytes_sent" variable name was changed to "$body_bytes_sent".
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные "$sent_http_...".
- </para>
- <para lang="en">
- the "$sent_http_..." variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива if поддерживает операции "=" и "!=".
- </para>
- <para lang="en">
- the "if" directive supports the "=" and "!=" operations.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_pass поддерживает протокол HTTPS.
- </para>
- <para lang="en">
- the "proxy_pass" directive supports the HTTPS protocol.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_set_body.
- </para>
- <para lang="en">
- the "proxy_set_body" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива post_action.
- </para>
- <para lang="en">
- the "post_action" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_empty_gif_module.
- </para>
- <para lang="en">
- the ngx_http_empty_gif_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива worker_cpu_affinity для Linux.
- </para>
- <para lang="en">
- the "worker_cpu_affinity" directive for Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива rewrite не раскодировала символы в редиректах в URI,
- теперь символы раскодируются, кроме символов %00-%25 и %7F-%FF.
- </para>
- <para lang="en">
- the "rewrite" directive did not unescape URI part in redirect,
- now it is unescaped except the %00-%25 and %7F-%FF characters.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался компилятором icc 9.0.
- </para>
- <para lang="en">
- nginx could not be built by the icc 9.0 compiler.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если для статического файла нулевого размера был разрешён SSI,
- то ответ передавался неверно при кодировании chunk'ами.
- </para>
- <para lang="en">
- if the SSI was enabled for zero size static file, then the chunked
- response was encoded incorrectly.
- </para>
- </change>
- </changes>
- <changes ver="0.3.9" date="2005-11-10">
- <change type="bugfix">
- <para lang="ru">
- nginx считал небезопасными URI, в которых между двумя слэшами
- находилось два любых символа;
- ошибка появилась в 0.3.8.
- </para>
- <para lang="en">
- nginx considered URI as unsafe if two any symbols was between two slashes;
- the bug had appeared in 0.3.8.
- </para>
- </change>
- </changes>
- <changes ver="0.3.8" date="2005-11-09">
- <change type="security">
- <para lang="ru">
- nginx теперь проверят URI, полученные от бэкенда в строке "X-Accel-Redirect"
- в заголовке ответа, или в SSI файле на наличие путей "/../" и нулей.
- </para>
- <para lang="en">
- nginx now checks URI got from a backend in "X-Accel-Redirect" header line
- or in SSI file for the "/../" paths and zeroes.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- nginx теперь не воспринимает пустое имя как правильное
- в строке "Authorization" в заголовке запроса.
- </para>
- <para lang="en">
- nginx now does not treat the empty user name in the "Authorization" header
- line as valid one.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssl_session_timeout модулей
- ngx_http_ssl_module и ngx_imap_ssl_module.
- </para>
- <para lang="en">
- the "ssl_session_timeout" directives
- of the ngx_http_ssl_module and ngx_imap_ssl_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива auth_http_header модуля ngx_imap_auth_http_module.
- </para>
- <para lang="en">
- the "auth_http_header" directive of the ngx_imap_auth_http_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива add_header.
- </para>
- <para lang="en">
- the "add_header" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_realip_module.
- </para>
- <para lang="en">
- the ngx_http_realip_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- новые переменные для использования в директиве log_format:
- $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
- $uri, $request_time, $request_length,
- $upstream_status, $upstream_response_time,
- $gzip_ratio,
- $uid_got, $uid_set,
- $connection, $pipe и $msec.
- Параметры в виде "%name" скоро будут упразднены.
- </para>
- <para lang="en">
- the new variables to use in the "log_format" directive:
- $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
- $uri, $request_time, $request_length,
- $upstream_status, $upstream_response_time,
- $gzip_ratio,
- $uid_got, $uid_set,
- $connection, $pipe, and $msec.
- The parameters in the "%name" form will be canceled soon.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- в директиве "if" ложными значениями переменных теперь являются
- пустая строка "" и строки, начинающиеся на "0".
- </para>
- <para lang="en">
- now the false variable values in the "if" directive are the empty string ""
- and string starting with "0".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при работает с проксированными или FastCGI-серверами nginx мог оставлять
- открытыми соединения и временные файлы с запросами клиентов.
- </para>
- <para lang="en">
- while using proxied or FastCGI-server nginx may leave connections
- and temporary files with client requests in open state.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- рабочие процессы не сбрасывали буферизированные логи при плавном выходе.
- </para>
- <para lang="en">
- the worker processes did not flush the buffered logs on graceful exit.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если URI запроса изменялось с помощью rewrite, а затем запрос проксировался
- в location, заданном регулярным выражением, то бэкенду передавался
- неверный запрос;
- ошибка появилась в 0.2.6.
- </para>
- <para lang="en">
- if the request URI was changes by the "rewrite" directive and the request
- was proxied in location given by regular expression, then the incorrect
- request was transferred to backend;
- the bug had appeared in 0.2.6.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива expires не удаляла уже установленную строку заголовка "Expires".
- </para>
- <para lang="en">
- the "expires" directive did not remove the previous "Expires" header.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании метода rtsig и нескольких рабочих процессах nginx
- мог перестать принимать запросы.
- </para>
- <para lang="en">
- nginx may stop to accept requests if the "rtsig" method and several worker
- processes were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в SSI командах неверно обрабатывались строки "\"" и "\'".
- </para>
- <para lang="en">
- the "\"" and "\'" escape symbols were incorrectly handled in SSI commands.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если ответ заканчивался сразу же после SSI команды, то при использовании
- сжатия ответ передавался не до конца или не передавался вообще.
- </para>
- <para lang="en">
- if the response was ended just after the SSI command and gzipping was used,
- then the response did not transferred complete or did not transferred at all.
- </para>
- </change>
- </changes>
- <changes ver="0.3.7" date="2005-10-27">
- <change type="feature">
- <para lang="ru">
- директива access_log поддерживает параметр buffer=.
- </para>
- <para lang="en">
- the "access_log" supports the "buffer=" parameter.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
- ошибка появилась в 0.3.2.
- </para>
- <para lang="en">
- nginx could not be built on platforms different from i386, amd64, sparc,
- and ppc;
- the bug had appeared in 0.3.2.
- </para>
- </change>
- </changes>
- <changes ver="0.3.6" date="2005-10-24">
- <change type="change">
- <para lang="ru">
- IMAP/POP3 прокси теперь не передаёт серверу авторизации пустой логин.
- </para>
- <para lang="en">
- now the IMAP/POP3 proxy do not send the empty login to authorization server.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива log_format поддерживает переменные в виде $name.
- </para>
- <para lang="en">
- the "log_format" supports the variables in the $name form.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если хотя бы в одном сервере не было описано ни одной директивы listen, то
- nginx не слушал на 80 порту;
- ошибка появилась в 0.3.3.
- </para>
- <para lang="en">
- if at least in one server was no the "listen" directive, then nginx did not
- listen on the 80 port;
- the bug had appeared in 0.3.3.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директиве proxy_pass отсутствовал URI, то всегда использовался порт 80.
- </para>
- <para lang="en">
- if the URI part is omitted in "proxy_pass" directive, the 80 port was
- always used.
- </para>
- </change>
- </changes>
- <changes ver="0.3.5" date="2005-10-21">
- <change type="bugfix">
- <para lang="ru">
- если логин IMAP/POP3 менялся сервером авторизации, то мог произойти
- segmentation fault;
- ошибка появилась в 0.2.2.
- </para>
- <para lang="en">
- the segmentation fault may occurred if the IMAP/POP3 login was changed
- by authorization server;
- the bug had appeared in 0.2.2.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- accept mutex не работал, все соединения обрабатывались одним рабочим процессом;
- ошибка появилась в 0.3.3.
- </para>
- <para lang="en">
- the accept mutex did not work and all connections were handled by one process;
- the bug had appeared in 0.3.3.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании метода rtsig и директивы timer_resolution
- не работали таймауты.
- </para>
- <para lang="en">
- the timeout did not work if the "rtsig" method and the "timer_resolution"
- directive were used.
- </para>
- </change>
- </changes>
- <changes ver="0.3.4" date="2005-10-19">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на Linux 2.4+ и MacOS X;
- ошибка появилась в 0.3.3.
- </para>
- <para lang="en">
- nginx could not be built on Linux 2.4+ and MacOS X;
- the bug had appeared in 0.3.3.
- </para>
- </change>
- </changes>
- <changes ver="0.3.3" date="2005-10-19">
- <change type="change">
- <para lang="ru">
- параметры "bl" и "af" директивы listen переименованы в "backlog"
- и "accept_filter".
- </para>
- <para lang="en">
- the "bl" and "af" parameters of the "listen" directive was renamed to
- the "backlog" and "accept_filter".
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметры "rcvbuf" и "sndbuf" в директиве listen.
- </para>
- <para lang="en">
- the "rcvbuf" and "sndbuf" parameters of the "listen" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- параметр лога $msec теперь не требует дополнительного системного
- вызова gettimeofday().
- </para>
- <para lang="en">
- the "$msec" log parameter does not require now the additional
- the gettimeofday() system call.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- ключ -t теперь проверяет директивы listen.
- </para>
- <para lang="en">
- the -t switch now tests the "listen" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в директиве listen был указан неверный адрес, то nginx после
- сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
- </para>
- <para lang="en">
- if the invalid address was specified in the "listen" directive, then
- after the -HUP signal nginx left an open socket in the CLOSED state.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- для индексных файлов, содержащих в имени переменную, мог неверно выставляться
- тип mime по умолчанию;
- ошибка появилась в 0.3.0.
- </para>
- <para lang="en">
- the mime type may be incorrectly set to default value for index file with
- variable in the name;
- the bug had appeared in 0.3.0.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива timer_resolution.
- </para>
- <para lang="en">
- the "timer_resolution" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр лога $upstream_response_time в миллисекундах.
- </para>
- <para lang="en">
- the millisecond "$upstream_response_time" log parameter.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- временный файл с телом запроса клиента теперь удаляется сразу после того,
- как клиенту передан заголовок ответа.
- </para>
- <para lang="en">
- a temporary file with client request body now is removed just after
- the response header was transferred to a client.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с OpenSSL 0.9.6.
- </para>
- <para lang="en">
- OpenSSL 0.9.6 compatibility.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- пути к файлам с SSL сертификатом и ключом не могли быть относительными.
- </para>
- <para lang="en">
- the SSL certificate and key file paths could not be relative.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива ssl_prefer_server_ciphers не работала для модуля ngx_imap_ssl_module.
- </para>
- <para lang="en">
- the "ssl_prefer_server_ciphers" directive did not work in
- the ngx_imap_ssl_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива ssl_protocols позволяла задать только один протокол.
- </para>
- <para lang="en">
- the "ssl_protocols" directive allowed to specify the single protocol only.
- </para>
- </change>
- </changes>
- <changes ver="0.3.2" date="2005-10-12">
- <change type="feature">
- <para lang="ru">
- поддержка Sun Studio 10 C compiler.
- </para>
- <para lang="en">
- the Sun Studio 10 C compiler support.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout,
- fastcgi_upstream_max_fails и fastcgi_upstream_fail_timeout.
- </para>
- <para lang="en">
- the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout",
- "fastcgi_upstream_max_fails", and "fastcgi_upstream_fail_timeout"
- directives.
- </para>
- </change>
- </changes>
- <changes ver="0.3.1" date="2005-10-10">
- <change type="bugfix">
- <para lang="ru">
- во время переполнения очереди сигналов при использовании метода rtsig
- происходил segmentation fault;
- ошибка появилась в 0.2.0.
- </para>
- <para lang="en">
- the segmentation fault occurred when the signal queue overflowed
- if the "rtsig" method was used;
- the bug had appeared in 0.2.0.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
- </para>
- <para lang="en">
- correct handling of the "\\", "\"", "\'", and "\$" pairs in SSI.
- </para>
- </change>
- </changes>
- <changes ver="0.3.0" date="2005-10-07">
- <change type="change">
- <para lang="ru">
- убрано десятидневное ограничение времени работы рабочего процесса.
- Ограничение было введено из-за переполнения миллисекундных таймеров.
- </para>
- <para lang="en">
- the 10-days live time limit of worker process was eliminated.
- The limit was introduced because of millisecond timers overflow.
- </para>
- </change>
- </changes>
- <changes ver="0.2.6" date="2005-10-05">
- <change type="change">
- <para lang="ru">
- с 60 до 10 секунд уменьшено время повторного обращения к бэкенду
- при использовании распределения нагрузки.
- </para>
- <para lang="en">
- while using load-balancing the time before the failed backend retry
- was decreased from 60 to 10 seconds.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива proxy_pass_unparsed_uri упразднена, оригинальный запрос теперь
- передаётся, если в директиве proxy_pass отсутствует URI.
- </para>
- <para lang="en">
- the "proxy_pass_unparsed_uri" was canceled, the original URI now passed,
- if the URI part is omitted in "proxy_pass" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива error_page поддерживает редиректы и позволяет более гибко
- менять код ошибки.
- </para>
- <para lang="en">
- the "error_page" directive supports redirects and allows more flexible
- to change an error code.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- в проксированных подзапросах теперь игнорируется переданный charset.
- </para>
- <para lang="en">
- the charset in the "Content-Type" header line now is ignored
- in proxied subrequests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если после изменения URI в блоке if для запроса не находилась
- новая конфигурация, то правила модуля ngx_http_rewrite_module выполнялись
- снова.
- </para>
- <para lang="en">
- if the URI was changed in the "if" block and request did not found
- new configuration, then the ngx_http_rewrite_module rules ran again.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если директива set устанавливала переменную модуля ngx_http_geo_module
- в какой-либо части конфигурации, то эта переменная не была доступна в
- других частях конфигурации и выдавалась ошибка "using uninitialized variable";
- ошибка появилась в 0.2.2.
- </para>
- <para lang="en">
- if the "set" directive set the ngx_http_geo_module variable in some
- configuration part, the this variable was not available in other
- configuration parts and the "using uninitialized variable" error was occurred;
- the bug had appeared in 0.2.2.
- </para>
- </change>
- </changes>
- <changes ver="0.2.5" date="2005-10-04">
- <change type="change">
- <para lang="ru">
- дублирующее значение переменной модуля ngx_http_geo_module теперь
- выдаёт предупреждение и изменяет старое значение.
- </para>
- <para lang="en">
- the duplicate value of the ngx_http_geo_module variable now causes
- the warning and changes old value.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssi_module поддерживает команду set.
- </para>
- <para lang="en">
- the ngx_http_ssi_module supports the "set" command.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssi_module поддерживает параметр file в команде include.
- </para>
- <para lang="en">
- the ngx_http_ssi_module supports the "file" parameter in the "include" command.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssi_module поддерживает подстановку значений переменных
- в выражениях команды if.
- </para>
- <para lang="en">
- the ngx_http_ssi_module supports the variable value substitutions in
- expressions of the "if" command.
- </para>
- </change>
- </changes>
- <changes ver="0.2.4" date="2005-10-03">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssi_module поддерживает выражения
- "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/"
- в команде if.
- </para>
- <para lang="en">
- the ngx_http_ssi_module supports
- "$var=text", "$var!=text", "$var=/text/", and "$var!=/text/" expressions
- in the "if" command.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при проксировании location без слэша в конце;
- ошибка появилась в 0.1.44.
- </para>
- <para lang="en">
- in proxying location without trailing slash;
- the bug had appeared in 0.1.44.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании метода rtsig мог произойти segmentation fault;
- ошибка появилась в 0.2.0.
- </para>
- <para lang="en">
- the segmentation fault may occurred if the "rtsig" method was used;
- the bug had appeared in 0.2.0.
- </para>
- </change>
- </changes>
- <changes ver="0.2.3" date="2005-09-30">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался без параметра --with-debug;
- ошибка появилась в 0.2.2.
- </para>
- <para lang="en">
- nginx could not be built without the --with-debug option;
- the bug had appeared in 0.2.2.
- </para>
- </change>
- </changes>
- <changes ver="0.2.2" date="2005-09-30">
- <change type="feature">
- <para lang="ru">
- команда config errmsg в модуле ngx_http_ssi_module.
- </para>
- <para lang="en">
- the "config errmsg" command of the ngx_http_ssi_module.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- переменные модуля ngx_http_geo_module можно переопределять директивой set.
- </para>
- <para lang="en">
- the ngx_http_geo_module variables can be overridden by the "set" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы ssl_protocols и ssl_prefer_server_ciphers модулей
- ngx_http_ssl_module и ngx_imap_ssl_module.
- </para>
- <para lang="en">
- the "ssl_protocols" and "ssl_prefer_server_ciphers" directives
- of the ngx_http_ssl_module and ngx_imap_ssl_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов;
- </para>
- <para lang="en">
- the ngx_http_autoindex_module did not show correctly the long file names;
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_autoindex_module теперь не показывает файлы,
- начинающиеся на точку.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module now do not show the files starting by dot.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если SSL handshake завершался с ошибкой, то это могло привести также
- к закрытию другого соединения.<br/>
- Спасибо Rob Mueller.
- </para>
- <para lang="en">
- if the SSL handshake failed then another connection may be closed too.<br/>
- Thanks to Rob Mueller.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- экспортные версии MSIE 5.x не могли соединиться по HTTPS.
- </para>
- <para lang="en">
- the export versions of MSIE 5.x could not connect via HTTPS.
- </para>
- </change>
- </changes>
- <changes ver="0.2.1" date="2005-09-23">
- <change type="bugfix">
- <para lang="ru">
- если все бэкенды, используемые для балансировки нагрузки, оказывались
- в нерабочем состоянии после одной ошибки, то nginx мог зациклится;
- ошибка появилась в 0.2.0.
- </para>
- <para lang="en">
- if all backend using in load-balancing failed after one error, then
- nginx may got caught in an endless loop;
- the bug had appeared in 0.2.0.
- </para>
- </change>
- </changes>
- <changes ver="0.2.0" date="2005-09-23">
- <change>
- <para lang="ru">
- Изменились имена pid-файлов, используемые во время обновления исполняемого
- файла. Ручное переименование теперь не нужно.
- Старый основной процесс добавляет к своему pid-файл суффикс ".oldbin"
- и запускает новый исполняемый файл.
- Новый основной процесс создаёт обычный pid-файл без суффикса ".newbin".
- Если новый основной процесс выходит, то старый процесс переименовывает свой
- pid-файл c суффиксом ".oldbin" в pid-файл без суффикса.
- При обновлении с версии 0.1.х до 0.2.0 нужно учитывать, что оба
- процесса—старый 0.1.x и новый 0.2.0—используют pid-файл
- без суффиксов.
- </para>
- <para lang="en">
- The pid-file names used during online upgrade was changed and now is not
- required a manual rename operation.
- The old master process adds the ".oldbin" suffix to its pid-file and
- executes a new binary file.
- The new master process creates usual pid-file without the ".newbin" suffix.
- If the master process exits, then old master process renames back
- its pid-file with the ".oldbin" suffix to the pid-file without suffix.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива worker_connections, новое название директивы connections;
- директива теперь задаёт максимальное число соединений,
- а не максимально возможный номер дескриптора для сокета.
- </para>
- <para lang="en">
- the "worker_connections" directive, new name of the "connections" directive;
- now the directive specifies maximum number of connections,
- but not maximum socket descriptor number.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- SSL поддерживает кэширование сессий в пределах одного рабочего процесса.
- </para>
- <para lang="en">
- SSL supports the session cache inside one worker process.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива satisfy_any.
- </para>
- <para lang="en">
- the "satisfy_any" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- модули ngx_http_access_module и ngx_http_auth_basic_module не работают
- для подзапросов.
- </para>
- <para lang="en">
- the ngx_http_access_module and ngx_http_auth_basic_module do not run
- for subrequests.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы worker_rlimit_nofile и worker_rlimit_sigpending.
- </para>
- <para lang="en">
- the "worker_rlimit_nofile" and "worker_rlimit_sigpending" directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если все бэкенды, используемые для балансировки нагрузки, оказывались
- в нерабочем состоянии после одной ошибки, то nginx не обращался к ним
- в течение 60 секунд.
- </para>
- <para lang="en">
- if all backend using in load-balancing failed after one error, then
- nginx did not try do connect to them during 60 seconds.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в парсинге аргументов IMAP/POP3 команд.<br/>
- Спасибо Rob Mueller.
- </para>
- <para lang="en">
- in IMAP/POP3 command argument parsing.<br/>
- Thanks to Rob Mueller.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании SSL в IMAP/POP3 прокси.
- </para>
- <para lang="en">
- errors while using SSL in IMAP/POP3 proxy.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании SSI и сжатия.
- </para>
- <para lang="en">
- errors while using SSI and gzipping.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в ответах 304 не добавлялись строки заголовка ответа "Expires" и
- "Cache-Control".<br/>
- Спасибо Александру Кукушкину.
- </para>
- <para lang="en">
- the "Expires" and "Cache-Control" header lines were omitted
- from the 304 responses.<br/>
- Thanks to Alexandr Kukushkin.
- </para>
- </change>
- </changes>
- <changes ver="0.1.45" date="2005-09-08">
- <change type="change">
- <para lang="ru">
- директива ssl_engine упразднена в модуле ngx_http_ssl_module и
- перенесена на глобальный уровень.
- </para>
- <para lang="en">
- the "ssl_engine" directive was canceled in the ngx_http_ssl_module
- and now is introduced at global level.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ответы с подзапросами, включённые с помощью SSI, не передавались
- через SSL соединение.
- </para>
- <para lang="en">
- the responses with SSI subrequests did not transferred via SSL connection.
- </para>
- </change>
- <change>
- <para lang="ru">
- Разные исправления в IMAP/POP3 прокси.
- </para>
- <para lang="en">
- Various bug fixes in the IMAP/POP3 proxy.
- </para>
- </change>
- </changes>
- <changes ver="0.1.44" date="2005-09-06">
- <change type="feature">
- <para lang="ru">
- IMAP/POP3 прокси поддерживает SSL.
- </para>
- <para lang="en">
- the IMAP/POP3 proxy supports SSL.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_timeout модуля ngx_imap_proxy_module.
- </para>
- <para lang="en">
- the "proxy_timeout" directive of the ngx_imap_proxy_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива userid_mark.
- </para>
- <para lang="en">
- the "userid_mark" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- значение переменной $remote_user определяется независимо от того,
- используется ли авторизация или нет.
- </para>
- <para lang="en">
- the $remote_user variable value is determined independently of
- authorization use.
- </para>
- </change>
- </changes>
- <changes ver="0.1.43" date="2005-08-30">
- <change type="feature">
- <para lang="ru">
- listen(2) backlog в директиве listen можно менять по сигналу -HUP.
- </para>
- <para lang="en">
- the listen(2) backlog in the "listen" directive
- can be changed using the -HUP signal.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- скрипт geo2nginx.pl добавлен в contrib.
- </para>
- <para lang="en">
- the geo2nginx.pl script was added to contrib.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- параметры FastCGI с пустым значениями теперь передаются серверу.
- </para>
- <para lang="en">
- the FastCGI parameters with the empty values now are passed to a server.
- </para>
- </change>
- <!--
- <change type="bugfix">
- <para lang="ru">
- при ошибках в работе с проксированным сервером или FastCGI сервером
- мог произойти segmentation fault;
- в режиме прокси ошибка появилась в 0.1.29.
- </para>
- <para lang="en">
- the segmentation fault may occurred if there were errors while
- working with proxied or FastCGI server;
- in the proxied mode the bug had appeared in 0.1.29.
- </para>
- </change>
- -->
- <change type="bugfix">
- <para lang="ru">
- если в ответе проксированного сервера или FastCGI сервера была строка
- "Cache-Control", то при использовании директивы expires происходил
- segmentation fault или рабочий процесс мог зациклится;
- в режиме прокси ошибка появилась в 0.1.29.
- </para>
- <para lang="en">
- the segmentation fault occurred or the worker process may got caught
- in an endless loop if the proxied or FastCGI server sent the "Cache-Control"
- header line and the "expires" directive was used;
- in the proxied mode the bug had appeared in 0.1.29.
- </para>
- </change>
- </changes>
- <changes ver="0.1.42" date="2005-08-23">
- <change type="bugfix">
- <para lang="ru">
- если URI запроса получался нулевой длины после обработки модулем
- ngx_http_rewrite_module, то в модуле ngx_http_proxy_module происходил
- segmentation fault или bus error.
- </para>
- <para lang="en">
- if the request URI had a zero length after the processing in
- the ngx_http_proxy_module, then the segmentation fault or bus error occurred
- in the ngx_http_proxy_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива limit_rate не работала внутри блока if;
- ошибка появилась в 0.1.38.
- </para>
- <para lang="en">
- the "limit_rate" directive did not work inside the "if" block;
- the bug had appeared in 0.1.38.
- </para>
- </change>
- </changes>
- <changes ver="0.1.41" date="2005-07-25">
- <change type="bugfix">
- <para lang="ru">
- если переменная использовалась в файле конфигурации,
- то она не могла использоваться в SSI.
- </para>
- <para lang="en">
- if the variable was used in the configuration file,
- then it can not be used in SSI.
- </para>
- </change>
- </changes>
- <changes ver="0.1.40" date="2005-07-22">
- <change type="bugfix">
- <para lang="ru">
- если клиент слал очень длинную строку заголовка, то в логе не помещалась
- информация, связанная с этим запросом.
- </para>
- <para lang="en">
- if a client sent too long header line, then the request information
- did not logged in the error log.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании "X-Accel-Redirect" не передавалась строка "Set-Cookie";
- ошибка появилась в 0.1.39.
- </para>
- <para lang="en">
- the "Set-Cookie" header line was not transferred when the "X-Accel-Redirect"
- was used;
- the bug had appeared in 0.1.39.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании "X-Accel-Redirect" не передавалась строка
- "Content-Disposition".
- </para>
- <para lang="en">
- the "Content-Disposition" header line was not transferred when
- the "X-Accel-Redirect" was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- по сигналу SIGQUIT основной процесс не закрывал сокеты, на которых он слушал.
- </para>
- <para lang="en">
- the master process did not close the listen socket on the SIGQUIT signal.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- после обновления исполняемого файла на лету на Linux и Solaris
- название процесса в команде ps становилось короче.
- </para>
- <para lang="en">
- after on-line upgrade on Linux and Solaris the process name
- became shorter in the "ps" command.
- </para>
- </change>
- </changes>
- <changes ver="0.1.39" date="2005-07-14">
- <change>
- <para lang="ru">
- Изменения в модуле ngx_http_charset_module:
- директива default_charset упразднена;
- директива charset задаёт кодировку ответа;
- директива source_charset задаёт только исходную кодировку.
- </para>
- <para lang="en">
- The changes in the ngx_http_charset_module:
- the "default_charset" directive was canceled;
- the "charset" directive sets the response charset;
- the "source_charset" directive sets the source charset only.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при перенаправлении ошибки 401, полученной от бэкенда, не передавалась
- строка заголовка "WWW-Authenticate".
- </para>
- <para lang="en">
- the backend "WWW-Authenticate" header line did not transferred while
- the 401 response code redirecting.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модули ngx_http_proxy_module и ngx_http_fastcgi_module могли закрыть
- соединение до того, как что-нибудь было передано клиенту;
- ошибка появилась в 0.1.38.
- </para>
- <para lang="en">
- the ngx_http_proxy_module and ngx_http_fastcgi_module may close
- a connection before anything was transferred to a client;
- the bug had appeared in 0.1.38.
- </para>
- </change>
- <change type="workaround">
- <para lang="ru">
- обработка ошибки инициализации в crypt_r() в Linux glibc.
- </para>
- <para lang="en">
- the Linux glibc crypt_r() initialization bug.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_ssi_module не поддерживал относительные URI в
- команде include virtual.
- </para>
- <para lang="en">
- the ngx_http_ssi_module did not support the relative URI in
- the "include virtual" command.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в строке заголовка ответа бэкенда была строка "Location",
- которую nginx не должен был изменять, то в ответе передавалось тело 500 ошибки;
- ошибка появилась в 0.1.29.
- </para>
- <para lang="en">
- if the backend response had the "Location" header line and nginx
- should not rewrite this line, then the 500 code response body was transferred;
- the bug had appeared in 0.1.29.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- некоторые директивы модулей ngx_http_proxy_module и ngx_http_fastcgi_module
- не наследовались с уровня server на уровень location;
- ошибка появилась в 0.1.29.
- </para>
- <para lang="en">
- some directives of the ngx_http_proxy_module and ngx_http_fastcgi_module
- were not inherited from the server to the location level;
- the bug had appeared in 0.1.29.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_ssl_module не поддерживал цепочки сертификатов.
- </para>
- <para lang="en">
- the ngx_http_ssl_module did not support the certificate chain.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов;
- ошибка появилась в 0.1.38.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module did not show correctly the long file names;
- the bug had appeared in 0.1.38.
- </para>
- </change>
- <change>
- <para lang="ru">
- Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на стадии login.
- </para>
- <para lang="en">
- Bugfixes in IMAP/POP3 proxy in interaction with a backend at the login state.
- </para>
- </change>
- </changes>
- <changes ver="0.1.38" date="2005-07-08">
- <change type="feature">
- <para lang="ru">
- директива limit_rate поддерживается в режиме прокси и FastCGI.
- </para>
- <para lang="en">
- the "limit_rate" directive is supported in proxy and FastCGI mode.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Limit-Rate"
- в ответе бэкенда.
- </para>
- <para lang="en">
- the "X-Accel-Limit-Rate" response header line is supported in proxy
- and FastCGI mode.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива break.
- </para>
- <para lang="en">
- the "break" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива log_not_found.
- </para>
- <para lang="en">
- the "log_not_found" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при перенаправлении запроса с помощью строки заголовка "X-Accel-Redirect"
- не изменялся код ответа.
- </para>
- <para lang="en">
- the response status code was not changed when request was redirected
- by the ""X-Accel-Redirect" header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменные, установленные директивой set не могли использоваться в SSI.
- </para>
- <para lang="en">
- the variables set by the "set" directive could not be used in SSI.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при включении в SSI более одного удалённого подзапроса
- мог произойти segmentation fault.
- </para>
- <para lang="en">
- the segmentation fault may occurred if the SSI page has more than one
- remote subrequest.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если статусная строка в ответе бэкенда передавалась в двух пакетах, то
- nginx считал ответ неверным;
- ошибка появилась в 0.1.29.
- </para>
- <para lang="en">
- nginx treated the backend response as invalid if the status line in the
- header was transferred in two packets;
- the bug had appeared in 0.1.29.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssi_types.
- </para>
- <para lang="en">
- the "ssi_types" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива autoindex_exact_size.
- </para>
- <para lang="en">
- the "autoindex_exact_size" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_autoindex_module не поддерживал длинные имена файлов в UTF-8.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module did not support the long file names in UTF-8.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- IMAP/POP3 прокси.
- </para>
- <para lang="en">
- the IMAP/POP3 proxy.
- </para>
- </change>
- </changes>
- <changes ver="0.1.37" date="2005-06-23">
- <change type="change">
- <para lang="ru">
- в конце файла nginx.pid теперь добавляется "\n".
- </para>
- <para lang="en">
- now the "\n" is added to the end of the "nginx.pid" file.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при включении большого количества вставок или нескольких больших вставок
- с помощью SSI ответ мог передаваться не полностью.
- </para>
- <para lang="en">
- the responses may be transferred not completely,
- if many parts or the big parts were included by SSI.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если все бэкенды возвращали ответ 404, то при использовании параметра http_404
- в директивах proxy_next_upstream или fastcgi_next_upstream, nginx
- начинал запрашивать все бэкенды снова.
- </para>
- <para lang="en">
- if all backends had returned the 404 response and the "http_404" parameter of
- the "proxy_next_upstream" or "fastcgi_next_upstream" directives was used,
- then nginx started to request all backends again.
- </para>
- </change>
- </changes>
- <changes ver="0.1.36" date="2005-06-15">
- <change type="change">
- <para lang="ru">
- если в заголовке запроса есть дублирующиеся строки "Host", "Connection",
- "Content-Length" и "Authorization", то nginx теперь выдаёт ошибку 400.
- </para>
- <para lang="en">
- if the request header has duplicate the "Host", "Connection", "Content-Length",
- or "Authorization" lines, then nginx now returns the 400 error.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива post_accept_timeout упразднена.
- </para>
- <para lang="en">
- the "post_accept_timeout" directive was canceled.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметры default, af=, bl=, deferred и bind в директиве listen.
- </para>
- <para lang="en">
- the "default", "af=", "bl=", "deferred", and "bind" parameters
- of the "listen" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка accept фильтров во FreeBSD.
- </para>
- <para lang="en">
- the FreeBSD accept filters support.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка TCP_DEFER_ACCEPT в Linux.
- </para>
- <para lang="en">
- the Linux TCP_DEFER_ACCEPT support.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_autoindex_module не поддерживал имена файлов в UTF-8.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module did not support the file names in UTF-8.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- после добавления новый лог-файл ротация этого лога по сигналу -USR1
- выполнялась, только если переконфигурировать nginx два раза по сигналу -HUP.
- </para>
- <para lang="en">
- the new log file can be rotated by the -USR1 signal only if
- the reconfiguration by the -HUP signal was made twice.
- </para>
- </change>
- </changes>
- <changes ver="0.1.35" date="2005-06-07">
- <change type="feature">
- <para lang="ru">
- директива working_directory.
- </para>
- <para lang="en">
- the "working_directory" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива port_in_redirect.
- </para>
- <para lang="en">
- the "port_in_redirect" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если заголовок ответа бэкенда не помещался в один пакет, то
- происходил segmentation fault;
- ошибка появилась в 0.1.29.
- </para>
- <para lang="en">
- the segmentation fault was occurred if the backend response header was in
- several packets;
- the bug had appeared in 0.1.29.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если было сконфигурировано более 10 серверов или в сервере не описана
- директива "listen",
- то при запуске мог произойти segmentation fault.
- </para>
- <para lang="en">
- if more than 10 servers were configured or some server did not use the
- "listen" directive, then the segmentation fault was occurred on the start.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если ответ не помещался во временный файл,
- то мог произойти segmentation fault.
- </para>
- <para lang="en">
- the segmentation fault might occur if the response was bigger than
- the temporary file.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx возвращал ошибку 400 на запросы вида
- <nobr>"GET http://www.domain.com/uri HTTP/1.0"</nobr>;
- ошибка появилась в 0.1.28.
- </para>
- <para lang="en">
- nginx returned the 400 response on requests like
- <nobr>"GET http://www.domain.com/uri HTTP/1.0"</nobr>;
- the bug had appeared in 0.1.28.
- </para>
- </change>
- </changes>
- <changes ver="0.1.34" date="2005-05-26">
- <change type="bugfix">
- <para lang="ru">
- при включении больших ответов с помощью SSI рабочий процесс мог зациклиться.
- </para>
- <para lang="en">
- the worker process may got caught in an endless loop if the big response
- part were include by SSI.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- переменные, устанавливаемые директивой "set", не были доступны в SSI.
- </para>
- <para lang="en">
- the variables set by the "set" directive were not available in SSI.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива autoindex_localtime.
- </para>
- <para lang="en">
- the "autoindex_localtime" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- пустое значение в директиве proxy_set_header запрещает передачу заголовка.
- </para>
- <para lang="en">
- the empty value of the "proxy_set_header" directive forbids the client
- request header line passing.
- </para>
- </change>
- </changes>
- <changes ver="0.1.33" date="2005-05-23">
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался с параметром --without-pcre;
- ошибка появилась в 0.1.29.
- </para>
- <para lang="en">
- nginx could not be built with the --without-pcre parameter;
- the bug had appeared in 0.1.29.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- 3, 5, 7 и 8 директив proxy_set_header на одном уровне вызывали
- bus fault при запуске.
- </para>
- <para lang="en">
- 3, 4, 7, and 8 the "proxy_set_header" directives in one level cause
- the bus fault on start up.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в редиректах внутри HTTPS сервера был указан протокол HTTP.
- </para>
- <para lang="en">
- the HTTP protocol was specified in the HTTPS redirects.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если директива rewrite использовала выделения внутри директивы if, то
- возвращалась ошибка 500.
- </para>
- <para lang="en">
- if the "rewrite" directive used the captures inside the "if" directive, then
- the 500 error code was returned.
- </para>
- </change>
- </changes>
- <changes ver="0.1.32" date="2005-05-19">
- <change type="bugfix">
- <para lang="ru">
- в редиректах, выдаваемых с помощью директивы rewrite, не передавались аргументы;
- ошибка появилась в 0.1.29.
- </para>
- <para lang="en">
- the arguments were omitted in the redirects, issued by the "rewrite" directive;
- the bug had appeared in 0.1.29.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива if поддерживает выделения в регулярных выражениях.
- </para>
- <para lang="en">
- the "if" directive supports the captures in regular expressions.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива set поддерживает переменные и выделения из регулярных выражений.
- </para>
- <para lang="en">
- the "set" directive supports the variables and the captures of regular
- expressions.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Redirect"
- в ответе бэкенда.
- </para>
- <para lang="en">
- the "X-Accel-Redirect" response header line is supported in proxy and FastCGI
- mode.
- </para>
- </change>
- </changes>
- <changes ver="0.1.31" date="2005-05-16">
- <change type="bugfix">
- <para lang="ru">
- при использовании SSL ответ мог передаваться не до конца.
- </para>
- <para lang="en">
- the response encrypted by SSL may not transferred complete.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при обработке SSI в ответе, полученного от FastCGI-сервера.
- </para>
- <para lang="en">
- errors while processing FastCGI response by SSI.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки при использовании SSI и сжатия.
- </para>
- <para lang="en">
- errors while using SSI and gzipping.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- редирект с кодом 301 передавался без тела ответа;
- ошибка появилась в 0.1.30.
- </para>
- <para lang="en">
- the redirect with the 301 code was transferred without response body;
- the bug had appeared in 0.1.30.
- </para>
- </change>
- </changes>
- <changes ver="0.1.30" date="2005-05-14">
- <change type="bugfix">
- <para lang="ru">
- при использовании SSI рабочий процесс мог зациклиться.
- </para>
- <para lang="en">
- the worker process may got caught in an endless loop if the SSI was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании SSL ответ мог передаваться не до конца.
- </para>
- <para lang="en">
- the response encrypted by SSL may not transferred complete.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если длина части ответа, полученного за один раз от проксируемого или
- FastCGI сервера была равна 500 байт, то nginx возвращал код ответа 500;
- в режиме прокси ошибка появилась только в 0.1.29.
- </para>
- <para lang="en">
- if the length of the response part received at once from proxied
- or FastCGI server was equal to 500, then nginx returns the 500 response code;
- in proxy mode the bug had appeared in 0.1.29 only.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не считал неверными директивы с 8-ю или 9-ю параметрами.
- </para>
- <para lang="en">
- nginx did not consider the directives with 8 or 9 parameters as invalid.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива return может возвращать код ответа 204.
- </para>
- <para lang="en">
- the "return" directive can return the 204 response code.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ignore_invalid_headers.
- </para>
- <para lang="en">
- the "ignore_invalid_headers" directive.
- </para>
- </change>
- </changes>
- <changes ver="0.1.29" date="2005-05-12">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssi_module поддерживает команду include virtual.
- </para>
- <para lang="en">
- the ngx_http_ssi_module supports "include virtual" command.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssi_module поддерживает условную команду вида
- 'if expr="$NAME"' и команды else и endif.
- Допускается только один уровень вложенности.
- </para>
- <para lang="en">
- the ngx_http_ssi_module supports the condition command like
- 'if expr="$NAME"' and "else" and "endif" commands.
- Only one nested level is supported.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssi_module поддерживает две переменные DATE_LOCAL и DATE_GMT
- и команду config timefmt.
- </para>
- <para lang="en">
- the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT variables
- and "config timefmt" command.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива ssi_ignore_recycled_buffers.
- </para>
- <para lang="en">
- the "ssi_ignore_recycled_buffers" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если переменная QUERY_STRING не была определена, то в команде echo
- не ставилось значение по умолчанию.
- </para>
- <para lang="en">
- the "echo" command did not show the default value for the empty QUERY_STRING
- variable.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- модуль ngx_http_proxy_module полностью переписан.
- </para>
- <para lang="en">
- the ngx_http_proxy_module was rewritten.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_redirect, proxy_pass_request_headers,
- proxy_pass_request_body и proxy_method.
- </para>
- <para lang="en">
- the "proxy_redirect", "proxy_pass_request_headers",
- "proxy_pass_request_body", and "proxy_method" directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_set_header.
- Директива proxy_x_var упразднена и должна быть заменена директивой
- proxy_set_header.
- </para>
- <para lang="en">
- the "proxy_set_header" directive.
- The "proxy_x_var" was canceled and must be replaced with the proxy_set_header
- directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива proxy_preserve_host упразднена и должна быть заменена директивами
- "proxy_set_header Host $host" и "proxy_redirect off"
- или директивой <nobr>"proxy_set_header Host $host:$proxy_port"</nobr>
- и соответствующими ей директивами proxy_redirect.
- </para>
- <para lang="en">
- the "proxy_preserve_host" is canceled and must be replaced with
- the "proxy_set_header Host $host" and the "proxy_redirect off" directives,
- the <nobr>"proxy_set_header Host $host:$proxy_port" directive</nobr>
- and the appropriate proxy_redirect directives.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива proxy_set_x_real_ip упразднена и должна быть заменена директивой
- "proxy_set_header X-Real-IP $remote_addr".
- </para>
- <para lang="en">
- the "proxy_set_x_real_ip" is canceled and must be replaced with
- the "proxy_set_header X-Real-IP $remote_addr" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива proxy_add_x_forwarded_for упразднена и должна быть заменена
- директивой
- <nobr>"proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".</nobr>
- </para>
- <para lang="en">
- the "proxy_add_x_forwarded_for" is canceled and must be replaced with
- <nobr>the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for"</nobr>
- directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директива proxy_set_x_url упразднена и должна быть заменена директивой
- <nobr>"proxy_set_header X-URL http://$host:$server_port$request_uri".</nobr>
- </para>
- <para lang="en">
- the "proxy_set_x_url" is canceled and must be replaced with
- the "proxy_set_header X-URL http://$host:$server_port$request_uri"
- directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива fastcgi_param.
- </para>
- <para lang="en">
- the "fastcgi_param" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- директивы fastcgi_root, fastcgi_set_var и fastcgi_params упразднены
- и должны быть замены директивами fastcgi_param.
- </para>
- <para lang="en">
- the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" directive
- are canceled and must be replaced with the fastcgi_param directives.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива index может использовать переменные.
- </para>
- <para lang="en">
- the "index" directive can use the variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива index может быть указана на уровне http и server.
- </para>
- <para lang="en">
- the "index" directive can be used at http and server levels.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- только последний параметр в директиве index может быть абсолютным.
- </para>
- <para lang="en">
- the last index only in the "index" directive can be absolute.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- в директиве rewrite могут использоваться переменные.
- </para>
- <para lang="en">
- the "rewrite" directive can use the variables.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива internal.
- </para>
- <para lang="en">
- the "internal" directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR,
- SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME,
- REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
- </para>
- <para lang="en">
- the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR,
- SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME,
- REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- nginx теперь передаёт неверные строки в заголовках запроса клиента и
- ответа бэкенда.
- </para>
- <para lang="en">
- nginx now passes the invalid lines in a client request headers
- or a backend response header.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если бэкенд долго не передавал ответ и send_timeout был меньше, чем
- proxy_read_timeout, то клиенту возвращался ответ 408.
- </para>
- <para lang="en">
- if the backend did not transfer response for a long time and
- the "send_timeout" was less than "proxy_read_timeout", then nginx
- returned the 408 response.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если бэкенд передавал неверную строку в заголовке ответа, то происходил
- segmentation fault;
- ошибка появилась в 0.1.26.
- </para>
- <para lang="en">
- the segmentation fault was occurred if the backend sent an invalid line
- in response header;
- the bug had appeared in 0.1.26.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании отказоустойчивой конфигурации в FastCGI мог
- происходить segmentation fault.
- </para>
- <para lang="en">
- the segmentation fault may occurred in FastCGI fault tolerance configuration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива expires не удаляла уже установленные строки заголовка
- "Expires" и "Cache-Control".
- </para>
- <para lang="en">
- the "expires" directive did not remove the previous "Expires" and
- "Cache-Control" headers.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не учитывал завершающую точку в строке заголовка запроса "Host".
- </para>
- <para lang="en">
- nginx did not take into account trailing dot in "Host" header line.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_auth_module не работал на Linux.
- </para>
- <para lang="en">
- the ngx_http_auth_module did not work under Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива rewrite неверно работала, если в запросе присутствовали аргументы.
- </para>
- <para lang="en">
- the rewrite directive worked incorrectly, if the arguments were in a request.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на MacOS X.
- </para>
- <para lang="en">
- nginx could not be built on MacOS X.
- </para>
- </change>
- </changes>
- <changes ver="0.1.28" date="2005-04-08">
- <change type="bugfix">
- <para lang="ru">
- при проксировании больших файлов nginx сильно нагружал процессор.
- </para>
- <para lang="en">
- nginx hogs CPU while proxying the huge files.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался gcc 4.0 на Linux.
- </para>
- <para lang="en">
- nginx could not be built by gcc 4.0 on Linux.
- </para>
- </change>
- </changes>
- <changes ver="0.1.27" date="2005-03-28">
- <change type="feature">
- <para lang="ru">
- параметр blocked в директиве valid_referers.
- </para>
- <para lang="en">
- the "blocked" parameter of the "valid_referers" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- ошибки обработки заголовка запроса теперь записываются на уровне
- info, в лог также записывается имя сервера и строки заголовка
- запроса "Host" и "Referer".
- </para>
- <para lang="en">
- the errors while handling the request header now logged at "info" level.
- The server name and the "Host" and "Referer" header lines also logged.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- при записи ошибок в лог записывается также строка заголовка запроса "Host".
- </para>
- <para lang="en">
- the "Host" header line is also logged in error log.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_pass_unparsed_uri.
- Специальная обработка символов "://" в URI, введённая в версии 0.1.11,
- теперь упразднена.
- </para>
- <para lang="en">
- the proxy_pass_unparsed_uri directive.
- The special handling of the "://" symbols in URI, appeared in 0.1.11 version,
- now is canceled.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на FreeBSD и Linux, если был указан параметр конфигурации
- --without-ngx_http_auth_basic_module.
- </para>
- <para lang="en">
- nginx could not be built on FreeBSD and Linux, if the
- --without-ngx_http_auth_basic_module configuration parameter was used.
- </para>
- </change>
- </changes>
- <changes ver="0.1.26" date="2005-03-22">
- <change type="change">
- <para lang="ru">
- неверные строки заголовка, переданные клиентом, теперь игнорируется и
- записываются в error_log на уровне info.
- </para>
- <para lang="en">
- the invalid client header lines are now ignored and logged at the info level.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- при записи ошибок в лог записывается также имя сервера, при обращении
- к которому произошла ошибка.
- </para>
- <para lang="en">
- the server name is also logged in error log.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_auth_basic_module и директивы auth_basic и
- auth_basic_user_file.
- </para>
- <para lang="en">
- the ngx_http_auth_basic_module module and the auth_basic and
- auth_basic_user_file directives.
- </para>
- </change>
- </changes>
- <changes ver="0.1.25" date="2005-03-19">
- <change type="bugfix">
- <para lang="ru">
- nginx не работал на Linux parisc.
- </para>
- <para lang="en">
- nginx did run on Linux parisc.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- nginx теперь не запускается под FreeBSD, если значение
- sysctl kern.ipc.somaxconn слишком большое.
- </para>
- <para lang="en">
- nginx now does not start under FreeBSD if the sysctl kern.ipc.somaxconn
- value is too big.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если модуль ngx_http_index_module делал внутреннее перенаправление запроса
- в модули ngx_http_proxy_module или ngx_http_fastcgi_module, то файл индекса
- не закрывался после обслуживания запроса.
- </para>
- <para lang="en">
- if a request was internally redirected by the ngx_http_index_module
- module to the ngx_http_proxy_module or ngx_http_fastcgi_module modules,
- then the index file was not closed after request completion.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_pass может использоваться в location, заданных регулярным
- выражением.
- </para>
- <para lang="en">
- the "proxy_pass" can be used in location with regular expression.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_rewrite_filter_module поддерживает условия вида
- "if ($HTTP_USER_AGENT ~ MSIE)".
- </para>
- <para lang="en">
- the ngx_http_rewrite_filter_module module supports the condition like
- "if ($HTTP_USER_AGENT ~ MSIE)".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx очень медленно запускался при большом количестве адресов и
- использовании текстовых значений в директиве geo.
- </para>
- <para lang="en">
- nginx started too slow if the large number of addresses and text values
- were used in the "geo" directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- имя переменной в директиве geo нужно указывать, как $name.
- Прежний вариант без "$" пока работает, но вскоре будет убран.
- </para>
- <para lang="en">
- a variable name must be declared as "$name" in the "geo" directive.
- The previous variant without "$" is still supported, but will be removed soon.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр лога "%{VARIABLE}v".
- </para>
- <para lang="en">
- the "%{VARIABLE}v" logging parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива "set $name value".
- </para>
- <para lang="en">
- the "set $name value" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- совместимость с gcc 4.0.
- </para>
- <para lang="en">
- gcc 4.0 compatibility.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр автоконфигурации --with-openssl-opt=OPTIONS.
- </para>
- <para lang="en">
- the --with-openssl-opt=OPTIONS autoconfiguration directive.
- </para>
- </change>
- </changes>
- <changes ver="0.1.24" date="2005-03-04">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssi_filter_module поддерживает переменные
- QUERY_STRING и DOCUMENT_URI.
- </para>
- <para lang="en">
- the ngx_http_ssi_filter_module supports the QUERY_STRING and DOCUMENT_URI
- variables.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_autoindex_module мог выдавать ответ 404
- на существующий каталог, если этот каталог был указан как alias.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module may some times return the 404 response
- for existent directory, if this directory was used in "alias" directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_ssi_filter_module неправильно работал при больших
- ответах.
- </para>
- <para lang="en">
- the ngx_http_ssi_filter_module ran incorrectly for large responses.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- отсутствие строки заголовка "Referer" всегда считалось правильным referrer'ом.
- </para>
- <para lang="en">
- the lack of the "Referer" header line was always accounted as valid referrer.
- </para>
- </change>
- </changes>
- <changes ver="0.1.23" date="2005-03-01">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_ssi_filter_module и
- директивы ssi, ssi_silent_errors и ssi_min_file_chunk.
- Поддерживаются команды 'echo var="HTTP_..." default=""' и
- 'echo var="REMOTE_ADDR"'.
- </para>
- <para lang="en">
- the ngx_http_ssi_filter_module and
- the ssi, ssi_silent_errors, and ssi_min_file_chunk directives.
- The 'echo var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands
- are supported.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- параметр лога %request_time.
- </para>
- <para lang="en">
- the %request_time log parameter.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- если запрос пришёл без строки заголовка "Host", то директива
- proxy_preserve_host устанавливает в качестве этого заголовка первое имя
- сервера из директивы server_name.
- </para>
- <para lang="en">
- if the request has no the "Host" header line, then the "proxy_preserve_host"
- directive set this header line to the first server name of the "server_name"
- directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
- ошибка появилась в 0.1.22.
- </para>
- <para lang="en">
- nginx could not be built on platforms different from i386, amd64, sparc,
- and ppc;
- the bug had appeared in 0.1.22.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_autoindex_module теперь показывает информацию не о
- символическом линке, а о файле или каталоге, на который он указывает.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module now shows the information not about the symlink,
- but about file or directory it points to.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если клиенту ничего не передавалось, то параметр %apache_length
- записывал в лог отрицательную длину заголовка ответа.
- </para>
- <para lang="en">
- the %apache_length parameter logged the negative length
- of the response header if the no response was transferred to a client.
- </para>
- </change>
- </changes>
- <changes ver="0.1.22" date="2005-02-22">
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_stub_status_module показывал неверную статистику
- для обработанных соединений, если использовалось проксирование
- или FastCGI-сервер.
- </para>
- <para lang="en">
- the ngx_http_stub_status_module showed incorrect handled connections
- statistics if the proxying or FastCGI server were used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на Linux и Solaris установочные пути были неверно заключены в кавычки;
- ошибка появилась в 0.1.21.
- </para>
- <para lang="en">
- the installation paths were incorrectly quoted on Linux and Solaris;
- the bug had appeared in 0.1.21.
- </para>
- </change>
- </changes>
- <changes ver="0.1.21" date="2005-02-22">
- <change type="bugfix">
- <para lang="ru">
- модуль ngx_http_stub_status_module показывал неверную статистику
- при использовании метода rtsig или при использовании нескольких
- рабочих процессов на SMP машине.
- </para>
- <para lang="en">
- the ngx_http_stub_status_module showed incorrect statistics
- if "rtsig" method was used or if several worker process ran on SMP.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался компилятором icc под Линуксом или
- если библиотека zlib-1.2.x собиралась из исходных текстов.
- </para>
- <para lang="en">
- nginx could not be built by the icc compiler on Linux or
- if the zlib-1.2.x library was building from sources.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался под NetBSD 2.0.
- </para>
- <para lang="en">
- nginx could not be built on NetBSD 2.0.
- </para>
- </change>
- </changes>
- <changes ver="0.1.20" date="2005-02-17">
- <change type="feature">
- <para lang="ru">
- новые параметры script_filename и remote_port в директиве fastcgi_params.
- </para>
- <para lang="en">
- the new "script_filename" and "remote_port" parameters
- of the fastcgi_params directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- неправильно обрабатывался поток stderr от FastCGI-сервера.
- </para>
- <para lang="en">
- the FastCGI stderr stream was handled incorrectly.
- </para>
- </change>
- </changes>
- <changes ver="0.1.19" date="2005-02-16">
- <change type="bugfix">
- <para lang="ru">
- если в запросе есть нуль, то для локальных запросов теперь возвращается
- ошибка 404.
- </para>
- <para lang="en">
- now, if request contains the zero, then the 404 error is returned
- for the local requests.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался под NetBSD 2.0.
- </para>
- <para lang="en">
- nginx could not be built on NetBSD 2.0.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- во время чтения тела запроса клиента в SSL соединении мог произойти таймаут.
- </para>
- <para lang="en">
- the timeout may occur while reading of the client request body
- via SSL connections.
- </para>
- </change>
- </changes>
- <changes ver="0.1.18" date="2005-02-09">
- <change type="workaround">
- <para lang="ru">
- для совместимости с Solaris 10 в директивах devpoll_events и devpoll_changes
- значения по умолчанию уменьшены с 512 до 32.
- </para>
- <para lang="en">
- the default values of the devpoll_events and the devpoll_changes directives
- changed from 512 to 32 to be compatible with Solaris 10.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директивы proxy_set_x_var и fastcgi_set_var не наследовались.
- </para>
- <para lang="en">
- the proxy_set_x_var and fastcgi_set_var directives were not inherited.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в директиве rewrite, возвращающей редирект, аргументы присоединялись
- к URI через символ "&" вместо "?".
- </para>
- <para lang="en">
- in a redirect rewrite directive arguments were concatenated with URI
- by an "&" rather than a "?".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- строки для модуля ngx_http_geo_module без символа ";" во включённом файле
- игнорировались.
- </para>
- <para lang="en">
- the lines without trailing ";" in the file being included
- by the ngx_http_geo_module were silently ignored.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_stub_status_module.
- </para>
- <para lang="en">
- the ngx_http_stub_status_module.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- неизвестный формат лог-файла в директиве access_log вызывал segmentation fault.
- </para>
- <para lang="en">
- the unknown log format in the access_log directive caused
- the segmentation fault.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- новый параметр document_root в директиве fastcgi_params.
- </para>
- <para lang="en">
- the new "document_root" parameter of the fastcgi_params directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива fastcgi_redirect_errors.
- </para>
- <para lang="en">
- the fastcgi_redirect_errors directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- новый модификатор break в директиве rewrite позволяет прекратить
- цикл rewrite/location и устанавливает текущую конфигурацию для запроса.
- </para>
- <para lang="en">
- the new "break" modifier of the "rewrite" directive allows to stop
- the rewrite/location cycle and sets the current configuration to the request.
- </para>
- </change>
- </changes>
- <changes ver="0.1.17" date="2005-02-03">
- <change type="change">
- <para lang="ru">
- модуль ngx_http_rewrite_module полностью переписан.
- Теперь можно делать редиректы, возвращать коды ошибок
- и проверять переменные и рефереры.
- Эти директивы можно использовать внутри location.
- Директива redirect упразднена.
- </para>
- <para lang="en">
- the ngx_http_rewrite_module was rewritten from the scratch.
- Now it is possible to redirect, to return the error codes,
- to check the variables and referrers. The directives can be used
- inside locations.
- The redirect directive was canceled.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_geo_module.
- </para>
- <para lang="en">
- the ngx_http_geo_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы proxy_set_x_var и fastcgi_set_var.
- </para>
- <para lang="en">
- the proxy_set_x_var and fastcgi_set_var directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- конфигурация location с модификатором "=" могла использоваться
- в другом location.
- </para>
- <para lang="en">
- the location configuration with "=" modifier may be used in another
- location.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- правильный тип ответа выставлялся только для запросов, у которых в расширении
- были только маленькие буквы.
- </para>
- <para lang="en">
- the correct content type was set only for requests that use small caps letters
- in extension.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если для location установлен proxy_pass или fastcgi_pass, и доступ
- к нему запрещался, а ошибка перенаправлялась на статическую страницу,
- то происходил segmentation fault.
- </para>
- <para lang="en">
- if the proxy_pass or fastcgi_pass directives were set in the location,
- and access was denied, and the error was redirected to a static page,
- then the segmentation fault occurred.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в проксированном ответе в заголовке "Location" передавался
- относительный URL, то к нему добавлялось имя хоста и слэш;
- ошибка появилась в 0.1.14.
- </para>
- <para lang="en">
- if in a proxied "Location" header was a relative URL,
- then a host name and a slash were added to them;
- the bug had appeared in 0.1.14.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на Linux в лог не записывался текст системной ошибки.
- </para>
- <para lang="en">
- the system error message was not logged on Linux.
- </para>
- </change>
- </changes>
- <changes ver="0.1.16" date="2005-01-25">
- <change type="bugfix">
- <para lang="ru">
- если ответ передавался chunk'ами, то при запросе HEAD выдавался
- завершающий chunk.
- </para>
- <para lang="en">
- if the response were transferred by chunks, then on the HEAD request
- the final chunk was issued.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- заголовок "Connection: keep-alive" выдавался, даже если директива
- keepalive_timeout запрещала использование keep-alive.
- </para>
- <para lang="en">
- the "Connection: keep-alive" header were issued, even if the
- keepalive_timeout directive forbade the keep-alive use.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки в модуле ngx_http_fastcgi_module вызывали segmentation fault.
- </para>
- <para lang="en">
- the errors in the ngx_http_fastcgi_module caused the segmentation faults.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании SSL сжатый ответ мог передаваться не до конца.
- </para>
- <para lang="en">
- the compressed response encrypted by SSL may not transferred complete.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные для TCP сокетов,
- не используются для unix domain сокетов.
- </para>
- <para lang="en">
- the TCP-specific TCP_NODELAY, TCP_NOPUSH, and TCP_CORK options,
- are not used for the unix domain sockets.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива rewrite поддерживает перезаписывание аргументов.
- </para>
- <para lang="en">
- the rewrite directive supports the arguments rewriting.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на запрос POST с заголовком "Content-Length: 0" возвращался ответ 400;
- ошибка появилась в 0.1.14.
- </para>
- <para lang="en">
- the response code 400 was returned for the POST request with the
- "Content-Length: 0" header;
- the bug had appeared in 0.1.14.
- </para>
- </change>
- </changes>
- <changes ver="0.1.15" date="2005-01-19">
- <change type="bugfix">
- <para lang="ru">
- ошибка соединения с FastCGI-сервером вызывала segmentation fault.
- </para>
- <para lang="en">
- the error while the connecting to the FastCGI server caused
- segmentation fault.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- корректная обработка регулярного выражения, в котором число
- выделенных частей не совпадает с числом подстановок.
- </para>
- <para lang="en">
- the correct handling of the regular expression, that
- has different number of the captures and substitutions.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- location, который передаётся FastCGI-серверу, может быть задан
- с помощью регулярного выражения.
- </para>
- <para lang="en">
- the location, that is passed to the FastCGI server, can be
- regular expression.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр FastCGI REQUEST_URI теперь передаётся вместе с аргументами
- и в том виде, в котором был получен от клиента.
- </para>
- <para lang="en">
- the FastCGI's parameter REQUEST_URI is now passed with the arguments
- and in the original state.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- для использования регулярных выражений в location нужно было
- собирать nginx вместе с ngx_http_rewrite_module.
- </para>
- <para lang="en">
- the ngx_http_rewrite_module module was required to be built to use
- the regular expressions in locations.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если бэкенд слушал на 80-ом порту, то при использовании директивы
- <nobr>"proxy_preserve_host on"</nobr> в заголовке "Host" указывался
- также порт 80;
- ошибка появилась в 0.1.14.
- </para>
- <para lang="en">
- the directive <nobr>"proxy_preserve_host on"</nobr> adds port 80
- to the "Host" headers, if upstream listen on port 80;
- the bug had appeared in 0.1.14.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если задать одинаковые пути в параметрах автоконфигурации
- --http-client-body-temp-path=PATH и --http-proxy-temp-path=PATH
- или --http-client-body-temp-path=PATH и --http-fastcgi-temp-path=PATH,
- то происходил segmentation fault.
- </para>
- <para lang="en">
- the same paths in autoconfiguration parameters
- --http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH,
- or --http-client-body-temp-path=PATH and --http-fastcgi-temp-path=PATH
- caused segmentation fault.
- </para>
- </change>
- </changes>
- <changes ver="0.1.14" date="2005-01-18">
- <change type="feature">
- <para lang="ru">
- параметры автоконфигурации
- --http-client-body-temp-path=PATH,
- --http-proxy-temp-path=PATH
- и --http-fastcgi-temp-path=PATH
- </para>
- <para lang="en">
- the autoconfiguration directives:
- --http-client-body-temp-path=PATH,
- --http-proxy-temp-path=PATH,
- and --http-fastcgi-temp-path=PATH
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- имя каталога с временными файлами, содержащие тело запроса клиента,
- задаётся директивой client_body_temp_path,
- по умолчанию <prefix>/client_body_temp.
- </para>
- <para lang="en">
- the directory name for the temporary files with the client request body
- is specified by directive client_body_temp_path,
- by default it is <prefix>/client_body_temp.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_fastcgi_module и директивы
- fastcgi_pass,
- fastcgi_root,
- fastcgi_index,
- fastcgi_params,
- fastcgi_connect_timeout,
- fastcgi_send_timeout,
- fastcgi_read_timeout,
- fastcgi_send_lowat,
- fastcgi_header_buffer_size,
- fastcgi_buffers,
- fastcgi_busy_buffers_size,
- fastcgi_temp_path,
- fastcgi_max_temp_file_size,
- fastcgi_temp_file_write_size,
- fastcgi_next_upstream
- и fastcgi_x_powered_by.
- </para>
- <para lang="en">
- the ngx_http_fastcgi_module and the directives:
- fastcgi_pass,
- fastcgi_root,
- fastcgi_index,
- fastcgi_params,
- fastcgi_connect_timeout,
- fastcgi_send_timeout,
- fastcgi_read_timeout,
- fastcgi_send_lowat,
- fastcgi_header_buffer_size,
- fastcgi_buffers,
- fastcgi_busy_buffers_size,
- fastcgi_temp_path,
- fastcgi_max_temp_file_size,
- fastcgi_temp_file_write_size,
- fastcgi_next_upstream,
- and fastcgi_x_powered_by.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибка "[alert] zero size buf";
- ошибка появилась в 0.1.3.
- </para>
- <para lang="en">
- the "[alert] zero size buf" error;
- the bug had appeared in 0.1.3.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- в директиве proxy_pass нужно обязательно указывать URI после имени хоста.
- </para>
- <para lang="en">
- the URI must be specified after the host name in the proxy_pass directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- если в URI встречался символ %3F, то он считался началом строки аргументов.
- </para>
- <para lang="en">
- the %3F symbol in the URI was considered as the argument string start.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- поддержка unix domain сокетов в модуле ngx_http_proxy_module.
- </para>
- <para lang="en">
- the unix domain sockets support in the ngx_http_proxy_module.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директивы ssl_engine и ssl_ciphers.<br/>
- Спасибо Сергею Скворцову за SSL-акселератор.
- </para>
- <para lang="en">
- the ssl_engine and ssl_ciphers directives.<br/>
- Thanks to Sergey Skvortsov for SSL-accelerator.
- </para>
- </change>
- </changes>
- <changes ver="0.1.13" date="2004-12-21">
- <change type="feature">
- <para lang="ru">
- директивы server_names_hash и server_names_hash_threshold.
- </para>
- <para lang="en">
- the server_names_hash and server_names_hash_threshold directives.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- имена *.domain.tld в директиве server_name не работали.
- </para>
- <para lang="en">
- the *.domain.tld names in the "server_name" directive did not work.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- параметр лога %request_length записывал неверную длину.
- </para>
- <para lang="en">
- the %request_length log parameter logged the incorrect length.
- </para>
- </change>
- </changes>
- <changes ver="0.1.12" date="2004-12-06">
- <change type="feature">
- <para lang="ru">
- параметр лога %request_length.
- </para>
- <para lang="en">
- the %request_length log parameter.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании /dev/poll, select и poll на платформах, где возможны
- ложные срабатывания указанных методов, могли быть длительные задержки
- при обработке запроса по keep-alive соединению.
- Наблюдалось по крайней мере на Solaris с использованием /dev/poll.
- </para>
- <para lang="en">
- when using the /dev/poll, select and poll on the platforms, where
- these methods may do the false reports, there may be the long delay when
- the request was passed via the keep-alive connection.
- It may be at least on Solaris when using the /dev/poll.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива send_lowat игнорируется на Linux, так как Linux не поддерживает
- опцию SO_SNDLOWAT.
- </para>
- <para lang="en">
- the send_lowat directive is ignored on Linux because Linux does not support
- the SO_SNDLOWAT option.
- </para>
- </change>
- </changes>
- <changes ver="0.1.11" date="2004-12-02">
- <change type="feature">
- <para lang="ru">
- директива worker_priority.
- </para>
- <para lang="en">
- the worker_priority directive.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- под FreeBSD директивы tcp_nopush и tcp_nodelay вместе влияют на передачу
- ответа.
- </para>
- <para lang="en">
- both tcp_nopush and tcp_nodelay directives affect the transferred response.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не вызывал initgroups().<br/>
- Спасибо Андрею Ситникову и Андрею Нигматулину.
- </para>
- <para lang="en">
- nginx did not call initgroups().<br/>
- Thanks to Andrew Sitnikov and Andrei Nigmatulin.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- ngx_http_auto_index_module теперь выдаёт размер файлов в байтах.
- </para>
- <para lang="en">
- now the ngx_http_autoindex_module shows the file size in the bytes.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ngx_http_auto_index_module возвращал ошибку 500, если в каталоге есть
- битый symlink.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module returned the 500 error if the broken symlink
- was in a directory.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- файлы больше 4G не передавались с использованием sendfile.
- </para>
- <para lang="en">
- the files bigger than 4G could not be transferred using sendfile.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если бэкенд резолвился в несколько адресов и при ожидании от него ответа
- происходила ошибка, то процесс зацикливался.
- </para>
- <para lang="en">
- if the backend was resolved to several backends and there was an error while
- the response waiting then process may got caught in an endless loop.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании метода /dev/poll рабочий процесс мог завершиться
- с сообщением "unknown cycle".
- </para>
- <para lang="en">
- the worker process may exit with the "unknown cycle" message when the /dev/poll
- method was used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки "close() channel failed".
- </para>
- <para lang="en">
- "close() channel failed" errors.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- автоматическое определение групп nobody и nogroup.
- </para>
- <para lang="en">
- the autodetection of the "nobody" and "nogroup" groups.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- директива send_lowat не работала на Linux.
- </para>
- <para lang="en">
- the send_lowat directive did not work on Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- если в конфигурации не было раздела events, то происходил segmentation fault.
- </para>
- <para lang="en">
- the segmentation fault occurred if there was no events section
- in configuration.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- nginx не собирался под OpenBSD.
- </para>
- <para lang="en">
- nginx could not be built on OpenBSD.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- двойные слэшы в "://" в URI превращались в ":/".
- </para>
- <para lang="en">
- the double slashes in "://" in the URI were converted to ":/".
- </para>
- </change>
- </changes>
- <changes ver="0.1.10" date="2004-11-26">
- <change type="bugfix">
- <para lang="ru">
- если в запросе без аргументов есть "//", "/./", "/../" или "%XX",
- то терялся последний символ в строке запроса;
- ошибка появилась в 0.1.9.
- </para>
- <para lang="en">
- if the request without arguments contains "//", "/./", "/../" or "%XX"
- then the last character in the request line was lost;
- the bug had appeared in 0.1.9.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- исправление в версии 0.1.9 для файлов больше 2G на Linux не работало.
- </para>
- <para lang="en">
- the fix in 0.1.9 for the files bigger than 2G on Linux did not work.
- </para>
- </change>
- </changes>
- <changes ver="0.1.9" date="2004-11-25">
- <change type="bugfix">
- <para lang="ru">
- если в запросе есть "//", "/./", "/../" или "%XX", то проксируемый
- запрос передавался без аргументов.
- </para>
- <para lang="en">
- the proxied request was sent without arguments if the request contains
- "//", "/./", "/../" or "%XX".
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при сжатии больших ответов иногда они передавались не полностью.
- </para>
- <para lang="en">
- the large compressed responses may be transferred not completely.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- не передавались файлы больше 2G на Linux, неподдерживающем sendfile64().
- </para>
- <para lang="en">
- the files bigger than 2G was not transferred on Linux that does not support
- sendfile64().
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на Linux при конфигурации сборки нужно было обязательно использовать
- параметр --with-poll_module;
- ошибка появилась в 0.1.8.
- </para>
- <para lang="en">
- while the build configuration on Linux the --with-poll_module parameter
- was required;
- the bug had appeared in 0.1.8.
- </para>
- </change>
- </changes>
- <changes ver="0.1.8" date="2004-11-20">
- <change type="bugfix">
- <para lang="ru">
- ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов.
- </para>
- <para lang="en">
- in the ngx_http_autoindex_module if the long file names were in the listing.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- модификатор "^~" в директиве location.
- </para>
- <para lang="en">
- the "^~" modifier in the location directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_max_temp_file_size.
- </para>
- <para lang="en">
- the proxy_max_temp_file_size directive.
- </para>
- </change>
- </changes>
- <changes ver="0.1.7" date="2004-11-12">
- <change type="bugfix">
- <para lang="ru">
- при использовании sendfile, если передаваемый файл менялся, то мог
- произойти segmentation fault на FreeBSD;
- ошибка появилась в 0.1.5.
- </para>
- <para lang="en">
- on FreeBSD the segmentation fault may occur if the size of the transferred
- file was changed;
- the bug had appeared in 0.1.5.
- </para>
- </change>
- </changes>
- <changes ver="0.1.6" date="2004-11-11">
- <change type="bugfix">
- <para lang="ru">
- при некоторых комбинациях директив location c регулярными выражениями
- использовалась конфигурация не из того location.
- </para>
- <para lang="en">
- some location directive combinations with the regular expressions caused
- the wrong configuration choose.
- </para>
- </change>
- </changes>
- <changes ver="0.1.5" date="2004-11-11">
- <change type="bugfix">
- <para lang="ru">
- на Solaris и Linux могло быть очень много сообщений "recvmsg() returned
- not enough data".
- </para>
- <para lang="en">
- on Solaris and Linux there may be too many "recvmsg() returned not enough data"
- alerts.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в режиме прокси без использования sendfile на Solaris возникала
- ошибка "writev() failed <nobr>(22: Invalid argument)".</nobr>
- На других платформах, не поддерживающих sendfile, процесс зацикливался.
- </para>
- <para lang="en">
- there were the "writev() failed <nobr>(22: Invalid argument)"</nobr> errors on
- Solaris in proxy mode without sendfile. On other platforms that do not
- support sendfile at all the process got caught in an endless loop.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании sendfile в режиме прокси на Solaris возникал
- segmentation fault.
- </para>
- <para lang="en">
- segmentation fault on Solaris in proxy mode and using sendfile.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- segmentation fault на Solaris.
- </para>
- <para lang="en">
- segmentation fault on Solaris.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- обновление исполняемого файла на лету не работало на Linux.
- </para>
- <para lang="en">
- on-line upgrade did not work on Linux.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- в списке файлов, выдаваемом модулем ngx_http_autoindex_module,
- не перекодировались пробелы, кавычки и знаки процента.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module module did not escape the spaces,
- the quotes, and the percent signs in the directory listing.
- </para>
- </change>
- <change type="change">
- <para lang="ru">
- уменьшение операций копирования.
- </para>
- <para lang="en">
- the decrease of the copy operations.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива userid_p3p.
- </para>
- <para lang="en">
- the userid_p3p directive.
- </para>
- </change>
- </changes>
- <changes ver="0.1.4" date="2004-10-26">
- <change type="bugfix">
- <para lang="ru">
- ошибка в модуле ngx_http_autoindex_module.
- </para>
- <para lang="en">
- in the ngx_http_autoindex_module.
- </para>
- </change>
- </changes>
- <changes ver="0.1.3" date="2004-10-25">
- <change type="feature">
- <para lang="ru">
- модуль ngx_http_autoindex_module и директива autoindex.
- </para>
- <para lang="en">
- the ngx_http_autoindex_module and the autoindex directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива proxy_set_x_url.
- </para>
- <para lang="en">
- the proxy_set_x_url directive.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль проксировании мог привести к зацикливанию, если не использовался
- sendfile.
- </para>
- <para lang="en">
- proxy module may get caught in an endless loop when sendfile is not used.
- </para>
- </change>
- </changes>
- <changes ver="0.1.2" date="2004-10-21">
- <change type="feature">
- <para lang="ru">
- параметры --user=USER, --group=GROUP и --with-ld-opt=OPTIONS в configure.
- </para>
- <para lang="en">
- the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS options in configure.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива server_name поддерживает *.domain.tld.
- </para>
- <para lang="en">
- the server_name directive supports *.domain.tld.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- улучшена переносимость на неизвестные платформы.
- </para>
- <para lang="en">
- the portability improvements.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- нельзя переконфигурировать nginx, если конфигурационный файл указан
- в командной строке;
- ошибка появилась в 0.1.1.
- </para>
- <para lang="en">
- if configuration file was set in command line, the reconfiguration
- was impossible;
- the bug had appeared in 0.1.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль проксировании мог привести к зацикливанию, если не использовался
- sendfile.
- </para>
- <para lang="en">
- proxy module may get caught in an endless loop when sendfile is not used.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при использовании sendfile текст ответа не перекодировался
- согласно директивам модуля charset;
- ошибка появилась в 0.1.1.
- </para>
- <para lang="en">
- with sendfile the response was not recoded according to the charset
- module directives;
- the bug had appeared in 0.1.1.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- очень редкая ошибка при обработке kqueue.
- </para>
- <para lang="en">
- very seldom bug in the kqueue processing.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- модуль сжатия сжимал уже сжатые ответы, полученные при проксировании.
- </para>
- <para lang="en">
- the gzip module compressed the proxied responses that was already compressed.
- </para>
- </change>
- </changes>
- <changes ver="0.1.1" date="2004-10-11">
- <change type="feature">
- <para lang="ru">
- директива gzip_types.
- </para>
- <para lang="en">
- the gzip_types directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива tcp_nodelay.
- </para>
- <para lang="en">
- the tcp_nodelay directive.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- директива send_lowat работает не только на платформах, поддерживающих
- kqueue NOTE_LOWAT, но и на всех, поддерживающих SO_SNDLOWAT.
- </para>
- <para lang="en">
- the send_lowat directive is working not only on OSes that support
- kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT.
- </para>
- </change>
- <change type="feature">
- <para lang="ru">
- эмуляция setproctitle() для Linux и Solaris.
- </para>
- <para lang="en">
- the setproctitle() emulation for Linux and Solaris.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибка при переписывании заголовка "Location" при проксировании.
- </para>
- <para lang="en">
- the "Location" header rewrite bug fixed while the proxying.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибка в модуле ngx_http_chunked_module, приводившая к зацикливанию.
- </para>
- <para lang="en">
- the ngx_http_chunked_module module may get caught in an endless loop.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- ошибки в модуле /dev/poll.
- </para>
- <para lang="en">
- the /dev/poll module bugs fixed.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- при проксировании и использовании временных файлов ответы портились.
- </para>
- <para lang="en">
- the responses were corrupted when the temporary files were used
- while the proxying.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- бэкенду передавались запросы с неперекодированными символами.
- </para>
- <para lang="en">
- the unescaped requests were passed to the backend.
- </para>
- </change>
- <change type="bugfix">
- <para lang="ru">
- на Linux 2.4 при конфигурации сборки нужно было обязательно использовать
- параметр --with-poll_module.
- </para>
- <para lang="en">
- while the build configuration on Linux 2.4 the --with-poll_module parameter
- was required.
- </para>
- </change>
- </changes>
- <changes ver="0.1.0" date="2004-10-04">
- <change>
- <para lang="ru">
- Первая публично доступная версия.
- </para>
- <para lang="en">
- The first public version.
- </para>
- </change>
- </changes>
- </change_log>
|