ГлавнаяРегистрацияВходВ закладки

Главная » Статьи » FreeBSD » Как настроить FreeBSD
Apache и Nginx Virtualhost
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-]
Просмотров: 2976
Дата: 2011-07-14 13:34:50
Комментариев: 0
Источник: