我尝试在 Google 上搜索这个问题的答案,但没找到。我的服务器运行的是 Debian 8,带有 apache2 和 shellinabox。我尝试使用 ProxyPass 将 shellinabox 端口重定向到目录。
我已将端口 (4200) 重定向到 /shell,但是当我转到http://example.com/shell,chrome 告诉我“无法访问此站点。example.com 拒绝连接。请尝试:• 检查连接。• 检查代理和防火墙”
我有一个 .htpasswd 文件来保护对 /shell 的访问,但我删除了它以测试它是否是一个问题,结果发现它没有问题,只是做了和正常情况下一样的事情。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ErrorDocument 404 /error404/index.html
<Location /shell>
ProxyPass http://localhost:4200/
ProxyPassReverse http://localhost:4200/
Order allow,deny
Allow from all
AuthUserFile /etc/apache2/.htpasswd
AuthName "Protected Area"
AuthType Basic
require valid-user
</Location>
答案1
在配置文件中添加 listen 4200
答案2
不要忘记反向代理传递,例如:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ErrorDocument 404 /error404/index.html
<Location /shell>
ProxyPass http://localhost:4200/
ProxyPassReverse http://localhost:4200/
Order allow,deny
Allow from all
AuthUserFile /etc/apache2/.htpasswd
AuthName "Protected Area"
AuthType Basic
require valid-user
</Location>