我正在使用nginx访问IDM,但是css和js文件无法重定向nginx中的properly.My配置如下:
location /idm/{
proxy_pass https://keyrock-host:keyrock-port/;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
rewrite ^/$ $1/idm/$2 redirect;
}但它还没有正常运作。
更新1:
172.16.40.7 - - [2019-04-01T11:34:01+00:00] "GET /stylesheets/bootstrap-select.min.css HTTP/1.1" 404 564 "https://172.30.66.248/key/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" "-" "0.000" "-" "-"
2019/04/01 11:34:01 [error] 15#15: *9 open() "/etc/nginx/html/javascripts/tour.js" failed (2: No such file or directory), client: 172.16.40.7, server: , request: "GET /javascripts/tour.js HTTP/1.1", host: "172.30.66.248", referrer: "https://172.30.66.248/idm/"
172.16.40.7 - - [2019-04-01T11:34:01+00:00] "GET /javascripts/tour.js HTTP/1.1" 404 564 "https://172.30.66.248/idm/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" "-" "0.000" "-" "-"
2019/04/01 11:34:01 [error] 15#15: *9 open() "/etc/nginx/html/javascripts/others/see_password.js" failed (2: No such file or directory), client: 172.16.40.7, server: , request: "GET /javascripts/others/see_password.js HTTP/1.1", host: "172.30.66.248", referrer: "https://172.30.66.248/idm/"
172.16.40.7 - - [2019-04-01T11:34:01+00:00] "GET /javascripts/others/see_password.js HTTP/1.1" 404 564 "https://172.30.66.248/idm/" "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" "-" "0.000" "-" "-"它显示没有找到文件:*9 open() /etc/nginx/html/javascripts/others/see_password.js"
Update 2:直接访问后端应用程序并观察其行为。
URL : 172.30.66.235:3443 ---> Home Page
After Login : 172.30.66.235:3443/idm
(During Login if I click anywhere, /idm remains appended to it and after logging out.)
URL after Log out : 172.30.66.235:3443 ; similar to homepage.这样做的代码行是:
https://github.com/ging/fiware-idm/blob/7.5.1/routes/web/index.js#L23
或者您可以访问链接:https://account.lab.fiware.org/ (Keyrock的全局实例)
发布于 2019-04-04 06:24:44
当添加一个新的server块时,应该如下所示。因此,只需调用不同的名称/IP,就可以将/转发到后端服务器的相同位置。您应该替换server_name中的名称以及证书文件。
server {
server_name subdomain.example.com;
listen 443 ssl http2;
ssl_certificate /etc/nginx/your_certificate.pem;
ssl_certificate_key /etc/nginx/your_certificate.key;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass https://172.30.66.235:3443;
}
}发布于 2019-04-01 09:16:43
请尝试:
location /idm/ {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
rewrite ^/idm(/.*)$ $1 break;
proxy_pass https://172.30.66.235:3443;
proxy_redirect / /idm/;
sub_filter '="/' '="/idm/';
sub_filter '= "/' '= "/idm/';
sub_filter '=\'/' '=\'/idm/';
sub_filter_once off;
}编辑1:添加proxy_redirect
编辑2:添加sub_filter选项
编辑3:更改sub_filter以替换所有可能出现的新位置。
更好的方法可能是nginx_代换_过滤器和适当的正则表达式。
https://serverfault.com/questions/960398
复制相似问题