У овом чланку ћемо показати како да решите проблем „400 Лош захтев: Обичан ХТТП захтев је послат на ХТТПС порт”У Нгинк ХТТП серверу. Ова грешка се обично јавља када покушате да конфигуришете Нгинк за руковање и ХТТП и ХТТПС захтевима.
За потребе овог водича, разматрамо сценарио у којем нгинк опслужује више веб локација имплементираних кроз серверски блокови (или виртуелни домаћини у Апацхе -у) само једна веб локација користи ССЛ, а остале не.
Прочитајте такође: Врхунски водич за осигурање, учвршћивање и побољшање перформанси Нгинка
Такође ћемо размотрити пример ССЛ конфигурације испод (променили смо стварно име домена из безбедносних разлога), који говори нгинк -у да слуша оба порта 80 и 443. И сви захтеви на ХТТП -у треба подразумевано да се преусмере на ХТТПС.
сервер {слушај 80; сервер_наме екампле.цом ввв.екампле.цом; врати 301 https://www.example.com$request_uri; } сервер {слушати 443 ссл хттп2; сервер_наме екампле.цом ввв.екампле.цом; роот /вар/ввв/хтмл/екампле.цом/; индек индек.пхп индек.хтмл индек.хтм; #цхарсет кои8-р; аццесс_лог /вар/лог/нгинк/екампле.цом/екампле.цом_аццесс_лог; еррор_лог /вар/лог/нгинк/екампле.цом/екампле.цом_еррор_лог грешка; # ССЛ/ТЛС конфигурације ссл укључен; ссл_цертифицате /етц/ссл/цертс/екампле_цом_церт_цхаин.црт; ссл_цертифицате_кеи /етц/ссл/привате/екампле_цом.кеи; инцлуде /етц/нгинк/ссл.д/ссл.цонф; локација / {три_филес $ ури $ ури / /индек.пхп?$куери_стринг; } еррор_паге 500 502 503 504 /50к.хтмл; локација = /50к.хтмл {роот /вар/ввв/хтмл/екампле.цом/; } # проки ПХП скрипте за Апацхе које слушају 127.0.0.1:80 # #лоцатион ~ \ .пхп $ { # проки_пасс http://127.0.0.1; #} # проследите ПХП скрипте на ФастЦГИ сервер слушајући на 127.0.0.1:9000 # локација ~ \ .пхп $ {роот /вар/ввв/хтмл/екампле.цом/; фастцги_пасс 127.0.0.1:9001; #фастцги_пасс уник: /вар/рун/пхп-фпм/пхп-фпм.соцк; фастцги_индек индек.пхп; фастцги_парам СЦРИПТ_ФИЛЕНАМЕ $ доцумент_роот $ фастцги_сцрипт_наме; инцлуде фастцги_парамс; укључи/етц/нгинк/фастцги_парамс; } # одбити приступ .хтаццесс датотекама, ако се корен документа Апацхе -а # подудара са нгинк -овим # #лоцатион ~ /\.хт { # ускрати све; #} }
Користећи горњу конфигурацију, једном када клијент покуша да приступи вашој веб локацији преко порта 80 тј http://example.com
, грешка у питању ће бити приказана као на следећем снимку екрана.
На ову грешку наилазите јер сваки пут када клијент покуша да приступи вашој веб локацији путем ХТТП -а, захтев се преусмерава на ХТТПС. То је зато што нгинк очекује да ће се ССЛ користити у трансакцији, али су оригинални захтеви т (примљени преко порта 80) били обични ХТТП, жали се на грешку.
С друге стране, ако клијент користи https://example.com
, неће наићи на горњу грешку. Осим тога, ако имате друге веб локације конфигурисане да не користе ССЛ, нгинк ће покушати подразумевано да користи ХТТПС за њих што је довело до горње грешке.
Да бисте исправили ову грешку, коментирајте доњу линију у својој конфигурацији или је искључите.
#ссл на ОР. ссл офф.
Сачувајте и затворите датотеку. Затим поново покрените нгинк услугу.
# системцтл поново покрените нгинк. ИЛИ. $ судо системцтл поново покрените нгинк.
На овај начин можете омогућити нгинк -у да рукује и ХТТП и ХТТПС захтевима за више серверских блокова.
Коначно, испод је листа чланака о постављању ССЛ ХТТПС -а на уобичајеним дистрибуцијама Линука и ФрееБСД -у.
То је све за сада. Ако знате неки други начин за решавање ове грешке, обавестите нас путем доњег обрасца за повратне информације.