LINUX.ORG.RU

27
Всего сообщений: 730

Писать логи из docker на хост

Как писать логи из докера наружу? Самое простое решение — запускать его командой

docker run  --mount=type=bind,source=/var/log/apache2/,destination=/var/log/apache2-docker/ {image_name}

А что будет, если одновременно запустить несколько экземпляров? Будут писать в один файл вперемешку? Или как-то разрулят?

И умеет ли syslog-ng штатно обслуживать такую ситуацию, когда несколько виртуальных машин пишут логи на хост? По каким ключевым словам искать? А то я не могу определить, когда документация говорит о логах самого Докера, а когда о логах программ в гостевой системе.

 , ,

olegd ()

Apache и симлинк в DocumentRoot

Всем привет. Пытаюсь запустить rails app. Вот кусок vhost:

  DocumentRoot "/usr/share/app/public"

  <Directory "/usr/share/app/public">
    Options FollowSymLinks
    AllowOverride None
    Require all granted
  </Directory>

Апач выдает: «symbolic link is not allowed or link target not accessible»

Гуглю уже почти 6 часов. Уже все по нескольку раз перепроверил даже побуквенно все конфиги. Символьная ссылка рабочая. Юзером апача читается и выполняются все что есть по симлинку. Никаких селинуксов и аппарморов нету. Если вместо симлинка подсунуть оригинал - все работает. WTF?! Что ему еще надо чтобы прочитать этот чертов симлинк? Помогите плз! Я бы и плюнул на это дело, но не могу. Надо доковыряться до истины.

 ,

N-N ()

Apache перестал отдавать контент определеным сетевым интерфейсам

Всем Привет! Особенно Умным.

на сервере расположено несколько virtual хостов. на сервере есть два интерфейса и IP адреса контент отдаеться с любого из них

а настройках webserver сонфигах стоит отдавать контент любому IP

<VirtualHost *:80>

после добавление 3 третьего дополнительного интерфейса и IP

auto eth0:3
iface eth0:3 inet static
address 2.2.2.2 (пример)
netmask 255.255.255.0

c третьего интерфейса IP перестал отдаваться контент

но если вписать айпи в веб сервер тогда отдает контент

<VirtualHost 2.2.2.2:80>

произошло это все после того как добавляли новый интерфейс и допустили ошибку в добавлении интерфейса:

когда добавляли сразу допустили ощибку

auto eth0:2
iface eth0:2 inet static
address 1.1.1.1
netmask 255.255.255.0

auto eth0:3
iface eth0:2 inet static
address 2.2.2.2
netmask 255.255.255.0 

тоесть в eth0:3 указали

[iface eth0:2 inet static]

после чего исправили все.

но контент так и не отдает по 2.2.2.2 а с 1.1.1.1 отдает.

а если вписать в веб сервере

<VirtualHost 2.2.2.2:80>

тогда отдает.

Полтергейст помогите разобраться.

почему с параметрами веб конфига

<VirtualHost *:80>

