Apache2 ProxyPassReverse, не переписывая URL правильно

Я имею ниже апачской virtualhost конфигурации. ProxyPassReverse, кажется, не преобразовывает URL правильно.

URL http://www.example.com/9999pcap/ показывает список каталогов на удаленном устройстве, и список каталогов выглядит хорошо, но если Вы нажимаете на файл captype1.pcap1.gz для загрузки его, Вы добираетесь

Требуемый URL/captype1.pcap1.gz не был найден на этом сервере

и шоу панели URL /captype1.pcap1.gz. Если Вы вручную изменяете URL на /9999pcap/captype1.pcap1.gz это правильно загружает файл.

[Sat Dec 06 19:19:33.265254 2014] [core:info] [pid 22470:tid 139711796442880] [client 127.0.0.1:56469] AH00128: File does not exist: /var/www/html/captype1.pcap1.gz, referer: http://www.example.com/9999pcap/

URL /9999/ показывает страницу входа в систему удаленного устройства, но это выглядит неправильным, потому что это правильно не загружает таблицы стилей и другие файлы и пытается войти в сбои с

Требуемый URL/cgi-bin/luci/не был найден на этом сервере.

Кто-либо может сказать мне, что я делаю неправильно здесь?Спасибо!

<VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        DirectoryIndex index.html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        LogLevel debug

        ProxyRequests Off
        ProxyPreserveHost Off

        <Proxy *>
                Order Allow,Deny
                Allow from all
        </Proxy>

        <Location /9999/>
                ProxyPass http://localhost:22002/cgi-bin/luci/
                ProxyPassReverse http://localhost:22002/cgi-bin/luci/
        </Location>
        <Location /9999pcap/>
                ProxyPass http://localhost:22003/
                ProxyPassReverse http://localhost:22003/
        </Location>
</VirtualHost>
0
задан 7 December 2014 в 10:08
1 ответ

Вы можете попробовать следующее: создать файл перед запуском задания и удалить его по завершении. Через 20 минут после начала работы проверьте, существует ли файл. Если да, то отправьте уведомление

00 07 * * * touch /tmp/run_trans_push.started; /u01/home/oracle/sysadm/run_trans_push.sh > /u01/home/oracle/trc/run_trans_push.sh_`date +\%b_\%d`.trc 2>&1; rm -f /tmp/run_trans_push.started
20 07 * * * if [ -f /tmp/run_trans_push.started ]; then echo "run_trans_push still running"; fi

Насколько я знаю, cron отправляет письмо пользователю задания cron, если есть результат. Поэтому я думаю, что достаточно выполнить эхо . Но, конечно, вы можете отправить электронное письмо, например: [

mailx -s 'run_trans_push still running' oracle </dev/null
-121--369327-

apache proxypassreverse ServerName не работает

Я отказался от этого метода, поскольку он не работает должным образом. Простая подстановка URL-адресов вручную работает нормально, как показано в этом сообщении.

<Location /9999pcap/>
        ProxyPass http://localhost:22003/
        ProxyPassReverse http://localhost:22003/
        Substitute s>href='/>href='/9999pcap/>
        SetOutputFilter INFLATE;SUBSTITUTE;DEFLATE
        RequestHeader unset Accept-Encoding
</Location>
0
ответ дан 24 November 2019 в 08:53

Теги

Похожие вопросы