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