
У меня есть Raspberry Pi под управлением Arch Linux ARM, который я использую в качестве HTTP-сервера с Apache/2.4.29 (Unix). Недавно я пытался настроить эту машину как прямой прокси-сервер, чтобы использовать corkscrew или proxytunnel для подключения к Интернету, используя свой ноутбук за злым брандмауэром. Поэтому я добавил виртуальный сервер со следующей конфигурацией:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName proxy.mydomain.com
ErrorLog "/var/log/httpd/proxy-error_log"
CustomLog "/var/log/httpd/proxy-access_log" common
#SetEnv force-proxy-request-1.0 1
#SetEnv proxy-nokeepalive 1
ProxyRequests On
ProxyVia Block
AllowCONNECT 443 563 22 XYZ
<Proxy *>
Require ip XXX.XXX.XXX.XXX
</Proxy>
# The reverse proxy works, but the forward doesn't
#ProxyPass /test https://google.it
</VirtualHost>
Кроме того, у меня есть еще два виртуальных сервера. Интересно, что прокси работает, если это единственный включенный виртуальный хост, но если я включаю еще один vhost, прокси больше не работает.
Когда прокси не работает, я не могу использовать его с Firefox (который говорит, что прокси отклоняет соединения), и не могу использовать его с Corkscrew (который говорит, что прокси не может подключиться к серверу: метод не разрешен); также в этой ситуации файл журнала Apache говорит "клиент отклонен конфигурацией сервера: /etc/httpd/htdocs". Однако, когда я включаю только виртуальный хост прокси, все работает, так что это не проблема Corkscrew. Кто-нибудь знает почему? Спасибо.
решение1
Для прямого прокси-сервера невозможно сопоставить ServerName или ServerAlias.
Вы можете взглянуть на sslh или sshttp, это мультиплексоры ssh/http(s), позволяющие использовать оба протокола на одних и тех же портах.
ваше здоровье