nginx配置监听端口不是80时,登录smartbi后在界面上无法导出资源、系统日志,打开报表点导出按钮无法导出文件
配置监听端口是8088,nginx.conf配置如下:
#user root root; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 8088; server_name localhost 10.10.10.23; #charset koi8-r; resolver 8.8.8.8; location /smartbi/ { proxy_pass http://10.10.202.17:18600/smartbi/ ; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 100m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } } |
导出日志时浏览器并未下载文件,查看F12可以看到如下:
如果将8088端口改成80端口,保存重启nginx则可以正常导出日志。
在smartbi中下载资源是会重定向的,当前的nginx配置没有正确的把端口信息告知浏览器导致重定向时用了默认的80端口(url中不显示80)
增加端口信息到proxy_set_header,将
proxy_set_header Host $host;改成
proxy_set_header Host $host:$server_port;
保存配置后重启nginx。