nginx+nginx, убрать блокировку на диске, конфиг
Андрей
deepmindster at gmail.com
Thu Jun 5 02:51:04 MSD 2008
Доброго времени суток.
Собственно, хотелось убрать блокировку на диске. Для этого, как здесь и
предлагалось несколько раз, установил связку nginx+nginx. Второй nginx
отдаёт первому статику с диска, так как соединение по tcp-сокету, то, по
идее, первый nginx, читая обычный сокет, не будет блокироваться и будет
всегда готов принять соединение и выдать информацию из памяти(если она
там есть), даже если диск сильно загружен. Настройки примерно такие -
отключил сендфайл, proxy_buffering off, tcp_nopush on, tcp_nodelay off,
gzip off. Собственно вопрос - не вопрос, а скорее просьба: глянте
конфиг, кто может/желает, может чего путнее подскажете, у меня опыта нет
в этом никакого почти - наверняка где-то что-то можно улучшить. Кроме
того, не совсем ясно что делать с таймаутами и должно ли быть соединение
keepalive между фронтендом и бекэндом?
конфиг фронтенда
server {
listen xxx.xxx.xxx.xxx:80;
server_name example.com;
root /srv/www/vhosts/example.com;
index no-such-image;
access_log /var/log/nginx/example.com.access.log main;
client_max_body_size 16k;
client_body_buffer_size 16k;
location / {
rewrite ^/images/(\d+).*$ /index.php?page=image_$1 last;
deny all;
}
location = /index.php {
proxy_pass http://127.0.0.1:1028;
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;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
internal;
}
}
конфигурация бэкенда:
user nginx nginx;
worker_rlimit_nofile 10240;
worker_processes 4;
error_log /var/log/nginx_127.0.0.1/error.log warn;
pid /var/run/nginx_127.0.0.1.pid;
events {
worker_connections 10240;
use epoll;
}
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 /var/log/nginx_127.0.0.1/access.log main;
sendfile off;
tcp_nopush on;
keepalive_timeout 0;
tcp_nodelay off;
gzip off;
server {
listen 127.0.0.1:1028;
server_name example.com;
root /srv/www/vhosts/example.com;
access_log
/var/log/nginx_127.0.0.1/example.com.access.log main;
client_max_body_size 16k;
client_body_buffer_size 16k;
location / {
deny all;
}
location = /index.php {
fastcgi_pass 127.0.0.1:1026;
fastcgi_param SCRIPT_FILENAME
/srv/www/vhosts/example.com$fastcgi_script_name;
include fastcgi_params;
}
location /saves {
root /srv/www/vhosts/example.com;
internal;
expires 8h;
}
}
}
спасибо,
Андрей.
More information about the nginx-ru
mailing list