по обращению с 1.1.1.1 контент отдает. А с 2.2.2.2 не отдает =(

Всем Спасибо.

 , ,

shrmvl ()

Мучения с настройкой apache

Вылазят различные косяки при настройке apache. В инете найти решения не получается. Прошу советов. И такой момент, прошу отвечать только тех кто по apache реально собаку съел, если ваши знания поверхностны, то лучше воздержитесь от ответов.

1. Что делать, чтобы уменьшить потребление оперативной памяти? Стоит ли отключать некоторые включённые по умолчанию модули и прописывать какие директивы в httpd.conf? Я отключил cgi_module и cgid_module, сайтов, требующих cgi, у меня всё равно нет. Но вот запускаю я htop и вижу, что у меня висят в памяти 5 процессов httpd, каждый из которых жрёт около 25000 оперативной памяти и 500M виртуальной и это при нулевой нагрузке. Зачем так? Мне казалось сколько клиентов подключены к серверу столько и процессов должно быть, ну ещё должны быть резервные процессы запущены, чтобы как только подключится новый клиент, чтобы сайт у него тут же грузился без ожидания пока запустится новый процесс. О мультипроцессинговых моделях слово, заметил что по умолчанию стоит worker, если версия apache старая то itk, а какая модель лучше: itk, worker, prefork или event? Так сайтов у меня сейчас 5, захожу на них только я, но один будет раскручиваться, планируется нагрузка 10-50 хитов в минуту. И вообще достаточно ли VDS с 512 Мбайт памяти для развёртывания на нём LAMP или нужно минимум гигабайт? А так я, прочитав некоторые статьи в Интернете и руководствуясь собственными измышлениями, прописал некоторые директивы для worker, насколько так правильно?

KeepAlive On
KeepAliveTimeout 30
StartServers 1
MinSpareServers 1
MaxSpareServers 4
Serverlimit 4
MaxClients 4
MaxRequestsPerChild 30

2. Бывает клиент запрашивает один сайт, а ему выдаётся другой, при этом запрос возвращает нормальный код 200. Например клиент заходит не по имени виртуального хоста, а по ip-адресу, ему в этом случае должна выдаваться страница-заглушка, но вместо этого ему выдаётся сайт, чьё имя первое в алфавитном порядке. Я уже спрашивал о том как с этим бороться здесь www.linux.org.ru/forum/general/13889591 мне посоветовали создать виртуальный хост с именем 000-default и страницу-заглушку расположить на нём. Я так и сделал, хотя считаю этот метод костылём, ведь по правильному путь к странице-заглушке должен быть указан в директиве DocumentRoot, расположенной вне блоков <VirtualHost> до них и всё должно работать. Сегодня обнаружился ещё один косяк, я создал поддомен, но при попытке зайти на него - грузится основной сайт. Для пояснения выкладываю фрагменты конфигов:
/etc/httpd/conf/httpd.conf:

IncludeOptional conf.d/*.conf
/etc/httpd/conf.d/m????????????.info.conf:
<VirtualHost *:80>
   ServerName m????????????.info
   ServerAlias www.m????????????.info
   DocumentRoot "/var/www/m????????????.info/html"
   DirectoryIndex index.html index.htm index.php
   AddDefaultCharset UTF-8
   ErrorLog "/var/www/m????????????.info/error.log"
   CustomLog "/var/www/m????????????.info/access.log" common
   <Directory "/var/www/m????????????.info/html">
      AllowOverride All
      Options -Indexes
   </Directory>
</VirtualHost>
/etc/httpd/conf.d/ver21022018.m????????????.info.conf:
<VirtualHost *:80>
   ServerName ver21022018.m????????????.info
   DocumentRoot "/var/www/ver21022018.m????????????.info/html"
   DirectoryIndex index.html index.htm index.php
   AddDefaultCharset UTF-8
   ErrorLog "/var/www/ver21022018.m????????????.info/error.log"
   CustomLog "/var/www/ver21022018.m????????????.info/access.log" common
   <Directory "/var/www/ver21022018.m????????????.info/html">
      AllowOverride All
      Options -Indexes
   </Directory>
</VirtualHost>
То есть я захожу на ver21022018.m????????????.info, а грузится контент сайта m????????????.info.

Кто что подскажет?

 ,

sunny1983 ()

Хотлинкинг в связке Apache + Nginx

Приветствую всех участников форума.

Вопрос в том как правильно внести исключенные сайты в эту директиву;

valid_referers server_names ~(google|pinterest|reddit); if ($invalid_referer) { return 403; }

При добавлении таким способом (google|pinterest|reddit); мой сайт не отдает фотки google+ и pinterest, другие сайты не тестировал.

Я полный нуб по работе с Nginx да и серверными технологиями вообще, поэтому заранее извиняюсь за неправильную терминологию и ляпы.

Всем заранее огромное спасибо за советы, примеры, и рекомендации.

 ,

makol ()

не получается зайти на алиас веб сервера

Доброго времени суток. помогите с решением проблемы. Установил apache, на стартовую страницу заходит http://192.168.1.38, а алиас нет http://192.168.1.38/pxe - You don't have permission to access /pxe on this server. Iptables прописал. вот данные:

[root@localhost tmp]# vi /etc/httpd/conf.d/pxeboot.conf
alias /pxe /var/lib/tftpboot/images/
<Directory /var/lib/tftpboot/images>
   Options Indexes FollowSymLinks
   AllowOverride All
   Allow From All
</Directory>
в чем может быть проблема?

 

serg10 ()

Apache load balancer не работает на одном хосте

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

MAIN_URL=http://main:port/
AUX_URL=http://aux:port/

Сам балансер запущен на main на том же порту (тот же инстанс апача, это обязательное требование). Идея архитектора была в том, чтобы все запросы шли в нормальном режиме на main, а в случае нагрузки перебрасывались на aux.

Прокси конфиг, выданный архитектором:

<Proxy balancer://mybalancer>
  BalancerMember $MAIN_URL keepalive=On  connectiontimeout=5 retry=180
  BalancerMember $AUX_URL  keepalive=On  connectiontimeout=5 retry=180
  # byrequests для целей тестирования.
  ProxySet lbmethod=byrequests stickysession=ROUTEID
</Proxy>

<IfDefine IS_AUX>
  ProxyPass        /myapp   balancer://mybalancer/myapp
  ProxyPassReverse /myapp   balancer://mybalancer/myapp
</IfDefine>

Вроде бы сделано всё по мануалам (я специально гуглил, чтобы понять, что здесь происходит).

Теперь мне надо это заставить работать. Оба апача на обоих хостах стартуют нормально, все сервисы отзываются и работают. Но балансировка работает как-то странно.

Тестирую с помощью ab. Если запросы посылать на MAIN_URL/myapp, они выполняются только на main, загрузка не распределяется на вторую ноду. Если запросы посылать на AUX_URL/myapp, он перенаправляет все запросы на main. Я так понимаю, это из-за секции IfDefine IS_AUX, т.е. поведение ожидаемое, но при этом тоже не распределяет равномерно между нодами.

У меня есть подозрение, что апач не может держать балансер и мембер на одном и том же хосте+порте, и здесь нужно использовать какой-нибудь отдельный VirtualHost (?) для main ноды. Но я апач и его конфиги вижу второй раз в жизни, поэтому не могу авторитетно возразить архитектору.

Что здесь вообще можно проверить? Как посмотреть, почему апач не распределяет загрузку через балансер? Или действительно на одном хосте нельзя держать балансер и ноду? Я не смог нагуглить подтверждение.

 ,

E ()

AttributeError: module '__wsgi__' has no attribute 'application'

Поставил mod_wsgi-express, попробовал запустить сервер, ранее нормально работавший с Flask, получил ошибку 500.

Запускаю командой:

mod_wsgi-express start-server server.py --port 8081 --host localhost

Получаю следующий лог с ошибкой:

$ cat /tmp/mod_wsgi-localhost:8081:1000/error_log
[Mon Mar 26 03:28:55.639890 2018] [mpm_event:notice] [pid 19429:tid 140449802274688] AH00489: Apache/2.4.18 (Ubuntu) mod_wsgi/4.6.2 Python/3.5 configured -- resuming normal operations
[Mon Mar 26 03:28:55.639969 2018] [core:notice] [pid 19429:tid 140449802274688] AH00094: Command line: 'apache2 (mod_wsgi-express) -f /tmp/mod_wsgi-localhost:8081:1000/httpd.conf -D MOD_WSGI_WITH_LISTENER_HOST -D MOD_WSGI_MPM_ENABLE_EVENT_MODULE -D MOD_WSGI_MPM_EXISTS_EVENT_MODULE -D MOD_WSGI_MPM_EXISTS_WORKER_MODULE -D MOD_WSGI_MPM_EXISTS_PREFORK_MODULE -D FOREGROUND'
[Mon Mar 26 03:28:55.978568 2018] [wsgi:error] [pid 19431:tid 140449802274688] mod_wsgi (pid=19431): Failed to exec Python script file '/tmp/mod_wsgi-localhost:8081:1000/handler.wsgi'.
[Mon Mar 26 03:28:55.978608 2018] [wsgi:error] [pid 19431:tid 140449802274688] mod_wsgi (pid=19431): Exception occurred processing WSGI script '/tmp/mod_wsgi-localhost:8081:1000/handler.wsgi'.
[Mon Mar 26 03:28:55.979490 2018] [wsgi:error] [pid 19431:tid 140449802274688] Traceback (most recent call last):
[Mon Mar 26 03:28:55.979518 2018] [wsgi:error] [pid 19431:tid 140449802274688]   File "/tmp/mod_wsgi-localhost:8081:1000/handler.wsgi", line 94, in <module>
[Mon Mar 26 03:28:55.979523 2018] [wsgi:error] [pid 19431:tid 140449802274688]     recorder_directory=recorder_directory)
[Mon Mar 26 03:28:55.979530 2018] [wsgi:error] [pid 19431:tid 140449802274688]   File "/usr/local/lib/python3.5/dist-packages/mod_wsgi/server/__init__.py", line 1414, in __init__
[Mon Mar 26 03:28:55.979534 2018] [wsgi:error] [pid 19431:tid 140449802274688]     self.application = getattr(self.module, callable_object)
[Mon Mar 26 03:28:55.979552 2018] [wsgi:error] [pid 19431:tid 140449802274688] AttributeError: module '__wsgi__' has no attribute 'application'

mod_wsgi-express ставил через pip. Дистрибутив — Ubuntu 16.04. Сгенерированный handler.wsgi: https://pastebin.com/DPx5kgwK

Что ему не нравится в handler.wsgi?

Update: «Hello,world» из документации: https://modwsgi.readthedocs.io/en/develop/user-guides/quick-configuration-gui... заработал. Похоже, проблема в вызываемом приложении.

Ответ: По умолчанию Апач вызывает «application». В handler.wsgi это задаётся как callable_object = 'application'. В моём случае имя оказалось другим. Проблема решилась автозаменой в server.py. Также можно воспользоваться ключом --callable-object.

 , ,

olegd ()

Проксирование сайта через Апач

Помогите если возможно! делал по гайдам и мануалам... но так и не заработало... Имею белый ип адрес, настроил 2 субдомена, 1 открывает стандартный 80-443, второй на том же локальном адресе должен с 10000 порта сайт открывать... но в итоге грузит что и первый субдомен(

SSLEngine on SSLProxyEngine On ProxyPreserveHost On ProxyVia full ProxyRequests Off ProxyPass / https://192.168.0.92:10000/ proxyPassReverse / https://192.168.0.92:10000/ ServerName wembin.сайт.pw ServerAlias webmin.сайт.pw SSLCertificateFile /etc/letsencrypt/live/webmin.сайт.pw/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/webmin.сайт.pw/privkey.pem #Include /etc/letsencrypt/options-ssl-apache.conf <Proxy *> Order deny,allow Allow from all </Proxy>

 ,

coolnik ()

oreka FreeBSD+xerces

Добрый день! Пытаюсь установить на FB 11.1 писалку RTP-потока для voip по этой инструкции:http://orekabsd.blogspot.ru/ Для сборки требуется бибилиотека xerces. В репозиториях есть только xerces-c3-3.2.0_2 Ставим, пытаемся собрать, получаем ошибку DomSerializer.cpp:20:37: fatal error: xercesc/dom/DOMWriter.hpp: No such file or directory #include <xercesc/dom/DOMWriter.hpp> Все потому, что папка dom в версии 3 deprecated. В архивах апача нашел сорцы версии 2.8.0, однако не собирается. Есть ли какое-нибудь решение проблемы? Под Centos собирается норма

 

inks ()

редирект картинок через прокси nginx

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

имею 1 сервер c web proxy. nginx. конфигурация nginx для редиректа на другую машину

server {
    listen 80 ;
..
    server_name getstone.kc;
..
  access_log /var/log/nginx/getstone_access.log main;
  error_log  /var/log/nginx/getstone_error.log warn;

  #charset utf-8;
  server_name_in_redirect off;

  proxy_set_header<---->X-Real-IP $remote_addr;
  proxy_set_header<---->X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header<---->Host $host;

    set $proxyserver  "http://192.168.0.220:80";
..
    set $imcontenttype<>"text/html; charset=utf-8";
    set $docroot<------><------>"/home/ext_www/getstone";

  index index.php;
  root "/home/ext_www/getstone";

  # Redirect to ssl if need
    if (-f /home/ext_www/getstone/.htsecure) { rewrite ^(.*)$ https://$host$1 permanent; }
..
  # Include parameters common to all websites
  include bx/conf/bitrix.conf;

  # Include munin and nagios web
  include bx/server_monitor.conf;
}

настроил apache 2.4 на второй машине 192.168.0.220

( читать дальше... )

теперь вопрос: когда захожу напрямую http://getstone.kc - то картинки работают. когда захожу через прокси веб сервер, картинки отсутствуют.

Что необходимо написать, чтобы весь контент на страничке отображался корректно ? Что требуется ещё показать для полной картины?

 

rayden8 ()

Apache Centos 7 сайт не доступен из вне, но работает в локальной сети

Здравствуйте имеется Centos 7 + apache на котором установлен сайт, внутри локальной сети все работает прекрасно, но если попробовать подключиться через 4g то браузер пишет «Превышено время ожидания...», порт разумеется проброшен (и другие сервисы (на других компьютерах) работают прекрасно и вне локальной сети).

В чем может быть проблема?

 , ,

ScreamTV5 ()

схема отказоустойчивости и балансировки для веб-ресурса

Здравствуйте, подскажите пж-та: имеется веб-сайт, работающий на wordpress. Данный сайт работает на centos 6 на одном физическом сервере, в качестве фронтэнда используется nginx, backend - apache, БД postgresql. Данный веб-ресурс используется в корпоративной сети, в последнее время нагрузка и важность сайта значительно увеличились. Встал вопрос об обеспечении отказоустойчивости и балансировки нагрузки для данного сайта. Есть еще 2 аналогичных физических сервера, которые можно задействовать (hp dl380 g5). Какую схему оргаризации отказоустойчивости и балансировки вы можете посоветовать?

 , ,

wiremann ()

Ошибка 500.

Добрый день, коллеги. В наследство достался сильно кастомизированный Апач на Убунте. Поверх этой конструкции установлена обучающая система Moodle (что добавляет кастомизации). Потребовалось заменить просроченные SSL сертификаты. Перерыл всю систему, вроде как нашёл и заменил. Получил странные ошибки: изнутри (внутри локалки) сайт открывается, но показывает плохой сертификат (замочек чёрный с восклицательным знаком). Снаружи не открывается вообще (Код ошибки: 500 Внутренняя ошибка сервера. Цепочка сертификатов выпущена центром сертификации, не имеющим доверия. (-2146893019) ), но показывает хороший сертификат (зелёный замочек). Не нашёл куда здесь можно прикрепить скрины.

 , ,

cider ()

апач слушает 80 порт только в локальной сети

Добрый день.
есть гипервизор с мостом (БРИДЖ)
на нём работает апач виртуалка. которая использует этот самый мост.

так вот. суть проблемы в том, что в локальной сети слушается 80 порт. а через интернет - нет. я сейчас просто воткнул кабель провайдера и напрямую подрубил именно в виртуалке рррое.
сканер из внешней сети говорит от доступности порта 22. а вот 80 там нет, и по айпи или буквам сайт не открывается. настроек никаких я не делал для внешки.

конфиг сети хоста.
https://pastebin.com/bb1mfNkQ


у виртуалки нет особых настроек сети, обычная статика.

/etc/apache2/apache2.conf
<Directory /var/www/html/wordpress>
AllowOverride All
</Directory>

 ,

darkenshvein ()

пожалуйста поясните за пути в апач

Читаю:
https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-wit...

To allow .htaccess files, we need to set the AllowOverride directive within a Directory block pointing to our document root.

окай. просят прописать

<Directory /var/www/html/>
AllowOverride All
</Directory>

но там же в руководстве ниже указывается,что папка вордпресса(документРут то бишь) располагается в /var/www/html/wordpress!!
оно вообще будет работать, если файл .htaccess будет уровнем выше?? я туда, куда надо, указываю ?
какую по итогу директорию мне указывать. логика подсказывает, что
/var/www/html/wordpress,
но в руководстве почему то /var/www/html

(указывать в /etc/apache2/apache2.conf )

 ,

darkenshvein ()

WebApplication & Google

Подскажите, пожалуйста, какие файлы и заголовки должна уметь отдавать WebApplication, «смотрящая» в интернет по 80-му порту так, чтобы роботы поисковиков, типа Google, Yandex, Baidu - распознавали ее как обычный сайт, работающий по управлением Apache или lighttpd?

 , , ,

Majestio ()

<Proxy> не понимает дополнительные параметры при использовании mod_proxy_fcgi

Настроил Apachе 2.4 в связке с php-fpm по оф.мануалам, вроде бы всё ОК, но смущает то, что пришлось закомментировать вот этот кусок конфигурации, описанный как в руководстве mod_proxy_fcgi, так и в руководстве на сайте php-fpm ( https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html и https://wiki.apache.org/httpd/PHP-FPM )

Этот кусок пришлось убрать:

<Proxy "fcgi://localhost:9000/" enablereuse=on max=10>
</Proxy>

И всё потому что Апач на этот кусок конфигурации жалуется следующим образом:

AH00526: Syntax error on line ...

Целиком конфигурация связки с php-fpm вставлена в VirtualHost и выглядит точно так же, как и в мануалах:

<FilesMatch "\.php$">

    <If "-f %{REQUEST_FILENAME}">

        # Pick one of the following approaches

        # Use the standard TCP socket

        SetHandler "proxy:fcgi://localhost/:9000"

        # If your version of httpd is 2.4.9 or newer (or has the back-ported feature), you can use the unix domain socket

        #SetHandler "proxy:unix:/path/to/app.sock|fcgi://localhost/"

    </If>

</FilesMatch>

<Proxy "fcgi://localhost:9000/" enablereuse=on max=10>
</Proxy>

Посмотрел мануал по секции «Proxy» -там конечно вообще нет упоминаний «enablereuse» и «max».

Теперь меня мучает вопрос: что я сделал не так? :)

Подскажите, если кто в курсе настройки Apache + PHP-FPM

 , ,

DRVTiny ()

Apache + Redmine

Доброе время суток! Что имею: на ВМ Redmine 3.2 + Ruby + Rails + Passenger и подружено все это с Apache. Доступ к ресурсу по адресу сайта, т.е. site.ru. Все конечно работает. Но мне необходимо чтобы доступ по site.ru/redmine - как сделать, что-то не могу ума приложить на ночь глядя. сам Redmine лежит в

/var/www/html/redmine
, конфиг apache:
<VirtualHost *:80>
 DocumentRoot /var/www/html/redmine/public
 ErrorLog logs/redmine_error_log
 <Directory "/var/www/html">
   Options Indexes ExecCGI FollowSymLinks
   Order allow,deny
   Allow from all
   AllowOverride all
 </Directory>
</VirtualHost>

Помогите советом

 ,

Ved_mak ()

Как добавить произвольный подкаталог в Wordpress?

Есть у меня домен, до недавнего времени ничего там не держал, кроме файлопомойки в подкаталоге /fileupload для фотографий / скриншотов / прочего. Сейчас развернул на том домене блог под свои заметки, но файлопомойку хотелось бы пока сохранить, так как ссылки на нее остались кое-где в интернете.

Как корректно исключить этот подкаталог из реврайтов в WP? Сейчас на любой файл отдает 403. Стоит отключить RewriteEngine в .htaccess - возвращается обычный режим индекса каталога, но ломаются ссылки в WP вида domain/y/m/d/name.

 , ,

YAR ()