<div dir="ltr">В общем есть основной конфиг в котором описана директива инклуд, которая в свою очередь инклудит файлы с конфигурациями виртуальных серверов. Вот шаблон конфига виртуального сервера:<div><br></div><div><div>
<div>server {</div><div> listen #IP#:80;</div><div> server_name #DOMAIN#.ru www.#DOMAIN#.ru;</div><div><br></div><div> access_log /var/log/nginx/production/#PRE_DOMAIN#.log def;</div><div><br></div><div> location / {</div>
<div> proxy_pass http://#DEST-IP#:80;</div><div> proxy_redirect off;</div><div> proxy_set_header Host $host;</div><div> proxy_set_header X-Real-IP $remote_addr;</div>
<div> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</div><div><br></div><div> client_max_body_size 10m;</div><div> client_body_buffer_size 128k;</div><div><br></div>
<div> proxy_connect_timeout 90;</div><div> proxy_send_timeout 90;</div><div> proxy_read_timeout 90;</div><div> proxy_buffer_size 4k;</div><div> proxy_buffers 128 32k;</div>
<div> proxy_busy_buffers_size 64k;</div><div> proxy_temp_file_write_size 64k;</div><div> }</div><div><br></div><div> error_page 500 502 503 504 /50x.html;</div><div><br></div><div> location = /50x.html {</div>
<div> root html;</div><div> }</div><div><br></div><div> location ~ /\.ht {</div><div> deny all;</div><div> }</div><div>}</div><div>server {</div><div> listen #IP#:8081;</div><div> server_name #DOMAIN#.ru www.#DOMAIN#.ru;</div>
<div><br></div><div> access_log /var/log/nginx/def/#PRE_DOMAIN#.log def;</div><div><br></div><div> root /usr/home/#PRE_DOMAIN#/def/;</div><div><br></div><div> {опущены некоторые rewrite правила}</div><div><br>
</div><div> location /kcaptcha/ {</div><div> proxy_pass http://#LOCAL-IP#:8080/;</div><div> proxy_redirect off;</div><div> proxy_set_header Host $host;</div><div> proxy_set_header X-Real-IP $remote_addr;</div>
<div> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</div><div><br></div><div> client_body_temp_path /var/tmp/nginx/client_body_temp;</div><div> client_max_body_size 10m;</div>
<div> client_body_buffer_size 128k;</div><div><br></div><div> proxy_connect_timeout 75;</div><div> proxy_send_timeout 180;</div><div> proxy_read_timeout 180;</div><div><br>
</div><div> proxy_buffer_size 4k;</div><div> proxy_buffers 4 32k;</div><div> proxy_busy_buffers_size 64k;</div><div> proxy_temp_file_write_size 64k;</div><div> }</div>
<div>}</div><div><br></div><div>и вот конфиг дефолтного виртуального сервера</div><div><br></div><div><div>server {</div><div> listen 80 default accept_filter=httpready;</div><div><br></div><div> root /usr/local/etc/nginx/default_vhost/;</div>
<div><br></div><div> rewrite ^/(.*)$ /index.html break;</div><div><br></div><div> index index.html;</div><div>}</div><div><br></div><div><br></div><div>основной конфиг</div><div><br></div><div><div>user www;</div><div>
worker_processes 1;</div><div><br></div><div>error_log /var/log/nginx/error.log;</div><div>#error_log logs/error.log notice;</div><div>#error_log logs/error.log info;</div><div><br></div><div>#pid logs/nginx.pid;</div>
<div><br></div><div>events {</div><div> worker_connections 200000;</div><div>}</div><div><br></div><div>http {</div><div> open_file_cache max=1000 inactive=20s;</div><div> open_file_cache_valid 30s;</div>
<div> open_file_cache_min_uses 2;</div><div> open_file_cache_errors on;</div><div><br></div><div> server_tokens off;</div><div><br></div><div> client_max_body_size 15m;</div><div><br></div><div> include mime.types;</div>
<div> default_type application/octet-stream;</div><div><br></div><div> log_format main '$remote_addr - $remote_user [$time_local] $request '</div><div> '"$status" $body_bytes_sent "$http_referer" '</div>
<div> '"$http_user_agent" "$http_x_forwarded_for"';</div><div><br></div><div> log_format def '$remote_addr - $remote_user [$time_local] $request '</div><div> '"$status" $body_bytes_sent "$http_referer" '</div>
<div> '"$http_user_agent" "$http_x_forwarded_for" '</div><div> '$request_time ' '$connection';</div><div><br></div><div> access_log /var/log/nginx/access.log def;</div>
<div><br></div><div> sendfile on;</div><div> tcp_nopush on;</div><div><br></div><div> #output_buffers 1 32k;</div><div> postpone_output 1460;</div><div><br></div><div> keepalive_timeout 65;</div>
<div> reset_timedout_connection on;</div><div><br></div><div> #gzip on;</div><div><br></div><div> include vhosts/*.conf;</div><div>}</div><div><br></div><div><br></div><div>Спасибо.</div></div></div></div><div><br>
</div><br><div class="gmail_quote">19 сентября 2008 г. 22:00 пользователь Igor Sysoev <span dir="ltr"><<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="Ih2E3d">On Fri, Sep 19, 2008 at 09:27:48PM +0400, Никита Козлов wrote:<br>
<br>
> Игорь, а в 0.7.14 этот патч включен в исходники?<br>
> Просто на этой версии не работает.<br>
> Описываю дефолтный виртуальный сервер со своей рут директорией,<br>
> перезапускаю, ругани никакой нет.<br>
> На каждом из адресов есть свой виртуальный сервер с описанной<br>
> директивой server_name.<br>
> Если обратиться напрямую по IP через броузер, то обслуживает тот виртуальный<br>
> сервер в котором описана server_name, а не default сервер.<br>
><br>
> Или я чего то не понимаю и так и должно быть?<br>
> Конфиги проверил default в listen только для одного виртуального сервера.<br>
<br>
</div>Патч есть в 0.7.14, но это должно работать и без патча.<br>
Как выглядит конфигурация ?<br>
<div><div></div><div class="Wj3C7c"><br>
> 27 августа 2008 г. 17:26 пользователь Igor Sysoev <<a href="mailto:is@rambler-co.ru">is@rambler-co.ru</a>>написал:<br>
><br>
> > On Wed, Aug 27, 2008 at 03:17:10PM +0400, jackal wrote:<br>
> ><br>
> > > Задача:<br>
> > > Нужно чтобы один домен на одном айпи a.b.c.d обслуживался одной<br>
> > директивой<br>
> > > server, а все остальные домены (на всех айпи, в т.ч. a.b.c.d - другой<br>
> > > директивой server)<br>
> > ><br>
> > > Сделано вот так:<br>
> > > server {<br>
> > > listen a.b.c.d:80;<br>
> > > server_name <a href="http://domain.ru" target="_blank">domain.ru</a>;<br>
> > > ...<br>
> > > }<br>
> > > server {<br>
> > > listen a.b.c.d:80 default accept_filter=httpready backlog=1024;<br>
> > > listen 80 default accept_filter=httpready backlog=1024;<br>
> > > ...<br>
> > > }<br>
> > ><br>
> > > Вопрос - почему не выставляется backlog для айпи a.b.c.d, и выставляется<br>
> > ли<br>
> > > accept_filter?<br>
> > ><br>
> > > # sysctl kern.ipc.somaxconn<br>
> > > kern.ipc.somaxconn: 4096<br>
> > ><br>
> > > # netstat -Lan<br>
> > > Current listen queue sizes (qlen/incqlen/maxqlen)<br>
> > > Proto Listen Local Address<br>
> > > tcp4 0/0/4096 a.b.c.d.80<br>
> > > tcp4 0/0/1024 *.80<br>
> ><br>
> > Прилагаемый патч должен помочь.<br>
> ><br>
> ><br>
> > --<br>
> > Игорь Сысоев<br>
> > <a href="http://sysoev.ru" target="_blank">http://sysoev.ru</a><br>
> ><br>
<br>
</div></div>--<br>
<div><div></div><div class="Wj3C7c">Игорь Сысоев<br>
<a href="http://sysoev.ru" target="_blank">http://sysoev.ru</a><br>
<br>
</div></div></blockquote></div><br></div></div>