我正在尝试对特定目录使用 proxypass,以便可以将其指向我的 express.js 服务器https://othersite.life:1447/
我已经在这个问题上纠结了好几个小时了。真的很希望得到一些见解。
我已经启用这些模式并且正在编辑 /sites-enabled conf 文件。
proxy
proxy_http
proxy_connect
proxy_ftp
<VirtualHost 117.123.133.207:80>
ServerName s33d.cf
ServerAlias www.s33d.cf
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/s33d.cf
SSLProxyEngine on
<Directory /var/www/html/s33d.cf>
Options -Indexes +FollowSymLinks
AllowOverride All
LogLevel warn
</Directory>
ErrorLog error.log
RewriteEngine on
ProxyRequests Off
ProxyPreserveHost On
RewriteCond %{SERVER_NAME} =www.s33d.cf [OR]
RewriteCond %{SERVER_NAME} =s33d.cf
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /var/www/html/s33d.cf/node https://othersite.life:1447/
ProxyPassReverse /var/www/html/s33d.cf/node https://othersite.life:1447/
</VirtualHost>
域 s33d.cf 运行正常,但当我转到 s33d.cf/node 时,它不使用 proxypass 设置。两个站点都托管在同一台服务器上。
据我所知,我没有收到任何错误。
答案1
ProxyPass 后面跟着 URI 路径,而不是目录/文件系统路径。您当前的配置用于映射http://www.s33d.cf/var/www/html/s33d.cf/node
,而不是用于映射http://www.s33d.cf/node/
到https://othersite.life:1447
相反使用
ProxyPass /node/ https://othersite.life:1447/
但是您将所有请求重定向到 https,因此在纯 http VirtualHost 块中配置的其他任何内容可能都无关紧要……