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

如何配置Nginx实现子路径/mysite访问本地目录网页?

修改方案说明

你需要在监听443的server块中,在原有的location /配置之前新增一个匹配/mysite路径的location块,具体修改后的完整配置如下:

server {
  server_name subdomain.mydomain.com;
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  ssl on;
  ssl_certificate /etc/letsencrypt/live/subdomain.mydomain.com/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/subdomain.mydomain.com/privkey.pem; # managed by Certbot

  index index.html index.htm;

  # 新增的/mysite路径配置
  location ^~ /mysite {
    alias /var/www/html;
    index index.html index.htm;
    try_files $uri $uri/ =404;
  }

  location / {
    proxy_pass http://localhost:3000/;
    proxy_set_header Host                 $http_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    "https";
  }
}

server {
    listen 80 default_server;
    server_name _;
    return 301 https://$host$request_uri;
}

关键修改点解释

  1. location ^~ /mysite:^~表示前缀匹配,优先级高于普通正则匹配,确保访问/mysite开头的路径时,优先走这个静态文件配置,不会被后面的location /代理到Grafana。
  2. alias /var/www/html:将/mysite路径直接映射到服务器本地的/var/www/html目录。如果用root替代alias,Nginx会去读取/var/www/html/mysite下的文件,不符合你的需求,因此必须用alias。
  3. try_files $uri $uri/ =404:尝试按请求路径查找文件,找不到则尝试查找对应目录(比如访问/mysite/时自动加载目录下的index文件),都找不到就返回404,避免出现异常跳转。

后续操作

  • 确保Nginx进程对/var/www/html目录有读取权限,可执行:
    chmod -R 755 /var/www/html
    chown -R www-data:www-data /var/www/html
    
  • 检查配置语法:nginx -t
  • 重载Nginx生效:systemctl reload nginx

内容的提问来源于stack exchange,提问作者Helyx

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:30:23