Apache 2.0.x и nginx на одном сервере

Тема в разделе "Администрирование серверов", создана пользователем pigulsky, 5 авг 2007.

Статус темы:
Закрыта.
Модераторы: mefish, stooper
  1. pigulsky

    pigulsky Постоялец

    Регистр.:
    10 сен 2006
    Сообщения:
    66
    Симпатии:
    85
    Очень интересует этот вопрос.
    Хочется чтобы обработка массовых статичных файлов шла через nginx, а все остальное - через апач. Но вот возможно ли сие на одном сервере?

    Отдельными это понятно, все просто, а вот как разделить зоны доступа для апача и nginx, чтобы они не кофликтовали при доступах к файлам?
     
  2. Parasol

    Parasol Постоялец

    Регистр.:
    7 июл 2007
    Сообщения:
    149
    Симпатии:
    65
    Не только можно, но и нужно!

    Методика такая, запускаешь апач на другом порту, к примеру 83, потом настраиваеш nginx на работу по 80 порту. Вот пример конфига nginx для того, что тебе нада, тоесть все php файлы будут отдаваться на обработку апачу, а вся статика, html,jpg,css итд.. будет отдаваться nginx-ом.

    Код:
    server {
            listen       80;
            server_name site.com www.site.com;
    
            location / {
                proxy_pass         http://127.0.0.1:83/;
                proxy_redirect     off;
    
                proxy_set_header   Host             $host;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
    
                client_max_body_size       10m;
                client_body_buffer_size    128k;
    
                proxy_connect_timeout      90;
                proxy_send_timeout         90;
                proxy_read_timeout         90;
    
                proxy_buffer_size          4k;
                proxy_buffers              4 32k;
                proxy_busy_buffers_size    64k;
                proxy_temp_file_write_size 64k;
            }
    
            location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|exe|txt|tar|js)$ {
                root   /var/www/htdocs/site.com;
            }
        }
    
     
  3. pigulsky

    pigulsky Постоялец

    Регистр.:
    10 сен 2006
    Сообщения:
    66
    Симпатии:
    85
    Оу, спасибо :)
    Буду пробовать настраивает сие дело )

    Добавлено через 6 минут
    Parasol, сразу задам тогда вопрос.

    А если на сервере крутится несколько сайтов? Вот вся динамика (и чуток статики) лежит на site.com, а абсолютная часть статики на storage.site.com - можно ли storage обрабатывать nginx не снимая апач с 80 порта?
     
  4. unixman

    unixman

    Регистр.:
    6 сен 2006
    Сообщения:
    688
    Симпатии:
    61
    Можно, только надо посадить nginx на свободный ip и перекинуть туда домен.
     
  5. Parasol

    Parasol Постоялец

    Регистр.:
    7 июл 2007
    Сообщения:
    149
    Симпатии:
    65
    Наздоровье!

    Если будут вопросы, пиши в ЛС. помогу настроить. Да и по тюнингу своего сервака смогу дать некоторые советы :)
     
  6. t0rik

    t0rik

    Регистр.:
    26 июн 2007
    Сообщения:
    171
    Симпатии:
    14
    Вот сделал я так как написали. Главня страница грузится нормально, все работает, но IPB генерирует ссылки на порт 83 а не на 80, т.е. получается что nginx работает только на главной странице, дальше все обрабатывает апач. Как все-таки сделать чтобы все полностью пахало через 80й порт на котором nginx?
     
  7. skitalec

    skitalec Постоялец

    Регистр.:
    21 авг 2007
    Сообщения:
    57
    Симпатии:
    0
    IPB активно используются ip-адреса посетителей, а в случае использования конфигурации приведенной выше, все посетители будут для apache приходить c одного ip-адреса: 127.0.0.1, что не правильно.
    вам нужно поставить mod_rpaf для апача.
    В конфигурационный файл apache добавляем:
    ...
    LoadModule rpaf_module modules/mod_rpaf-2.0.so
    ...
    ## Mod_rpaf settings
    RPAFenable On
    RPAFproxy_ips 127.0.0.1 realip [realip1]
    RPAFsethostname On
    В конфигурационный файл nginx в раздел server необходимо добавить:
    ...
    server {
    ...
    # Main location
    location / {
    ...
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    ...

    Добавлено через 34 секунды
    ЗЫ вот советую почитать еще
    http://nginx.info/index.pl/ru/articles
     
  8. unixman

    unixman

    Регистр.:
    6 сен 2006
    Сообщения:
    688
    Симпатии:
    61
    На dedic.ru есть пример без смены портов
     
  9. skitalec

    skitalec Постоялец

    Регистр.:
    21 авг 2007
    Сообщения:
    57
    Симпатии:
    0
    да и вообще не стоит вешать еще один процесс который отжирает память и т.д. ради того чтобы разогнать апач.
    есть куча способов чтобы оптимизировать его работу и работу сайта.
     
  10. jmp

    jmp Создатель

    Регистр.:
    13 мар 2007
    Сообщения:
    28
    Симпатии:
    0
    вместе они то работают, но nginx может конфиктовать с панелью, у меня при подобной связке глючит plesk 8.1, если я редактирую через него инфу о доменах, он всюду вставляет переназначенные порты апача, и начинаются глюки в доменах, вплоть до потери прав доступа к каталогам и базам из за изменения их владельца :(
     
Статус темы:
Закрыта.