суббота, 1 августа 2015 г.

Nginx в качестве прокси и редирект

На передовой стоит nginx который обслуживает основные запросы, но часть серверов обслуживает апач на порту 8080. И если апач делает редирект (например на страницу авторизации) то все ломается, т.к. 8080 порт с наружи не виден. Нужно заставить nginx переписывать ответ на редирект

server {
        listen 80;
        server_name ~^(.+)\.v1\.ac-test\.tk$;

        location / {
                resolver 8.8.8.8;
                proxy_set_header        X-Real-IP       $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://$host:8080;
                proxy_redirect     http://$host:8080/ http://$host/;
                proxy_set_header   Host $host;
        }
}

Надо учесть что для такой настройки требуется dns сервер, который будет резолвить наши  хосты. Если нужно резолвить на основе файла hosts, тогда придется установить dnsmasq

Виртуальный хостинг на apache с поддержкой CGI

Для одного проекта потребовалось настроить апач, чтобы каждый поддомен смотрел в свой каталог (т.е. в свою ветку git) Почему апач? Часть проекта написана на parser3 это такое говнище от лебедя. Можно было конечно прикрутить cgi к nginx но я и так потерял много времени, да и проекта переписывается на php.
Конфиг для Apache

<VirtualHost *:80>
    ServerAlias *.ac-test.tk
    UseCanonicalName Off
    VirtualDocumentRoot /opt/autocrm.v1/%1/shared/www
    VirtualScriptAlias  /opt/autocrm.v1/%1/shared/www/cgi-bin

<Directory /opt >
    Options Indexes MultiViews FollowSymlinks ExecCGI
    AllowOverride All
    Require all granted
</Directory>

</VirtualHost>

Главное в основном конфиге апача закоментировать строчку

#    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

Теперь при запросе http://dev.ac-test.tk апач будет лезть в папку /opt/autocrm.v1/dev/shared/www

Бесплатные домены

ЗонаРегистратор
TRhttp://www.dot.tk/ru/index.html?lang=ru
MLhttp://www.point.ml/en/index.html?lang=en
GAhttp://www.my.ga/en/index.html?lang=en
CFhttp://www.dot.cf/en/index.html?lang=en


Вообще это зоны каких-то "банановых республик", регистратор у них один freenom.com
Панель управления DNS у них "туповатая", поэтому я созданные домены делегировал яндексу. Там и почта есть и * можно использовать.