Nginx как front-end к apache

Тема в разделе "Десктопный Linux", создана пользователем MrPhoenix, 6 ноя 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. MrPhoenix

    MrPhoenix Читатель

    Заблокирован
    Регистр.:
    10 апр 2009
    Сообщения:
    114
    Симпатии:
    69
    Сабж.Есть ли варианты без прописывания конфигов для каждого хоста руками?Сайтов много, писать все хосты руками-гимор...
    Прокатит ли конструкция типа:
    Код:
    upstream backend {
    # Адрес back-end'a
    server 192.168.0.1:8080;
    }
    
    server {
    listen 80;
    server_name *;
    
    access_log /home/site/*/logs/nginx_access.log;
    error_log /home/site/*/logs/nginx_error.log;
    
    # Перенаправление на back-end
    location / {
    proxy_pass http://backend;
    include /etc/nginx/proxy.conf;
    }
    
    # Статическиое наполнение отдает сам nginx
    # back-end этим заниматься не должен
    location ~* .(jpg|jpeg|gif|png|ico|css|bmp|swf|js)$ {
    root /home/site/*/static/;
    }
    }
    ?
     
  2. porsche2

    porsche2

    Регистр.:
    18 ноя 2007
    Сообщения:
    667
    Симпатии:
    210
    читай здесь
    http://habrahabr.ru/blogs/webdev/43704/
     
    MrPhoenix нравится это.
  3. painalex

    painalex Создатель

    Регистр.:
    29 июл 2009
    Сообщения:
    12
    Симпатии:
    0
    Вот готовый вариант что не париться ;)
    user nginx;
    worker_processes 4;
    error_log /var/log/nginx/error.log;
    pid /var/run/nginx.pid;
    events {
    worker_connections 5000;
    }
    http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] $status '
    '"$request" $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 30;
    send_timeout 900;
    server_tokens off;
    server {
    listen 80;
    server_name _;
    server_name_in_redirect off;
    access_log /var/log/nginx/host.access.log main;
    location / {
    proxy_pass http://127.0.0.1:8080/;
    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 10m;
    }
    }
    }
     
  4. stimels2

    stimels2 Постоялец

    Регистр.:
    2 апр 2009
    Сообщения:
    128
    Симпатии:
    9
    плохо что логи всех виртуалхостов будут писаться в один файл
     
  5. hellevil

    hellevil Писатель

    Регистр.:
    18 окт 2007
    Сообщения:
    19
    Симпатии:
    1
    не обязательно вешать на разные порты есл апче заставить слушать только 127.0.0.1:80 то это никак не повлияет на работу ;)
     
    FraY нравится это.
  6. FraY

    FraY Создатель

    Регистр.:
    26 май 2007
    Сообщения:
    25
    Симпатии:
    6
    Инетересная идея
    +1
     
Статус темы:
Закрыта.