nixp.ru v3.0

21 октября 2017,
суббота,
15:05:22 MSK

DevOps с компанией «Флант»
stealth написал 30 сентября 2008 года в 16:52 (918 просмотров) Ведет себя неопределенно; открыл 103 темы в форуме, оставил 124 комментария на сайте.

Привет всем.

В squid есть такая каманда которая задает где сохранить кеш:

cache_dir diskd /var/squid 5000 16 256 Q1=72 Q2=64

Вопрос такой:

Можно сделать чтобы кеш сохранился не на том компьютере, в котором настроен squid, а на другом компьютере?

// Тему переместил(а) Dmitry Shurupov из форума «UNIX FAQ: вопросы по UNIX/Linux».

pol

ну примонтируй шару с другого компа и размести на ней кэш

Dr. Evil

Да, можно.

Совет от pol верный. Только есть один минус размещения кэша squid на другой машине — отказоустойчивость. При такой схеме у тебя стабильность работы прокси-сервера зависит от 2 компьютеров. А это уже увеличивает риск выхода из строя всего прокси-сервера.

stealth

как этo cделать? Можете объяснить? O_o

Anarchist
stealth
как этo cделать?  Можете объяснить? O_o

В фре?

Тема NFSv3 в хэндбуке раскрыта достаточно убедительно.

Dr. Evil
stealth
как этo cделать?  Можете объяснить? O_o

Давай по-другому. Расскажи зачем тебе это нужно? Чем не устраивает, если кэш хранится локально.

grisha

Локальный, одиночный компьютер. На нем сквид (интереса ради).

http_port 127.0.0.1:3128

acl user src 127.0.0.1

acl SitesMail dstdomain .mail.ru

http_access allow user

http_access deny user SitesMail

http_access deny all

Вопрос. Почему пользователь продолжает свободно заходить на mail.ru?

Anarchist
grisha
http_access allow user

http_access deny user SitesMail

http_access deny all

Вопрос. Почему пользователь продолжает свободно заходить на mail.ru?

Потому что строки директив разрешения допуска складываются (логическое «ИЛИ»).

Ты уже разрешил этому пользователю всё.

Что (и кому) ты потом запрещаешь пофиг!

Тебе следовало писать

http_access allow user !SitesMail
http_access deny all


(потому что в рамках строки действует связки «И»)

grisha
Потому что строки директив разрешения допуска складываются (логическое «ИЛИ»).

Ты уже разрешил этому пользователю всё.

Что (и кому) ты потом запрещаешь пофиг!

Ясно, спасибо. А я думал, что последняя строка решающая.

Еще такой вопрос. Надо было для lynx прописать эту проксю локальную. Ну я пошел в .profile юзера (у него bash) и написал там так:

HTTP_PROXY=«http://localhost:3128» export HTTP_PROXY

Однако люнкс продолжал не видеть проксю. И только когда я изменил заглавные буквы на малые, получилось. Почему? В файле .profile уже были по умолчанию некоторые комманды типа EDITOR и т.д. (с большой буквы)

Anarchist
grisha
Еще такой вопрос. Надо было для lynx прописать эту проксю локальную. Ну я пошел в .profile юзера (у него bash) и написал там так:

HTTP_PROXY=«http://localhost:3128»   export HTTP_PROXY

Однако люнкс продолжал не видеть проксю. И только когда я изменил заглавные буквы на малые, получилось. Почему? В файле .profile уже были по умолчанию некоторые комманды типа EDITOR и т.д. (с большой буквы)

Потому что в той части, которая относится к прокси актуальный (новый) формат переменных — в нижнем регистре.

Для 'EDITOR' актуален верхний.

grisha

Что бзде хорошо, то убунте не очень? Чего ей надо (прозрачное имя хоста?)?

:~$ sudo /etc/init.d/squid start

* Starting Squid HTTP proxy squid * Creating squid spool directory structure

FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'

Squid Cache (Version 2.6.STABLE14): Terminated abnormally.

CPU Usage: 0.008 seconds = 0.004 user + 0.004 sys

Maximum Resident Size: 0 KB

Page faults with physical i/o: 0

Aborted (core dumped)

FATAL: Could not determine fully qualified hostname. Please set 'visible_hostname'

Squid Cache (Version 2.6.STABLE14): Terminated abnormally.

CPU Usage: 0.008 seconds = 0.008 user + 0.000 sys

Maximum Resident Size: 0 KB

Page faults with physical i/o: 0

Aborted (core dumped)

[fail]

Anarchist
grisha
Что бзде хорошо, то убунте не очень?

Ты об чём?

grisha
Чего ей надо (прозрачное имя хоста?)?

:~$ sudo /etc/init.d/squid start

* Starting Squid HTTP proxy squid                                                                   * Creating squid spool directory structure

