最新版本,配置里没有Qwen3系列向量模型
# 用 Nginx 反向代理美化 Wiki 站:实现无本地代码注入的干净界面 **版本号:** 1.12.1 **界面需求:** 追求无冗余、轻量化的干净访问体验 ## 一、核心原理 实现逻辑非常简洁,核心两步即可达成 "美化代码不落地" 的效果: 1. 通过 Nginx 反向代理指向 Wiki 站的原始地址(优先使用「服务器 IP + 端口」,稳定性更高) 2. 在代理过程中,自动注入外部 CSS/JS 代码,直接在浏览器渲染层完成界面美化,无需修改 Wiki 站本地文件 ## 二、操作步骤(全流程) ### 1. 前置:安装 Nginx 不同操作系统的安装命令差异较大,此处不展开细节,提供主流系统参考方向: - **CentOS/RHEL:** `yum install nginx -y` - **Ubuntu/Debian:** `apt update && apt install nginx -y` - **Windows/macOS:** 建议通过官方安装包或包管理工具(如 Homebrew)安装 ### 2. 域名解析与端口规划 这一步是代理访问的 "入口基础",需注意两个关键点: - **域名解析:** 将你的域名(如 wiki.yourdomain.com)解析到运行 Nginx 的服务器 IP(A 记录或 AAAA 记录) - **端口选择:** 为该域名分配一个未被占用的端口(建议选用 8100 以后的端口,如 8181、8282,降低与其他服务的冲突概率) ### 3. 核心:配置 Nginx 代理规则 这是最关键的一步,需严格按路径和提示修改配置! #### 3.1 找到配置文件路径 默认 Nginx 的自定义配置目录为:`/etc/nginx/conf.d` 在该目录下新建配置文件,命名格式建议为「域名.conf」(如 wiki.yourdomain.com.conf),避免后续混淆。 #### 3.2 填入代理配置代码 将以下代码复制到新建的.conf 文件中,必须按标注修改带「自定义」的参数! ```nginx # 全局缓存配置(http级,保留便于后续启用) # 注意:需手动创建缓存目录,命令示例:mkdir -p /var/cache/nginx/自定义缓存名 proxy_cache_path /var/cache/nginx/自定义一个缓存名# 例:/var/cache/nginx/wiki_cache levels=1:2 # 缓存目录层级,无需修改 keys_zone=自定义一个缓存名_cache:10m # 例:wiki_cache_cache:10m(需与上一行"缓存名"一致) max_size=100m # 缓存最大容量,可按需调整 inactive=60m # 缓存过期时间,60分钟无访问则清理 use_temp_path=off; # 禁用临时目录,提升性能 server { # 基础配置:监听端口与域名(必须修改!) listen 自定义端口; # 例:8181(需与步骤2规划的端口一致) server_name 你的域名; # 例:wiki.yourdomain.com(需与解析的域名一致) # 缓存控制:禁用浏览器缓存,防止旧美化代码残留(无需修改) add_header Cache-Control "no-store, no-cache, must-revalidate"; add_header Pragma "no-cache"; add_header Expires "0"; # Gzip压缩配置:提升页面加载速度(无需修改) gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 5; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text/plain text/css application/javascript text/xml application/xml application/xml+rss; # SSL安全配置:代理后端为HTTPS时生效(无需修改) proxy_ssl_server_name on; proxy_ssl_protocols TLSv1.2 TLSv1.3; # 外部内容注入配置:关联美化代码文件(无需修改,后续配置inject.conf即可) set $inject_font ''; # 字体注入变量 set $inject_css_core ''; # 核心CSS注入变量 set $inject_js ''; # JS注入变量 # 关键引用:美化代码统一放在inject.conf,后续更新只需改这个文件! include /etc/nginx/conf.d/inject/inject.conf; # 核心路由配置:匹配所有Wiki访问请求(重点!) location / { # 反向代理目标:填写Wiki站的原始地址(必须修改!) proxy_pass http://wiki站所在的服务器IP:端口; # 例:http://192.168.1.100:8080/ # 代理请求:传递客户端真实信息,避免Wiki站记录错误IP(无需修改) proxy_set_header Host $proxy_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Accept-Encoding ""; # 禁用后端压缩,确保注入代码正常生效 # 代理缓存:引用上方定义的缓存规则(需与"自定义缓存名"一致) proxy_cache 自定义一个缓存名_cache; # 例:wiki_cache_cache proxy_cache_valid 200 304 10m; # 200/304状态码缓存10分钟 proxy_cache_bypass $http_pragma; proxy_cache_revalidate on; # 品牌关键词替换:本着尊重开发者的原则,不要启用以下注释掉的代码 sub_filter_once off; # sub_filter "pandawiki" "自定义名称"; # sub_filter "Pandawiki" "自定义名称"; # sub_filter "PANDAWIKI" "自定义名称"; # 内容注入:在页面</body>标签前插入美化代码(无需修改) sub_filter '</body>' '$inject_font$inject_css_core$inject_js</body>'; } } # 重启命令提示(Ubuntu/Debian专用,其他系统需自查) # sudo systemctl restart nginx ``` ### 4. 配置:注入美化代码(CSS/JS) 为了方便后续更新美化效果,我们将 CSS/JS 代码统一放在独立文件中,无需修改代理配置。 #### 4.1 创建美化代码目录与文件 - 新建 inject 目录:执行命令 `mkdir -p /etc/nginx/conf.d/inject`(路径需与步骤 3 配置中的include路径一致) - 在 inject 目录下新建inject.conf文件:`touch /etc/nginx/conf.d/inject/inject.conf` #### 4.2 填入美化代码 将你的 CSS/JS 美化代码写入inject.conf,格式示例如下(可参考PiKa 丘_Leo 的美化代码): ```nginx # inject.conf:美化代码注入配置 # 1. 字体注入(可选,如引入Noto Sans SC) set $inject_font ' <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700&display=swap"> <style>body { font-family: "Noto Sans SC", sans-serif !important; }</style> '; # 2. 核心CSS美化(替换为你的样式代码) set $inject_css_core ' <style> /* 示例:修改导航栏颜色 */ .navbar { background-color: #f8f9fa !important; border-bottom: 1px solid #e9ecef; } /* 示例:优化内容区间距 */ .content { padding: 20px !important; max-width: 1200px; margin: 0 auto; } /* 此处省略其他CSS样式... */ </style> '; # 3. JS功能增强(可选,如添加返回顶部、暗色模式等) set $inject_js ' <script> // 示例:返回顶部按钮 window.onscroll = function() { const btn = document.createElement("button"); btn.innerText = "回到顶部"; btn.style.position = "fixed"; btn.style.bottom = "20px"; btn.style.right = "20px"; btn.style.padding = "8px 16px"; btn.style.cursor = "pointer"; btn.onclick = () => window.scrollTo({ top: 0, behavior: "smooth" }); document.body.appendChild(btn); }; // 此处省略其他JS代码... </script> '; ``` ### 5. 测试:验证代理与美化效果 - **重启 Nginx:** 确保配置生效 - Ubuntu/Debian:`sudo systemctl restart nginx` - CentOS/RHEL:`systemctl restart nginx` - **验证配置是否正确:** `nginx -t`(无报错则正常) - **访问测试:** 在浏览器输入 `http:// 你的域名:自定义端口`(例:http://wiki.yourdomain.com:8181) - **效果检查:** 若页面能正常打开且样式符合预期,说明配置成功! ### 6. 优化:为域名申请 SSL 证书(实现 HTTPS) 当代理访问正常后,建议为域名配置 SSL 证书,提升安全性(浏览器显示 "小绿锁"): - **推荐使用免费证书:** Let's Encrypt(通过 Certbot 工具快速申请) - **配置步骤:** 参考 Certbot 官方文档(https://certbot.eff.org/),选择 Nginx 和对应的操作系统,按命令执行即可 **关联内容:** 感谢 @PiKa丘_Leo 提供的美化代码参考,如需CSS代码请点击 https://baizhi.cloud/discussion/post/yIGh72Dffl

