Собственно сабж...
Народ, как решаете данную проблему?
Сайт постоянно сканируют левые боты и атаки с других стран...
Но сервисы гугла нужны.
Как закрыть сайт на уровне сервера?
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,289352,289352#msg-289352
привет!
может кто сталкивался, и знает, что с этим можно сделать.
ситуация - хостинг высокой плотности, на одном IP много доменов.
домены разные, каждый со своей бизнес логикой.
у Chrome включается какая-то оптимизация, и типа "ну раз IP один, то я
буду весь трафик гонять через одно tcp подключение". все бы ничего, но
некоторые сайты иногда рвут соединение. а Chrome в итоге рвет не
подключение до конкретного сайта, а вообще все, которые он умудрился
связать с этим tcp подключением.
частный пример - сайт, который иногда формирует очень длинные URL, не
помещающиеся в дефолтный http2_max_field_fize, при возникновение такой
ситуации Chrome рвет всё до этого IP адреса.
как-то не по христиански чтоли.
подумалось, что аналогичных хостингов высокой плотности в рассылке может
быть достаточное количество. не первый же я с таким столкнулся?
Илья Шипицин
А есть какой-то способ в случае try_files логировать не имя файла,
которе совпало, а собственно текущий uri?
$request_uri не подходит т.к. во-первых с аргументами, во-вторых потом
его через rewrite прогнали. Т.е. я хочу в лог записать без аргументов,
после rewrite, но не результат try_files.
Добрый день. Прошу помощь зала. Есть задача ограничить каждый виртуальный сервер
по скорости. Скажем есть сайт site1.com с заданной скоростью в 4096КиБ/с и
site2.com с 2048КиБ/с. Как сделать что бы одно соединение обрабатывалось на
максимальной скорости а остальные на пониженной в зависимости от количества
соединений. То бишь что бы $limit_rate выставлялся автоматически в зависимости от
уже имеющихся соединений при заданной общей скорости.Можно было бы решить это с
$connections_active но она для всего сервера. Или новой директивой
$limit_rate_total. На сколько сложно это реализовать или может есть какие то
варианты используя текущую реализацию?
server {
listen 80;
server_name site1.com;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log info;if ($connections_active = 1) {
set $limit_rate 4096k;
}
if ($connections_active = 2) {
set $limit_rate 2048k;
}
if ($connections_active = 3) {
set $limit_rate 1365k;
}
..
if ($connections_active = 100) {
set $limit_rate 40k;
}#$limit_rate_total 4096k;root /home/user/sites/site.com/www;
}
server {
listen 80;
server_name site2.com;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log info;if ($connections_active = 1) {
set $limit_rate 2048k;
}
if ($connections_active = 2) {
set $limit_rate 1024k;
}
if ($connections_active = 3) {
set $limit_rate 682k;
}
......
if ($connections_active = 100) {
set $limit_rate 20k;
}#$limit_rate_total 2048k;root /home/user/sites/site.com/www;
}
Здравствуйте!
Вопрос коротко: является ли
rewrite ... redirect на 100% безопасным при использовании if внутри
location.
Подробнее:
В https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/
> The only 100% safe things which may be done inside if in a location
> context are:
>
> * return
> <https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#return>
> ...;
> * rewrite
> <https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite>
> ... last;
>
то есть единственным вариантов rewrite на 100% безопасным с if в
location написан rewrite с last. Учитывая написанное в статье далее и
моё понимание nginx предполагаю, что rewrite можно не только с last, но
так же с redirect и permanent, так как исключают выполнение других
директив в рамках этого локейшена.
"Возможно опасными" тут могут быть только break и, вероятно, отсуствие
флагов rewrite так как оставляют возможность выполнения других директив
не из модуля rewrite.
Я прав?
С уважением, Иван.
Добрый день! Подскажите, пожалуйста, можно ли указатель на созданную в
одном STREAM модуле (слушает на UNIX сокете) shared memory (mmap, созданной
с помощью 'ngx_shm_alloc') передать через какой-либо общесерверный контекст
в другой, HTTP, модуль, чтобы эта shared memory была доступна для всех
воркеров на протяжении всей жизни сервера. Есть ли вообще такой контекст?
А возможна ли конструкция типа такой:
location / {
rewrite ....;
rewrite ....;
location ~ /../(..)... {
try_files /$2/$3/$2$3$4_$1.bin @proxy;
}
location / {
try_files /notexist @proxy;
}
}
location @proxy {
}
Ну т.е. смысл в том, что не попадает под маску -- сразу брать с
апстрима, а что под маску попадает -- проверять на диске и если нет --
брать с апстрима.
Доброе время суток. не знаю куда уже обратиться может тут подскажите.
есть связка centos7/ nginx 1.18/ php7.3/
на нем вертится GLPI 9.5.3.
проблема в том что хочу подключиться к нему с приложения для андроид Gapp
версии 1.2
настроил все по инструкции от разработчиков ,и в итоге при подключении в
андроид и (вожу логин и пароль ) вижу как приложение открывает веб страницу
где опять спрашивается логин и пароль как в браузере , но туда вести я их не
могу, любой нажатие на экран и он начинает автоматически бесконечно
подключаться на сервер. в логах сервера пусто, как закроеш приложение сервер
пишет неудачна попытка входа.
я Выяснил , что входим в Gapp в своей среде GLPI, Gapp ожидает json с
токеном, предоставленным сервером.
Если вместо этого сервер дает взамен html-веб-страницу, Gapp показывает ее
.
Обычно такого рода проблемы относятся к брандмауэру, прокси-серверам и
всевозможным блокировщикам.
В сервере нет файла json (до этого настраивал OTRS там был json файл и
удалось настроить для доступа с приложения), как мне сконфигурировать свой
nginx что бы он принимал запросы от приложения gapp.
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,290584,290584#msg-290584