Nginx rewrite - подскажите

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Подумал и решил перенести все "админские" ресурсы сайта на HTTPS...
Работает все на nginx+php-fpm.
Но если SourceBans, phpMyAdmin и другие подобные ресурсы можно перевести без задумки, поскольку у всех ползователей все будет нормально работать, то встает вопрос о переносе админской части HLStatsX.
Для SB и других можно сделать и короткие адреса, переписывая адрес например
C-подобный:
rewrite ^(.*)$ https://ssl.css32.ru/bans$1 permanent;
Но для статистики такое не получится - иначе перестанут работать внутриигровые функции вроде statsme - браузер MOTD не поддерживает SSL.
Нет, можно конечно и вручную набирать https-адрес, то есть админка будет доступна и по обычному адресу и по секьюрному. Но это как-то не интересно, да и забыть можно... :blush2:
В общем, идея у меня заключается в вылавливании mode=admin в адресе к HLStats и перенаправлении этого адреса на такой же, но секьюрный.

Может кто-нибудь подсказать правильное регулярное выражение? Пока додумал только так, но не работает, я пока плохо пониимаю принцип регулярок..
C-подобный:
rewrite ^(.*)mode=admin(.*)$ https://ssl.css32.ru/stats$1mode=admin$2 permanent;
Что я тут неправильно написал (или вообще все неправильно?:secret:)?
 

ykpon

Владыка
Сообщения
702
Реакции
421
Оффтоп
 

wanted241

Real-Gamer.Ru
Сообщения
428
Реакции
161
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Если ссл протокол ставишь только для того, чтобы показать его другим и "выделиться"(ты понял, что я имел в виду=) ), то зря.
Ни к чему он, поверь.. Ведь, у тебя не происходят на сайте операции с деньгами или драгоценными документами =)
Выделиться - не выделиться, может кому-то и кажется что "понтуюсь", однако раз уж есть возможность испольовать бесплатно реальный (не самоподписной) сертификат, так чего бы его не сделать для админской (а возможно и не только) части? Я часто захожу к себе, в том числе и в phpMyAdmin (А в БД хранится и база админов всех серверов и прочие вещи подобные) и в SB с открытых сетей (Учусь на программиста, в универе открытая сетка, ловящая по всему зданию, но раз сам универ технический, то любители посниффать траффик там есть по умолчанию), и так далее. Поэтому лучше перестраховаться, пусть кому-то и покажется это глупым, но когда один мой сервер в декабре был топ3 в геймтрекере при NoSteam, а сейчас топ20 только Steam, тут уже начинаешь задумываться о количестве недоброжелателей...
Ведь, спалив пароль рута/юзера с доступам к бд админов при входе PMA или от админа SB можно добавить кого угодно в админы и сделать что угодно. Аналогично со статой, можно забить сервер, если добавить кучу левых серваков и начать спамить логами.
Ну если для вас возможно излишняя безопасность считается по умолчанию "понтами", то это уже ваши проблемы, тогда забейте на SSH и сидите по телнету, а то зачем вам обмен ключами, зачем еще куча действий и методов, которые используются в SSH v2?

Более чем уверен, что nginx установлен как бэкэнд, а апач торчит фронтендом :)
Кто-нибудь читает вообще шапку? Хотя ну да, зачем ее читать, в угадайки играть интересней
Работает все на nginx+php-fpm
:this:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Оно конечно спасибо, но опять же, ты хотя бы прочитал шапку? Я уже сказал, что абсолютное перенаправление работает прекрасно, я же хочу сделать только при существовании в адресе "mode=admin" обязательное перенаправление на HTTPS-версию. А это во-первых для апача (хотя ясно сказано что nginx+php-fpm), а во-вторых перманентное перенаправление, которое и так есть, и о нем тоже было достаточно ясно сказано в шапке.
Хотя в принципе можно и для апача, а потом с помощью "переводчиков", которые существуют, перевести на язык энжинкса...

Кстати, вопрос немного прояснился, то, что я писалв шапке,в принципе работает если зайти например http://site/mode=admin , но если это будет http://site/hlstats.php?mode=admin то перенаправления уже не будет. Остается вопрос, как заставить энжинкс вначале обрабатывать правило перенаправления, а потом уже переходить к правилам FastCGI
 
Последнее редактирование:

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
KorDen, стата и сб без проблем поднялись на nginx?
Стата и сб прекрасно работают на энжинксе (+php-fpm а не апач) без каких-либо плясок и шустро работает...
Для того, чтобы сделать возможност использовать картинки для подписи по адресу sig-1-1.png надо указать
rewrite sig-(.*)-(.*).png$ /sig.php?player_id=$1&background=$2;
И фактически больше ничего, если сравнивать с стандартом..
C-подобный:
    server {
        listen 80;
        server_name  stats.css32.ru;
        location / {
            root   /home/css/wwwroot/stats;
            index  index.php;
            rewrite sig-(.*)-(.*).png$ /sig.php?player_id=$1&background=$2;
        }
        location ~ \.php$ {
            root           /home/css/wwwroot/stats;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /home/css/wwwroot/stats$fastcgi_script_name;
            include        fastcgi_params;
        }
И больше ничего не надо, для сб аналогично, только реврайт убрать
 

BMW M6

Участник
Сообщения
1,217
Реакции
534
За всё время с nginx у меня есть одна проблема - это phpmyadmin. Он у меня криво работает! Да и вообще принял решение отказаться от него вообще. Так как управлять mysql через ssh не тяжело во все :)
 
Сверху Снизу