FATAL: Could not determine fully qualified hostname.  Please set 'visible_hostname'

Ну и пропиши в squid.conf что-нибудь типа

visible_hostname proxy.mydomain.ru
grisha

Добавил к нему cachemgr.cgi (утилита для просмотра статистики через веб интерфейс). Убунта поместила этот скрипт в /usr/lib/cgi-bin. Я переместил его в /var/www/cgi-bin/ . Набираю в браузере localhost/cgi-bin — получаю Forbidden

You don’t have permission to access /cgi-bin/ on this server.

Apache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6.4 Server at localhost Port 80

Права на папку 777 (эксперимента ради) — все равно жалуется на права.

Anarchist
grisha
Добавил к нему cachemgr.cgi (утилита для просмотра статистики через веб интерфейс).

Ты уверен, что для просмотра статистики, а не для администрирования сервера?

Вообще .cgi-скрипты, они для придания обратной составляющей связи хоста с внешним миром через web-интерфейс (без них сервер только отдаёт данные)

grisha
Убунта поместила этот скрипт в /usr/lib/cgi-bin. Я переместил его в /var/www/cgi-bin/ . Набираю в браузере localhost/cgi-bin — получаю Forbidden

You don’t have permission to access /cgi-bin/ on this server.

Apache/2.2.4 (Ubuntu) PHP/5.2.3-1ubuntu6.4 Server at localhost Port 80

Ты Индейца вообще настраивал?

Или даже конфиг(и) евонный(е) не читал?..

Почто душеспасительное чтиво игнорируешь?

В качестве епитимьи — зачитать тему полностью вслух три раза (ответ на твой вопрос скорее всего второй с конца).

Наводящий вопрос: у тебя доступ к корню web-сервера умолчательный?

Который

Order deny,allow
Deny from all


И чему ты удивляешься?

grisha
Права на папку 777 (эксперимента ради) — все равно жалуется на права.

Ёб твою мать блядь!

Ну сколько можно повторять: права 777 — это мягко говоря неправильное «решение» (причём реальным решением оно обычно и не бывает).

Быстро исправляй на 755 для каталогов и 644 для файлов!

grisha
Ты Индейца вообще настраивал?

Или даже конфиг(и) евонный(е) не читал?..

Нууу… Как бы это. Не ну не все конечно, а в пределах разумного.8)

Наводящий вопрос: у тебя доступ к корню web-сервера умолчательный?

Ты это про .htaccess? Есть такой-я его создал, а внутри написал:


order deny,allow deny from all allow from localhost </Location>


Который Код:

Order deny,allow

Deny from all

И чему ты удивляешься?

Удивлялся скорее всего не этому, а вот этому

/cgi-bin/cachemgr.cgi>

Т.е. доступ прописан исключтельно для конечного файла-скрипта. Поэтому, когда в браузере вводил localhost/cgi-bin/ — то в ответ фиг, а стоило набрать localhost/cgi-bin/cachemgr.cgi — совсем другое дело. Вот такая загагулина. Что делать? Читать про апаче? Думаешь поможет? 8-)

Anarchist
grisha
Нууу… Как бы это. Не ну не все конечно, а в пределах разумного.8)

Практика показывает, что недостаточно.

grisha
Ты это про .htaccess?

Нет. Я про то, что прописано в httpd.conf.

grisha
Удивлялся скорее всего не этому, а вот этому

/cgi-bin/cachemgr.cgi>

Т.е. доступ прописан исключтельно для конечного файла-скрипта. Поэтому, когда в браузере вводил localhost/cgi-bin/ — то в ответ фиг, а стоило набрать localhost/cgi-bin/cachemgr.cgi — совсем другое дело. Вот такая загагулина. Что делать? Читать про апаче? Думаешь поможет? 8-)

Могу ещё порекомендовать визит к доброму доктору эвтаназиологу…

Hint: пропиши в качестве Directory Index cachemgr.cgi и обретёшл счастье.

Ещё помни, что в httpd.conf (в силу сути, см. что я писал выше) есть ограничение на каталоги, в которых находятся отрабатываемые Индейцем cgi-скрипты.

grisha
Нет. Я про то, что прописано в httpd.conf.

Вот что там было с самого начала (до вопроса про cachemgr.cgi)

order allow,deny

allow from localhost

DirectoryIndex index.php index.html index.htm

AcceptPathInfo on

Hint: пропиши в качестве Directory Index cachemgr.cgi и обретёшл счастье.

Шутник. All the same.

grisha
Удивлялся скорее всего не этому, а вот этому Код:

/cgi-bin/cachemgr.cgi>

