Reverse-Proxy
通過 Lighttpd 到不同埠的代理 URL
我似乎無法將 URL 代理到同一主機名上的另一個埠。我在 somehost:8080 上執行使用者界面(Angular 5),在 somehost.com(埠 80)上執行 Web 應用程序的其餘部分。我想代理http://somehost.com/xxx>到<http://somehost.com:8080。不確定我的配置是否正確或在正確的位置。
$HTTP["host"] =~ "somehost\.com$" { $HTTP["url"] =~ "(^/xxx/)" { proxy.server = ( "" => ("" => ( "host" => "somehost.com", "port" => 8080 ))) } url.rewrite-if-not-file = ( "^/(.*)" => "/index.php/$1", ) }
從您的問題來看,您似乎想
http://somehost.com/xxx/file
從http://somehost.com:8080/file
. 在這種情況下,您的配置是錯誤的,因為它正在嘗試提供服務http://somehost.com:8080/xxx/file
。您需要添加一個url.rewrite-once
:url.rewrite-once = ( "^/xxx/(.*)$" => "/$1" ) proxy.server = ( "" => ( # proxy all file extensions / prefixes "" => # optional label to identify requests in logs ( "host" => "somehost", "port" => 8080 ) ) )
根據您的 lighttpd 版本,您可能會或可能無法從 $HTTP 中呼叫 url.rewrite-once
$$ “url” $$匹配。 還要確保你已經載入了 mod_proxy 和 mod_rewrite 模組:
server.modules += ( "mod_proxy" ) server.modules += ("mod_rewrite")
有關 proxy.server 的更多資訊:https : //redmine.lighttpd.net/projects/1/wiki/Docs_ModProxy 有關 url.rewrite-once 的更多資訊: https ://redmine.lighttpd.net/projects/1/wiki/docs_modrewrite #urlrewrite-重複