You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 08:25:36