Nginx反向代理位置子文件夹404错误

时间:2020-10-22 00:36:09

标签: nginx proxypass

我觉得这很简单...

这有效:

http://##.###.###.##:3000/folder/end_point

这不是:

http://##.###.###.##/folder/end_point

这有效:

http://##.###.###.##:3000

这可行:

http://##.###.###.##

我的root的nginx配置是:

location / {
       proxy_pass http://localhost:3000;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection 'upgrade';
       proxy_set_header Host $host;
       proxy_cache_bypass $http_upgrade;

            # First attempt to serve request as file, then
            # as directory, then fall back to displaying a 404.
            try_files $uri $uri/ =404;
    }

,目录为:

   location /folder/ {
           proxy_pass http://localhost:3000/folder/;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection 'upgrade';
           proxy_set_header Host $host;
           proxy_cache_bypass $http_upgrade;
    
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

我也尝试过:

location /folder/(.*) {
           proxy_pass http://localhost:3000/folder/$1;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection 'upgrade';
           proxy_set_header Host $host;
           proxy_cache_bypass $http_upgrade;
    
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

有什么我想念的吗?

1 个答案:

答案 0 :(得分:0)

您可以在文件夹名称前不使用/进行尝试:

location /folder {
           proxy_pass http://localhost:3000/folder;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection 'upgrade';
           proxy_set_header Host $host;
           proxy_cache_bypass $http_upgrade;
    
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }