SearXNG与NGINX配置问题:移除URL中多余的/searxng路径
解决SearXNG URL自动添加/searxng路径的问题
问题背景
在Ubuntu 22.04服务器上安装SearXNG并完成NGINX配置后,为了让站点根目录不再显示NGINX默认页面,将SearXNG的NGINX配置中location从/searxng改为/,同时调整了默认NGINX配置。但搜索或跳转首页时,URL仍自动带上/searxng路径(如mydomain.net/searxng/search?q=bamboo&...),需要移除该路径。
解决方案
1. 修改NGINX的SearXNG配置文件
找到SearXNG的NGINX配置文件(通常位于/etc/nginx/default.d/searxng.conf),调整location /块的内容:
location / { proxy_pass http://127.0.0.1:8888; proxy_set_header Host $host; proxy_set_header Connection $http_connection; proxy_set_header X-Scheme $scheme; # 关键修改:将X-Script-Name设置为空字符串,移除原有的/searxng前缀 proxy_set_header X-Script-Name ""; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 保留原有的缓冲配置注释(如果需要启用可取消注释) # proxy_buffering off; # proxy_request_buffering off; # proxy_buffer_size 8k; }
2. 调整SearXNG自身配置
编辑SearXNG的settings.yml配置文件(通常位于/etc/searxng/settings.yml):
- 找到
server配置段,确保base_url设置为你的站点根URL(结尾需带斜杠):server: base_url: https://mydomain.net/ - 如果配置中存在
script_name: /searxng,请删除或注释掉这一行。
3. 重启服务使配置生效
执行以下命令重启NGINX和SearXNG服务:
sudo systemctl restart nginx sudo systemctl restart searxng
原理说明
X-Script-Name HTTP头用于告知SearXNG它在网站中的子路径位置,原配置设置为/searxng,导致SearXNG生成的所有URL都会带上该前缀。当将NGINX的location改为根路径/后,必须将此头设置为空,同时确保SearXNG自身的base_url配置正确指向站点根,这样生成的URL就不会再包含/searxng路径。
内容的提问来源于stack exchange,提问作者Lobosan
相关产品推荐
相关产品推荐

