ProxyPassReverse не показывает желаемое местоположение - PullRequest
1 голос
/ 12 марта 2019

Я установил RocketChat на своем сервере и настроил виртуальный хост apache2 для использования ProxyPassReverse, чтобы показать посетителю localhost: 3000, когда они получают доступ к rc.domain.com.
Единственная проблема в том, что он не перенаправляет вас и показывает «Запрещено, у вас нет разрешения на доступ / на этом сервере», независимо от того, что вы делаете.
Мой файл etc / apache2 / sites-enabled / website.conf:

<VirtualHost *:443>

ServerAdmin support@domain.com
ServerName rc.domain.com
ErrorLog /var/log/rc.domain.com_error.log
TransferLog /var/log/rc.domain.com_access.log
LogLevel info
SSLEngine On
SSLCertificateFile /etc/ssl/certs/domain.com.crt
SSLCertificateKeyFile /etc/ssl/private/domain.com.key
SSLCertificateChainFile /etc/ssl/certs/domain.com.crt

<Location />
        Order allow,deny
        Allow from all
</Location>

RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*)           ws://localhost:3000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*)           http://localhost:3000/$1 [P,L]

ProxyPassReverse / http://localhost:3000/
</VirtualHost>

Я использую Cloudflare «Всегда использовать HTTPS» и его автоматическое шифрование веб-сайтов, если это помогает.У Apache есть другой виртуальный хост, работающий на порте 80, и у этого виртуального хоста есть поддомен первого.Вот вывод ErrorLog:

[Mon Mar 11 22:28:53.305103 2019] [ssl:info] [pid 1224] AH02568: Certificate and private key rc.example.com:443:0 configured from /etc/ssl/certs/example.com.crt and /etc/ssl/private/example.com.key 
[Mon Mar 11 22:28:53.722851 2019] [ssl:info] [pid 1225] AH01914: Configuring server rc.example.com:443 for SSL protocol

В Rocketchat нет видимых ошибок.
/var/log/apache2/access.log:

[my ip] - - [11/Mar/2019:23:01:33 +0000] "GET / HTTP/1.1" 403 505 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:66.0) Gecko/20100101 Firefox/66.0"

РЕДАКТИРОВАТЬ: Исправлено!Для тех, кто столкнется с этой проблемой в будущем: попробуйте установить порт на 80 вместо 443, который исправил это для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...