Apache и Nginx Virtualhost
Автор: admin Раздел: Как настроить FreeBSD
Apache + Nginx: Virtualhost
Устанавливается на сервер Nginx (0.8.53) + Apache 22 + mod_rpaf. Для того, ,чтобы быть размещены на сервере сайта, Вам здесь необходимо зарегистрироваться VirtualHost (виртуального хоста). Но у нас есть 2 веб-серверы, и, следовательно, Nginx (интерфейс) и Apache (модуля), ,чтобы назначить virtualhosty: 1. Apache: Одним из вариантов является создание отдельного файлика для виртуальных хостов: [-hide-] ee /usr/local/etc/apache22/extra/httpd-vhosts.conf NameVirtualHost 127.0.0.1:8080 ServerAdmin webmaster@my-host.com DocumentRoot «/usr/home/master/www/domain» ServerName domain ServerAlias www.domain.com ErrorLog «/var/log/domain-error.log» CustomLog «/var/log/domain-access.log» common Или же описать виртуалхост в конце файлика /usr/local/etc/apache22/httpd.conf На этом с Apache закончили. 2. Настраиваем virtualhost в Nginx. Создадим папочку, где будут храниться файликы с нашими виртуалхостами: mkdir /usr/local/etc/nginx/vhosts Немного отредактируем конфиг Nginx: ee /usr/local/etc/nginx/nginx.conf # пользователь от кого запущен nginx . Не нужно запускать его от root-a user nginx nginx; # количество воркеров как и количество ядер #правда некоторые советуют cpu_core*2 worker_processes 2; worker_priority -5; worker_rlimit_nofile 51200; error_log logs/error.log info; #pid logs/nginx.pid; events { # число одновременных коннектов worker_connections 2000; } http { include 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 logs/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; send_lowat 12000; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; keepalive_timeout 65; client_header_buffer_size 1k; large_client_header_buffers 4 4k; output_buffers 4 32k; #Compressing gzip on; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 8k; proxy_buffers 16 64k; proxy_buffering on; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 10m; #proxy_connect_timeout 120s; proxy_redirect off; include vhosts/*.conf; Тут пока все. Переходим в папочку vhosts и создаем конфигурационный файлик виртуалхоста: cd vhosts ee domain.conf server { listen 80; server_name domain.org www.domain.org; access_log logs/domain.org.access.log main; open_file_cache max=100000 inactive=40s; open_file_cache_valid 60s; open_file_cache_min_uses 2; open_file_cache_errors on; # Main location 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 1000m; 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; } ## Эта директива отвечает за отдачу стриминга видео location ~ \.flv$ { flv; } # То ,что отдаем обрабатывать nginx, все ,что не попало , отдает апач location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|flv|r tf|js|swf|iso)$ { root /usr/local/www/domain; } } После чего перезапускаем: # apachectl restart и # nginx restart И радуемся.[-hide-] |