NGINX - 反向代理到端口 9000 上运行的服务

NGINX - 反向代理到端口 9000 上运行的服务

我在端口 9000 上运行 IRC 客户端(“The Lounge”)。现在我想通过创建该端口的 NGINX 反向代理并使用 SSL 保护它,使其可以从 Web 访问。我需要重写 css、javascript 等的 URL,以便在其他位置查找它们。

当页面到达浏览器时,其源代码如下所示:

<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/style.css">
<link id="theme" rel="stylesheet" href="themes/example.css">
<style id="user-specified-css"></style>

<link rel="shortcut icon" href="img/favicon.png" data-other="img/favicon-notification.png" data-toggled="false" id="favicon">
<link rel="apple-touch-icon" sizes="120x120" href="img/apple-touch-icon-120x120.png">
<link rel="manifest" href="manifest.json">

我需要重写指向“irc/LINKNAME”的所有链接。示例:

"css/bootstrap.css" -> "irc/css/bootstrap.css"
"manifest.json" -> "irc/manifest.json"

我知道 sub_filter 是可行的方法,但是我如何匹配所有链接并让其在前面加上“irc/”作为前缀?

sub_filter "(.?)" "irc/";
sub_filter_once off;

当然,我可以为每个目录和文件创建一个 sub_filter,但这可能是错误的做法。

答案1

如果您没有很多位置,您可以这样配置。

location / {
    sub_filter '<a href="http://$host/' '<a href="https://$host/irc/';
    sub_filter_once on;
    proxy_pass http://127.0.0.1:9000;
}

如果不是您的情况,请分享您的nginx配置。

相关内容