[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