水木社区手机版
首页
|版面-Java技术(Java)|
新版wap站已上线
返回
1/1
|
转到
主题:求问解决方法:nginx反向代理获取不到被代理的页面所引用的静态
楼主
|
qianfeng018
|
2021-09-02 15:50:45
|
展开
在一个nginx上,地址是:ip0:port0
location /a
proxy_pass ip1:port1
location /b
proxy_pass ip2:port2
结果在在浏览器输入:
ip0:port0/a
页面可以链接到
ip1:port1的主页
但主页中引用的所有静态文件,都被替换成了
ip0:port0/css/**.css, ip0:port0/js/**.js ip0:port0/static/**.jpg 等等
造成找不到这些文件,
其实这些文件都在ip1:port1上对应的目录中
求问如何解决
--
FROM 183.242.73.*
2楼
|
qianfeng018
|
2021-09-02 16:05:53
|
展开
没有啊, 都是./css/***.css之类的
【 在 guestking 的大作中提到: 】
: 你页面上的引用用了绝对路径?
:
--
FROM 183.242.73.*
5楼
|
qianfeng018
|
2021-09-03 07:52:19
|
展开
试过了,一样的结果
【 在 Mikov 的大作中提到: 】
: 如果你不想把/a这个相对路径带入上游, 在 proxy_pass ip1:port1 后面加个斜杆试试
: proxy_pass
http://ip1:port1/
:
--
FROM 183.242.73.*
6楼
|
qianfeng018
|
2021-09-03 07:54:28
|
展开
多谢指导
1 不能独占
2 这个倒是可以试试,不过a,b是两个相似开发的项目,都是vue前端,css js static 下有一些重名文件。不知道怎么才能用规则区分
3 两个项目静态文件都不少
【 在 sayinger 的大作中提到: 】
: 1、如果能确定/css, /js, /static下面都可以被ip1:port1独占,就直接加规则代理过去。
: 2、如果不能独占,则可以在规则前加上判断referer是来自/a还是/b(可以定义一个变量),然后根据来源把/css,/js,/static转到对应的upstream。
: 3、如果静态文件不多,在文件头部用<base>标签指定base URL为ip0:port0/a/
: ...................
--
FROM 183.242.73.*
8楼
|
qianfeng018
|
2021-09-03 13:49:11
|
展开
填在何处?
root proxy_pass ip1:port1?
理论上说不通啊
也试了,不行
【 在 xujwsimon 的大作中提到: 】
: 添加一个root看行不行
:
http://nginx.org/en/docs/http/ngx_http_core_module.html#root
:
--
FROM 183.242.73.*
10楼
|
qianfeng018
|
2021-09-03 15:32:31
|
展开
我的理解,server这里规定的是这个代理nginx静态文件放的根目录。但其实这个代理nginx上没有任何代码。只是负责转发,
你的意思是,在实际的
http://ip1:port1
所在的服务器上,添加root给server,是这意思吗?
【 在 xujwsimon 的大作中提到: 】
: 链接里面是nginx的文档,按照nginx的文档写就好
: 举个例子:
: server {
: ...................
--
FROM 183.242.73.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版