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

Тема в разделе "Веб-технологии", создана пользователем KorDen, 13 янв 2013.

  1. KorDen

    KorDen Atra esterní ono thelduin!

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

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

    ykpon Владыка Read Only

    Сообщения:
    396
    Симпатии:
    102
    Оффтоп
     
  3. wanted241

    wanted241 Real-Gamer.Ru

    Сообщения:
    783
    Симпатии:
    355
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
     
  4. BMW M6

    BMW M6

    Сообщения:
    1.221
    Симпатии:
    569
    Это для apache. У него nginx :)
     
  5. ykpon

    ykpon Владыка Read Only

    Сообщения:
    396
    Симпатии:
    102
    Оффтоп
     
  6. BMW M6

    BMW M6

    Сообщения:
    1.221
    Симпатии:
    569
    Оффтоп
     
  7. KorDen

    KorDen Atra esterní ono thelduin!

    Сообщения:
    2.194
    Симпатии:
    1.398
    Выделиться - не выделиться, может кому-то и кажется что "понтуюсь", однако раз уж есть возможность испольовать бесплатно реальный (не самоподписной) сертификат, так чего бы его не сделать для админской (а возможно и не только) части? Я часто захожу к себе, в том числе и в phpMyAdmin (А в БД хранится и база админов всех серверов и прочие вещи подобные) и в SB с открытых сетей (Учусь на программиста, в универе открытая сетка, ловящая по всему зданию, но раз сам универ технический, то любители посниффать траффик там есть по умолчанию), и так далее. Поэтому лучше перестраховаться, пусть кому-то и покажется это глупым, но когда один мой сервер в декабре был топ3 в геймтрекере при NoSteam, а сейчас топ20 только Steam, тут уже начинаешь задумываться о количестве недоброжелателей...
    Ведь, спалив пароль рута/юзера с доступам к бд админов при входе PMA или от админа SB можно добавить кого угодно в админы и сделать что угодно. Аналогично со статой, можно забить сервер, если добавить кучу левых серваков и начать спамить логами.
    Ну если для вас возможно излишняя безопасность считается по умолчанию "понтами", то это уже ваши проблемы, тогда забейте на SSH и сидите по телнету, а то зачем вам обмен ключами, зачем еще куча действий и методов, которые используются в SSH v2?

    Кто-нибудь читает вообще шапку? Хотя ну да, зачем ее читать, в угадайки играть интересней
    :this:

    Оно конечно спасибо, но опять же, ты хотя бы прочитал шапку? Я уже сказал, что абсолютное перенаправление работает прекрасно, я же хочу сделать только при существовании в адресе "mode=admin" обязательное перенаправление на HTTPS-версию. А это во-первых для апача (хотя ясно сказано что nginx+php-fpm), а во-вторых перманентное перенаправление, которое и так есть, и о нем тоже было достаточно ясно сказано в шапке.
    Хотя в принципе можно и для апача, а потом с помощью "переводчиков", которые существуют, перевести на язык энжинкса...

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

    Vaio

    Сообщения:
    628
    Симпатии:
    218
    Оффтоп
     
  9. BMW M6

    BMW M6

    Сообщения:
    1.221
    Симпатии:
    569
    Оффтоп
     
  10. KorDen

    KorDen Atra esterní ono thelduin!

    Сообщения:
    2.194
    Симпатии:
    1.398
    Стата и сб прекрасно работают на энжинксе (+php-fpm а не апач) без каких-либо плясок и шустро работает...
    Для того, чтобы сделать возможност использовать картинки для подписи по адресу sig-1-1.png надо указать
    rewrite sig-(.*)-(.*).png$ /sig.php?player_id=$1&background=$2;
    И фактически больше ничего, если сравнивать с стандартом..
    Код:
        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;
            }
    И больше ничего не надо, для сб аналогично, только реврайт убрать
     
  11. BMW M6

    BMW M6

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