[Sysadmins] nginx или squid или ... ?

Michael Shigorin =?iso-8859-1?q?mike_=CE=C1_osdn=2Eorg=2Eua?=
Чт Авг 16 17:03:20 MSD 2007


On Thu, Aug 16, 2007 at 03:31:43PM +0300, Slava Dubrovskiy wrote:
> >> После очередного ddos серьезно задумались над увеличением
> >> плавучести http сервиса.  Как вариант рассматривается установка
> >> фронтенда к апачу.  Много написано про nginx.
> > Как, ты ещё этого не сделал?!
> Нет. :-[

Тю.  Значит, до тебя mithraen@ ещё не добрался ;-)

> >> Но я вот задумался, а почему сквид нельзя поставить в режиме
> >> акселерации? Меня это вполне устроило бы.
> > Отстой неуправляемый.
> Мне кажется что это преимущество. Чем управлять то?

См. ниже, помимо "для этого вхоста/префикса статику брать здесь".

> У нас cpanel стоит и апачь она настраивает, а про nginx она
> ничего не знает и придется каждый раз руками менять настройки
> nginx. А это проблема.

Да ладно. (обрати внимание -- апач лучше вешать на :80 VPS'а,
чтоб этот порт был для него каноническим; если не VPS, схожий
финт делается DNAT'ом, хотя не так удобно)

--- из живого /etc/nginx/nginx.conf ---
worker_processes  3;

error_log  /var/log/nginx/error.log;
#pid        logs/nginx.pid;

events {
        connections  1024;
}

http {
        proxy_temp_path /var/spool/nginx/tmp;
        fastcgi_temp_path /var/spool/nginx/tmp;
        client_body_temp_path /var/spool/nginx/tmp;

        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;

        sendfile  on;

# connects to backend
        connection_pool_size 64;

        gzip  on;
        gzip_types      text/plain text/html text/css;

        server {
                listen 10.x.y.z:8080;
                server_name .*;

                location / {
                        proxy_pass http://127.0.0.1:80/;
                        proxy_redirect     off;
                        proxy_set_header   Host             $host;
                        proxy_set_header   X-Real-IP        $remote_addr;
                        proxy_set_header   X-Forwarded-For  $remote_addr;
                }

#        charset         on;
#        source_charset  koi8-r;

                access_log  /var/log/nginx/access.log;

        }
# .....

}

---

> >> Что лучше, squid или nginx?
> > nginx, конечно.  Он же и статику отдаст с sendfile().
> Да, со статистикой проблема.

Я про /статику/.  Со статистикой проблем тоже нет, случай выше
свалит тебе суммарную (а апач займётся per vhost).  Если ты про
"клиентские IP" -- см. proxy_set_header, а наш apache-1.3 собран
с mod_realip уже весьма давно.  Соответственно

--- из живого /etc/httpd/conf/httpd.conf ---
AddModule mod_realip.c
# ...
<IfModule mod_realip.c>
        RealIP 127.0.0.1 xfwd
        RealIP 10.x.y.z xfwd
        RealIP a.b.c.d xfwd
</IfModule>
---

(может быть избыточным, кажется, реально нужен был второй адрес 
-- на котором непосредственно всё висит, поскольку тут VPS за
NAT)

-- 
 ---- WBR, Michael Shigorin <mike на altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/



Подробная информация о списке рассылки Sysadmins