这个访问不了,也配置了端口啥的,还是无法链接

wiki对话报错

建议提供一个“该文档全文暂时不可访问”或可自定义提示的页面,而不是直接跳转到404.
当前“访问WIKI网站”的地址是服务监听方式中的域名+端口,但是当使用反向代理后,该地址可能不可用。给运营人员带来不便,建议增加一个自定义的部分。 特别是联创版和企业版,由于一个账号可以启用多个wiki,因此利用反代的可能性很大。
后台Wiki 站名称处已经修改,没有变化

iQOO型号手机无法打开帮助中心详情,而且这个型号的手机在首页搜索结果页会报500的错误

在导入几本书籍和文章后,使用智能查询,结果是无限循环输出。 配置的大模型是推荐的百智广场,每个都是安装中的推荐设置。(本来想截个图,但pandawiki里面,没有居然找到大模型配置,汗~)

文档导入失败,貌似文档导入数量有上限,但不知道如何解决该问题???

最新版 导入word文档 超过50M,出现错误。这个与之前的版本错误不一样。

## 一、认证方式介绍 LDAP是一种用于访问和维护分布式目录信息服务的应用协议。它常被用作单点登录的基础架构,允许用户使用单一凭证访问多个系统。LDAP目录通常用于存储用户信息、组织结构、权限设置等数据。通俗来讲,LDAP与OAuth的身份认证模式不一样,LDAP主要是让应用获取服务器的信息来进行登录身份认证,而Oauth是授权第三方应用访问用户资源。LDAP将用户信息存储在树状目录结构中(如:cn=张三,ou=开发部,dc=公司,dc=com),支持层级化的数据管理。 - LDAP登录身份验证流程: - 用户输入用户名(DN)和密码 - 客户端向LDAP服务器发送Bind请求 - LDAP服务器验证密码是否匹配存储的哈希值(或其他认证方式) - 验证成功后,服务器返回用户角色信息 ## 二、认证配置流程 - **LDAP服务信息获取** - LDAP服务器URL--格式为ldap://主机名:端口,(注意:https协议请使用ldaps)标准端口为389,如有特殊请咨询企业ldap管理员。如:ldap://192.168.1.100:389  - 在ldap下,由于服务的特殊性,需要明确账号所属的组、账号名称及域名cn ='用户',ou=‘用户组’,dc=域名,dc=com。同时用于匹配ldap登录时需要进行用户查询条件的说明,如:基础示例:(&(objectClass=person)(uid=%s)),这表示在这个组下objectClass找到person这个人,且uid等于用户输入用户名。过程中“%s”作为用户输入的用户名占位符。 - 例如完成的LDAP的信息如下 - LDAP服务器URL: ldap://example-company.com:389 - Bind DN: cn=ldapadmin,dc=example-company,dc=com - Bind密码: (管理员密码) - 用户baseDN: ou=People,dc=example-company,dc=com - 查询条件: (&(objectClass=person)(uid=%s)) - **PandaWiki后台配置** - ldap信息获取完成后在PandaWiki管理后台进行访问认证的信息填写,填写保存后再次访问Wiki前台网站即可调用ldap进行登录。(**注意**:ldap服务器URL,需按照格式进行填写,如:ldap://example.com:port;Bind DN为登录的用户组;Bind Password:登录组时使用的密码;用户Base DN:登录ldap时的账号;用户查询条件:确定可以通过获取ldap哪些组可以进行后续登录。**注意**:若查询条件有疑问,可直接咨询企业ldap管理员,没有人比他更懂企业的ldap服务信息啦~   ## 三、常见问题 - **Q**: ldap连接失败是什么原因呢? - A: ldap服务连接失败需检查,服务器URL格式确保格式正确,包含正确的协议(ldap://或ldaps://)、主机名和端口;同时也需要确保网络连接正常,PadndaWiki服务需可以访问ldap服务器 - **Q**: 在用户查询条件中回出现一个%s占位符,这个占位符是什么意思? - A: %s代表一个占位符,在用户通过ldap登录时进行用户名的替换。例如,用户为admin,查询条件为(&(objectClass=person)(uid=%s))代表着在person组织下admin可以进行后续登录。
## 一、认证方式介绍 CAS可用于单点登录协议对接,为PandaWiki提供身份认证的应用方式之一。通过该种形式,企业可通过现有的CAS身份认证管理,建立一套覆盖所有应用的单点登录的方案。 好奇宝宝来了,官方话术听不懂能不能直白一点呢?假设有一个大学,其内部有多个Web应用系统,如人事系统、研究生系统、科研系统等。这些系统需要实现单点登录,即用户只需在一个系统中登录一次,就可以在其他系统中自由切换而无需登录。  CAS有下方两个部分组成: - CAS Server--单点验证服务器,负责验证用户的身份,并生成会话令牌。该令牌可以由其他应用程序用于验证用户的身份。 - CAS Client--共享CAS Server登录态的客户端。当用户通过浏览器访问CAS Client提供的服务资源时,CAS Client会判断用户是否已登录。若未登录,则会将用户重定向到CAS Server进行身份验证。 - 在对应的访问业务场景中: - 用户访问应用时,系统检测到未登录状态,将用户重定向至企业 CAS 服务器 - 用户在 CAS 界面完成身份验证 - CAS 服务器生成 Service Ticket 并将用户重定向回应用 - PandaWiki后台通过服务验证 Ticket 有效性 - 验证通过后,接入雷池身份认证用户体系进行应用授权 ## 二、认证配置流程 - **CAS服务器配置** - 首先在CAS服务控制台界面在【Services Management】,在Add Service中添加Pandawiki网站作为服务,需填写服务名、服务URL并激活服务应用。 (**注意**:重定向URL需要在URL后面拼接 /share/pro/v1/openapi/cas/callback进行统一认证。例如:https://example.com/share/pro/v1/openapi/cas/callback ) - **PandaWiki管理后台配置** - CAS服务创建完成后在PandaWiki管理后台进行访问认证的信息填写,填写保存后再次访问Wiki前台网站即可调用CAS进行登录。(**注意**:请选择对应的CAS版本,填写CAS服务URL即可) 
## 一、认证方式介绍 PandaWiki前台网站为方便企业用户可支持通过GitHub身份认证的方式登录。 ## 二、认证配置流程 - **GitHub平台配置** - 打开GitHub,https://github.com/ ,登录后右上角点击头像进入settings,在该页面下点击Developer settings后可看到OAuth Apps选项 ,点击开启配置。  - 在OAuth Apps中点击New OAuth App进行创建,在创建时需要填写应用基本信息,包含Application name、Homepage URL、Authorization callback URL。(**注意**:callback URL处需要在URL后面拼接 /share/pro/v1/openapi/github/callback进行统一认证)例如:https://example.com/share/pro/v1/openapi/github/callback )   - 创建并发布应用后可以在该详情页中可查到**Client ID**、**Clinet Secret**,后续可将两个参数配置在PandaWiki访问认证配置处。  - **PandaWiki后台认证配置** - GitHub创建完成后在PandaWiki管理后台进行访问认证的信息填写,填写保存后再次访问Wiki前台网站即可调用GitHub进行登录。   - 通过GitHub访问过PandaWiki网站后,可通过后台-成员处查看到访问成员列表。  ## 三、常见问题 - **Q**:为什么配置完成后无法进行登录访问呢? - A:GitHub需要使用魔法连接,故部署PandaWiki的服务器需能够访问GitHub才可进行后续的登录。 - **Q**:为什么我的OAuth App创建完了但是Client Secret没有记住,再进入页面就看不到了呢? - A:Github为了保障密码安全初次申请方可查看密码,该密码无法二次查看需要用户单独记录。若忘记密码可重新申请再次配置即可。
## 一、认证方式介绍 PandaWiki前台网站为方便企业用户可支持通过企业微信身份认证的方式登录,使用此功能需要对接企业微信管理后台。 ## 二、认证配置流程 - **企业微信开发者平台配置** - 打开企业微信管理后台https://work.weixin.qq.com/ ,使用企业微信管理员账号登录。 - 在企业微信管理后台应用管理上点击创建应用进行应用基本信息的填写,包含名称、介绍、图标,同时在创建时需要选择应用的可见范围。   - 应用创建完成后可在【应用管理】中查到**AgentID** 、**Secret**,在【我的企业】中查到**企业ID**,后续可将三个参数配置在PandaWiki访问认证配置处。   - 在应用【应用管理-企业微信授权登录】中设置授权回调域,(使用企业微信登录,只能回调至该域名下的页面)输入应用域名并保存。如:www.example.com   - 完成企业微信授权登录后,点击网页授权进行域名可信校验。(企业微信必须)根据界面内容指引可将校验文件上传至容器目录 **<文件名>panda-wiki-app:/public/** 下,上传后请重启服务器对应容器。  - 可信域名校验并上传文件后,可在【企业可信IP】配置PandaWiki服务公网IP。  - **PandaWiki后台认证配置** - 企业微信配置完成后在PandaWiki管理后台进行访问认证的信息填写,填写保存后再次访问Wiki前台网站即可调用企业微信进行登录。(**注意**:企业ID、Secret分别对应Client ID、Client Secret,同时企业微信需填写AgentID)   - 通过企业微信访问过PandaWiki网站后,可通过后台-成员处查看到访问成员列表。  ## 三、常见问题 - **Q**: 企业微信的应用控制范围是什么? - A: 企业微信管理员可在后台控制当前组织下哪些员工可使用。 - **Q**: 扫码后为什么提示redirect_uri参数错误? - A: 企业微信配置的回调域名需与后台配置的可信域名完全一致,同时请注意由于企业微信的要求,该域名需完成备案。 - **Q**: 在用户扫码后为什么显示无法获取身份信息? - A: 在PandaWiki管理后台请确保企业ID、Secret及AgentId填写正确,同时确认用户为企业微信组织范围内的成员。