The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Пример конфигурации nginx для NameBased виртуальных хостов с хостингом. (web nginx example)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: web, nginx, example,  (найти похожие документы)
From: http://esupport.org.ua Date: Mon, 26 Mar 2006 14:31:37 +0000 (UTC) Subject: Пример конфигурации nginx для NameBased виртуальных хостов с хостингом. Оригинал: http://dedic.ru/node/119 nginx - это легкий высокопроизводительный вебсервер, разработанный Игорем Сысоевым. Однако у него есть существенный недостаток - недостаточная документированность. Рассмотрим на примере как сконфигурировать nginx для отдачи статического контента - html и картинки напрямую и проброс остальных запросов вебсерверу apache. Так-же настроим страницу ошибок и хотлинк. Хотлинк - защита от похищения контента и траффика, когда один сайт включает в себя изображения с другого сайта. Для начала необходимо установить сам nginx и mod_realip для apache. Допустим у нас есть 2 сайта на одном IP. Прежде всего необходимо изменить их в apache, "рассадив" каждый сайт на выделенный внутренний IP (127.0.0.2, 127.0.0.3), изменив IP в VirtualHost. Так-же не забудьте добавить сетевые алиасы к каждому из используемых внутренних IP. Далее необходимо указать реальные IP через директиву mod_realip: RealIP 127.0.0.2 127.0.0.3 xfwd Далее приступим к конфигурации nginx, файл nginx.conf: user nobody nobody; worker_processes 3; pid /var/run/nginx.pid; error_log /var/log/nginx.error_log info; events { connections 1000; use kqueue; } http { include mime.types; default_type application/octet-stream; log_format main '%addr - - [%time] "%request" %status ' '%length "%{Referer}i" "%{User-Agent}i" ' '"%gzip_ratio"'; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; client_header_buffer_size 1k; large_client_header_buffers 4 4k; gzip on; gzip_min_length 1100; gzip_buffers 4 8k; gzip_types text/plain; output_buffers 1 32k; postpone_output 1460; sendfile on; tcp_nopush on; tcp_nodelay on; send_lowat 12000; keepalive_timeout 75 20; server { listen реальный.ip.адрес.сервера; server_name имя.сайта1 www.имя.сайта1; access_log /var/log/сайт1.access_log main; location / { proxy_pass http://127.0.0.2/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; client_max_body_size 10m; client_body_buffer_size 128k; client_body_temp_path /var/nginx/client_body_temp; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_send_lowat 12000; proxy_header_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_temp_path /var/nginx/proxy_temp; } error_page 404 /index.html; location /index.html { root /путь/к/размещению/страницы/ошибки; } location ~* ^.+\.(jpg|jpeg|gif)$ { valid_referers server_names *.имя.сайта1/; if ($invalid_referer) { return 403; } root /путь/к/размещению/сайта1; } location ~* ^.+\.(htm|html)$ { root /путь/к/размещению/сайта1; } } server { listen реальный.ip.адрес.сервера; server_name имя.сайта2 www.имя.сайта2; access_log /var/log/сайт2.access_log main; location / { proxy_pass http://127.0.0.3/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; client_max_body_size 10m; client_body_buffer_size 128k; client_body_temp_path /var/nginx/client_body_temp; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_send_lowat 12000; proxy_header_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_temp_path /var/nginx/proxy_temp; } error_page 404 /index.html; location /index.html { root /путь/к/размещению/страницы/ошибки; } location ~* ^.+\.(jpg|jpeg|gif)$ { valid_referers server_names *.имя.сайта2/; if ($invalid_referer) { return 403; } root /путь/к/размещению/сайта2; } location ~* ^.+\.(htm|html)$ { root /путь/к/размещению/сайта2; } } } Надеемся что на таком простом и реально работоспособным примером мы наглядно продемонстрировали ту небольшую, но наиболее полезную большинству часть возможнойстей nginx.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, Иван (??), 16:58, 19/06/2009 [ответить]  
  • +/
    Как можно посчитать следующие параметры для своего проекта? ( ведь наверняка все проекты разные , какие то заточены под отдачу больших файлов с видео например, другие просто под раздачу чего-то другого)
                                proxy_header_buffer_size, proxy_buffers, proxy_busy_buffers_size
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру