nginx 在 proxy_pass 时将路径添加到 url

nginx 在 proxy_pass 时将路径添加到 url

我在 nginx 中有以下 proxy_pass:

upstream svnserver {
    server 10.0.1.90;
}

server {
  server_name svn.domain.com;
  listen 443 ssl;
  root /var/www/html;

  error_log /var/log/nginx/svn.error.log;

  rewrite /(.*) /svn/$1? break;

  location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://svnserver/svn$request_uri;
  }
}

我只想在访问 svn.domain.com 时将 /svn 路径添加到 url,因此最终的 url 将是http://svn.domain.com/svn

我尝试添加这个rewrite /(.*) /svn/$1? break;,但似乎不起作用。是否可以使用 proxy_pass 和 rewrite 来实现这一点?

谢谢

答案1

尝试这个:

server {
  server_name svn.domain.com;
  listen 443 ssl;
  root /var/www/html;

  error_log /var/log/nginx/svn.error.log;

  location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://10.0.1.90/svn/;
  }
}

相关内容