Здравствуйте уважаемые знатоки.
Я впервые настраиваю Nginx и ,естественно, наступил на какие то грабли.
Проблема в следующем:
Имеется Windows Server 2008 R2 с установленном на нём Apache. Всё настроено, все работает, но медленно.
Естественно для ускорения выбор пал на Nginx.
Установил я его, настроил по различным статьям и мануалам и наблюдаю следующую проблему: Захожу через браузер, вроде всё работает и даже очень быстро, но только для того, кто первый зашел на сайт. Из других браузеров я уже не могу подключиться - беспонечно грузится страница и ничего не происходит. В первом браузере всё работает, хожу по сайту.. с других компьютеров - ничего не работает.. т.е. кто первый успел, того и сайт.. Не пойму что не так. Причем у первого сеанса счастье длится не долго, минут через 5 тоже всё останавливается и ни одна ссылка сайта не работает :((((
Т.е. на примере:
Открываю интернет эксплорер, набираю там http://site1.ru:888, засхожу, всё идеально работает! быстро и прекрасно. Открываю Firefox, набираю там http://site1.ru:888 - ничего не открывается, грузится бесконечно.. ни ошибок, ни контента... Открываю Chrome, набираю http://site1.ru:888 - ничего не открывается.. Возвращаюсь к Internet Explorer - хожу по ссылкам, всё работает, грузится.. но через несколько минут всё перестает работать.
От браузера ничего не зависит. Если первым зайти на сайт через файрфокс, то он может несколько минут ходить по сайту, а остальные уже нет..
Error.log при этом наполняется следующими строками:
2011/10/21 18:50:40 [debug] 4156#3304: select ready 0
2011/10/21 18:50:40 [debug] 4156#3304: timer delta: 500
2011/10/21 18:50:40 [debug] 4156#3304: posted events 00000000
2011/10/21 18:50:40 [debug] 4156#3304: worker cycle
2011/10/21 18:50:40 [debug] 4156#3304: accept mutex lock failed: 0
2011/10/21 18:50:40 [debug] 4156#3304: select timer: 500
2011/10/21 18:50:41 [debug] 1964#3648: select ready 0
2011/10/21 18:50:41 [debug] 1964#3648: timer delta: 500
2011/10/21 18:50:41 [debug] 1964#3648: posted events 00000000
2011/10/21 18:50:41 [debug] 1964#3648: worker cycle
2011/10/21 18:50:41 [debug] 1964#3648: accept mutex lock failed: 0
2011/10/21 18:50:41 [debug] 1964#3648: select timer: 500
2011/10/21 18:50:41 [debug] 1908#5904: select ready 0
2011/10/21 18:50:41 [debug] 1908#5904: timer delta: 500
2011/10/21 18:50:41 [debug] 1908#5904: posted events 00000000
2011/10/21 18:50:41 [debug] 1908#5904: worker cycle
2011/10/21 18:50:41 [debug] 1908#5904: accept mutex lock failed: 0
2011/10/21 18:50:41 [debug] 1908#5904: select timer: 500
2011/10/21 18:50:41 [debug] 2036#5632: select ready 0
2011/10/21 18:50:41 [debug] 2036#5632: timer delta: 500
2011/10/21 18:50:41 [debug] 2036#5632: posted events 00000000
2011/10/21 18:50:41 [debug] 2036#5632: worker cycle
2011/10/21 18:50:41 [debug] 2036#5632: accept mutex lock failed: 0
2011/10/21 18:50:41 [debug] 2036#5632: select timer: 500
2011/10/21 18:50:41 [debug] 5052#5500: select ready 0
2011/10/21 18:50:41 [debug] 5052#5500: timer delta: 500
2011/10/21 18:50:41 [debug] 5052#5500: posted events 00000000
2011/10/21 18:50:41 [debug] 5052#5500: worker cycle
2011/10/21 18:50:41 [debug] 5052#5500: accept mutex lock failed: 0
2011/10/21 18:50:41 [debug] 5052#5500: select timer: 500
2011/10/21 18:50:41 [debug] 996#2864: select ready 0
2011/10/21 18:50:41 [debug] 996#2864: timer delta: 500
2011/10/21 18:50:41 [debug] 996#2864: posted events 00000000
2011/10/21 18:50:41 [debug] 996#2864: worker cycle
2011/10/21 18:50:41 [debug] 996#2864: accept mutex locked
2011/10/21 18:50:41 [debug] 996#2864: select event: fd:508 wr:0
2011/10/21 18:50:41 [debug] 996#2864: select timer: 500
Помогите советом пожалуйста..
Конфиг следующий:
nginx.conf
#укажем пользователя, от имени которого будет работать nginx
#user nobody;
#Теперь скажем nginx-у, какое количество рабочих процессов породить. Обычно, хорошим выбором бывает число процессов, равное числу процессорных ядер в вашем сервере.
worker_processes 8;
#куда будут сыпаться логи об ошибках
error_log c:/nginx/logs/error.log debug;
pid c:/nginx/logs/nginx.pid;
worker_rlimit_nofile 80000;
worker_priority -10;
events {
worker_connections 4096;
#use select;
}
http {
include c:/nginx/conf/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 "c:/nginx/logs/access.log" main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#include /etc/nginx/conf.d/virtual.conf;
#Описываем хосты
# хост site1.ru
server {
listen 888; #IP и порт на котором слушает nginx
server_name site1.ru www.site1.ru *.site1.ru; #указываем имя и элиасы сайта site1.ru
server_name_in_redirect on;
access_log c:/nginx/logs/site1.access.log main;
include c:/nginx/conf/proxy.conf;
# Определяем местонахождение и расширения статичных файлов
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {
root d:/sites/site1.ru; #Домашний каталог сайта site1.ru
index index.php index.html;
}
# htaccess и htpasswd не отдаем
location ~ /\.ht {
deny all;
}
}
# хост site2.ru
server {
listen 888;
#указываем имена нашего сайта
server_name site2.ru www.site2.ru *.site2.ru;
server_name_in_redirect on;
access_log c:/nginx/logs/site2.access.log main;
include c:/nginx/conf/proxy.conf;
# Определяем местонахождение и расширения статичных файлов
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|wav|bmp|rtf|js)$ {
root d:/sitenet/site2.ru; #Домашний каталог сайта site2.ru
index index.php index.html;
}
# htaccess и htpasswd снова не отдаем
location ~ /\.ht {
deny all;
}
}
}
----------------------------------------------------------------------------------------------------------------------------------
Подключаемый файл proxy.conf
location / {
proxy_pass http://127.0.0.1:80/; #указываем ip и порт на котором теперь будет слушать Apache
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 40m;
client_body_buffer_size 128k;
proxy_connect_timeout 75;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 64k;
proxy_buffers 8 64k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 40m;
}