![Nginx 反向代理到不同的根](https://linux22.com/image/752433/Nginx%20%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E5%88%B0%E4%B8%8D%E5%90%8C%E7%9A%84%E6%A0%B9.png)
花了几天的时间来解决此问题,但无法用我的菜鸟知识库通过谷歌搜索找到解决方案。
我正在尝试做什么:访问 url/nextcloud 反向代理到 localhost 但在用户视图中保留 /nextcloud/。即 url/nextcloud/login 在 nextcloud 配置文件中内部将是 localhost/login。
期待: 作为“nextcloud”配置文件将根目录从 /var/www/ 更改为 /var/www/nextcloud,url/nextcloud/login 将代理到 localhost/login,实际上是 /var/www/nextcloud/login。
我总是得到结果:url/nextcloud 返回 url/login,即 url/var/www/login,而不是 url/var/www/nextcloud/login
下面是我的 nginx 反向代理代码,nextcloud 代码使用配置Nextcloud 文档。反向代理将 nextcloud 传递到 127.0.0.1:5141,Nextcloud 配置监听 127.0.0.1:5141。抱歉,由于我的服务器今天宕机了,我无法提供准确的 nextcloud 配置。
server {
listen 80;
listen [::]:80;
server_name MY_DOMAIN_HERE;
# enforece https
return 301 https://$server_name:443$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name MY_DOMAIN_HERE;
ssl_certificate /etc/letsencrypt/live/MY_DOMAIN_HERE/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/MY_DOMAIN_HERE/privkey.pem;
root /var/www/;
location /nextcloud/ {
# rewrite ^/nextcloud/(.*)$ $1 break;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://127.0.0.1:5141/;
proxy_set_header Host MY_DOMAIN_HERE;
}
location /noVNC/ {
proxy_pass http://127.0.0.1:5142;
}
location /shell/ {
proxy_pass http://127.0.0.1:4200;
}
location /files/ {
return 301 /;
proxy_pass http://127.0.0.1:5143;
}
#location / {
# proxy_pass http://127.0.0.1:5143;
#}
}