Задать вопрос
  • Как работать через SSH не останавливая процесс после отключения?

    @askhat
    Я для этого пользуюсь tmux:
    1. Подключаетесь к машине
    2. Подключаетесь к сессии tmux
    3. Запускаете процесс
    4. Не закрывая окна tmux, закрываете ssh сессию
    Ответ написан
    Комментировать
  • Как работать через SSH не останавливая процесс после отключения?

    DevMan
    @DevMan
    screen, tmux
    Ответ написан
    Комментировать
  • Как создать зеркало сайта?

    kolossradosskiy
    @kolossradosskiy
    Зеркалирующий прокси-сервер
    sobek.su/Projects/php/mcacher.class.php

    Позволяет создать зеркало любого удаленного ресурса на локальном сервере. Созданное зеркало по сути является прокси сервером, который будет непосредственно взаимодействовать с удаленным хостом.
    Ответ написан
    1 комментарий
  • Как настроить Nginx в качестве прокси?

    @xtreme
    Снимаю порчу по SSH :)
    server {
      listen 80;
      server_name xxx.com;
      root /var/www/yyy.com/web;
      location /adb/ {
        resolver 127.0.0.1;
        rewrite ^/adb/(.*)$ /$1 break;
        proxy_pass http://yyy.com;
        proxy_redirect default; #???
        proxy_set_header Host yyy.com;
      }
    }


    Не поленитесь поставить named на локалхост. В CentOS, например, достаточно запустить дефолтную конфигурацию (yum install bind && chkconfig named on && service named start). Так будет проще и быстрее резолвить, чем каждый раз стучаться в гуглоднс.
    Далее - если не сделать rewrite с break, убрав ваш локейшн, то запрос на xxx.com/adb/ уйдет не на yyy.com, а на yyy.com/adb/. И если там такого урла нет - получим 404 или что-нибудь еще хуже.
    Далее - если собрались проксировать трафик на yandex.ru, то при проксировании подставляйте заголовок "Host yandex.ru". Если оставить, как есть "Host $host", то получится, что на yandex.ru придет ваш запрос, который ищет xxx.com на хосте с yandex.ru, как следствие - 404.
    Далее - nginx.org/ru/docs/http/ngx_http_proxy_module.html#... - стоит разобраться с proxy_redirect. Для разных узлов возможны разные значения. Обычно хватает default, но вполне может понадобиться и off или другие параметры.

    Чтобы заблокировать xxx.com/adb/logo.png при проксировании:

    location ~ ^/adb/logo\.png$ {
      empty_gif;
    }


    В location можно также и так:
    location = /adb/logo.png {
    Либо вместо empty_gif если надо отдавать свою картинку - тогда можно, например, сделать rewrite в нужный урл и отдавать картинку от себя.

    P.S. Можно также сделать пару локейшнов для статических элементов, чтобы обрабатывать их отдельно и класть в локальный кеш - сокращается трафик и ускоряется доступ.
    Ответ написан
  • Не получается запустить ./configure для nginx

    kwinch
    @kwinch
    Недавно сам ставил nginx на сервере с Ubuntu 12.04 и также столкнулся с необходимостью добавления нестандартных модулей.
    Решение нашел на serverfault.
    После использования предлагаемого метода в систему будет установлен nginx с использованием apt-get (т.е. система будет в курсе, что в нее установлен nginx).

    Для начала необходимо установить инструменты для сборки пакетов deb:
    sudo apt-get install dpkg-dev
    


    Также нужно добавить репозиторий nginx, чтобы иметь доступ к последним версиям сервера:
    sudo add-apt-repository ppa:nginx/stable
    


    После добавления репозитория необходимо руками добавить репозиторий с исходниками в файле /etc/apt/sources.list.d/nginx-stable-lucid.list:


    Для обновления списка пакетов с учетом новых репозиториев выполняем:
    sudo apt-get update
    


    Это были приготовления. Дальше собственно сборка nginx с необходимыми модулями.

    Перейдите в папку,, куда хотите скачать исходники nginx и выполните:
    apt-get source nginx
    


    Соберите зависимости nginx:
    sudo apt-get build-dep nginx
    


    В ту же папку, куда были скачаны исходники nginx, скачиваете нужные модули и добавляете ссылки на них в строку конфигурации nginx в файле <директория с исходниками nginx>/nginx-1.2.3/debian/rules:
    config.status.full: config.env.full config.sub config.guess
    ...
    --add-module=path/to/nginx_uploadprogress_module
    


    После этого собираем пакет(ы):
    cd nginx-1.2.3 && dpkg-buildpackage -b
    


    Примечание: В результате будут собраны несколько пакетов, как это указано в debian/rules. Устанавливать нужно только один, тот, что full (см. ниже).

    Устанавливаем nginx:
    sudo dpkg -i nginx-full_1.2.3-0ubuntu0ppa3~precise_amd64.deb
    


    Хоть и выглядит устрашающе, на второй-третий раз уже на автомате.

    Примечание: Если после использования этого способа сделать apt-get upgrade, то nginx переставится с дефолтным конфигом. Будьте внимательны.
    Ответ написан
    Комментировать