我目前正在构建一个网络产品组合,它结合了我过去制作的许多小型网络应用程序。在路线(/)处,您会找到一个页面,其中包含指向其他较小网络应用的链接。例如,有一个指向路线(/棋盘游戏)的链接,它将您带到我过去制作的小型棋盘游戏网络应用程序。
我挣扎的是这个。较小的网络应用程序棋盘游戏为不包含前缀路由(/棋盘游戏)的路线提供了html,css和javascript。因此,当棋盘游戏页面请求(/css/style.css)时,没有加载任何内容,因为内容实际上是(/board-game/css/style.css)。
我的问题是这个。有没有办法将这些请求重新路由到适当的路由?我想避免重写这些小项目的任何部分。有什么建议?谢谢。
另外,这是我当前的nginx.conf文件。
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream portfolio {
server portfolio-svc:8080;
}
upstream board-game {
server board-game-svc:8080;
}
server {
listen 80;
location / {
proxy_pass http://portfolio/;
}
location /board-game {
proxy_pass http://board-game/;
}
}
}
答案 0 :(得分:1)
您需要将路径重写为位置的一部分,例如:
worker_processes 1;
events {
worker_connections 1024;
}
http {
upstream portfolio {
server portfolio-svc:8080;
}
upstream board-game {
server board-game-svc:8080;
}
server {
listen 80;
location = / {
proxy_pass http://portfolio/;
}
location = /board-game {
proxy_pass http://board-game/;
rewrite ^(.*)board-game(.*)$ http://board-game/$2 permanent;
sub_filter /css/ /board-game/css/
}
}
}
你可能不得不玩匹配,但这是一般的想法。