Экспериментально подтвердилось что тут тоже нечему удивляться. Непонятно.8(

Ещё помни, что в httpd.conf (в силу сути, см. что я писал выше) есть ограничение на каталоги, в которых находятся отрабатываемые Индейцем cgi-скрипты.

Что то в упор не вижу я этих ограничений.

Anarchist
grisha
Что то в упор не вижу я этих ограничений.



#
# "/usr/local/www/apache22/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
AllowOverride None Options None Order allow,deny Allow from all </Directory>

И особенно!

#
    # AddHandler allows you to map certain file extensions to "handlers":
    # actions unrelated to filetype. These can be either built into the server
    # or added with the Action directive (see below)
    #
    # To use CGI scripts outside of ScriptAliased directories:
    # (You will also need to add "ExecCGI" to the "Options" directive.)
    #
    AddHandler cgi-script .cgi
grisha

Похоже что есть у апача в убунте то о чем ты говоришь и живет оно здесь: /etc/apache2/sites-available/default

и выглядит так:

NameVirtualHost *
ServerAdmin webmaster@localhost DocumentRoot /var/www/ Options FollowSymLinks AllowOverride None </Directory> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from 127.0.0.1 # This directive allows us to have apache2's default start page # in /apache2-default/, but still have / go to the right place #RedirectMatch ^/$ /apache2-default/ </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from 127.0.0.1 </Directory>

Мне показалось логичным сменить директори с на /var/www/cgi-bin плюс добавил/изменил то что ты советовал. Все равно при обращении к localhost/sgi-bin -доступ запрещен, а при localhost/sgi-bin/cachemgr.cgi — все работает.

grisha

Рискну ближе к сквиду еще вопросик ;). Уж очень интересно знать. В общем иногда желательно скрыть свое географическое местоположение. Знаю что в прокси среди прочего возможна и подмена/скрытие айпи. Возможно ли такое в условиях локального одиночного компа? Если да, то дайте какое нибудь направление куда двигаться, потому что конфиг сквида:

header_access Via deny all

forwarded_for off

header_access From deny all

header_access Referer deny all

header_access Server deny all

header_access User-Agent deny all

header_access WWW-Authenticate deny all

header_access Link deny all

Желаемого результата не дает (в принципе все режет, но вот удаленный адрес остается, а с ним соответственно местность)

Anarchist
grisha
Мне показалось логичным сменить директори с       на /var/www/cgi-bin плюс добавил/изменил то что ты советовал. Все равно при обращении к localhost/sgi-bin -доступ запрещен, а при localhost/sgi-bin/cachemgr.cgi — все работает.

ScriptAlias не менял?

Anarchist
grisha
Рискну ближе к сквиду еще вопросик ;). Уж очень интересно знать. В общем иногда желательно скрыть свое географическое местоположение. Знаю что в прокси среди прочего возможна и подмена/скрытие айпи. Возможно ли такое в условиях локального одиночного компа?

Рабочей станции, которая стоит за проксёй.

Не столько подмена, сколько сокрытие.

В случае прокси на том же хосте — явление не имеющее большого смысла.

grisha
ScriptAlias не менял?

Так:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
      
            AllowOverride None
            Options none
            Order allow,deny
            Allow from 127.0.0.1
      </Directory>
AddHandler cgi-script .cgi
grisha
Рабочей станции, которая стоит за проксёй.

Т.е. без второго компа никак?

grisha
Все равно при обращении к localhost/sgi-bin -доступ запрещен, а при localhost/sgi-bin/cachemgr.cgi — все работает.

А теперь доступ запрещен при любом вводе (хотя все вернул назад как было). 8(

И еще (by the way) апача при запуске/рестарте запускается но комментирует свой запуск такой стракой постоянно

sudo /etc/init.d/apache2 start
 * Starting web server apache2                                                                      apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
                                                                                             [ OK ]
Anarchist
grisha
Так:

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
      
            AllowOverride None
            Options none
            Order allow,deny
            Allow from 127.0.0.1
      </Directory>
AddHandler cgi-script .cgi

На самом деле тебе должно хватить строки

AddHandler cgi-script .cgi


и исправления DirectoryIndex’а

Anarchist
grisha
Т.е. без второго компа никак?

И адрес этого второго компа ты не скроешь.

По крайней мере средствами установленной там прокси.

Anarchist
grisha
А теперь доступ запрещен при любом вводе (хотя все вернул назад как было). 8(

И еще (by the way) апача при запуске/рестарте запускается но комментирует свой запуск такой стракой постоянно

sudo /etc/init.d/apache2 start
 * Starting web server apache2                                                                      apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
                                                                                             [ OK ]

Знаешь что:

Сначала попробуй сам разобраться с настройками Индейца (в предположении 2.2.Х).

Не смогёшь — заводи тему «как правильно настроить Apache 2.2»

Но помни, что второй вариант карается обязательством представленить публике статью надлежащего качества.