【问题标题】:Nginx reverse proxy return 404Nginx反向代理返回404
【发布时间】:2017-01-12 18:23:15
【问题描述】:

我的 Nginx 已安装并正在运行,下面是来自 /etc/nginx/nginx.conf 的配置,我想将所有 /api/* 转发到我的 tomcat 服务器,该服务器在同一台服务器的端口 9100 上运行(输入 http://myhost:9100/api/apps 有效),否则,在“/usr/share/nginx/html”下提供静态文件。现在我输入http://myhost/api/apps 给一个404。这里有什么问题?

upstream  myserver {
    server   localhost:9100 weight=1;
}

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;



    location ^~ /api/ {
       proxy_pass http://myserver/;
    }

    location / {
    }
}

【问题讨论】:

    标签: nginx


    【解决方案1】:

    proxy_pass 语句可以可选地在将 URI 传递到上游之前对其进行修改。详情请见this document

    以这种形式:

    location ^~ /api/ {
        proxy_pass http://myserver/;
    }
    

    URI /api/foo 被传递给http://myserver/foo

    通过从proxy_pass 语句中删除结尾的/

    location ^~ /api/ {
        proxy_pass http://myserver;
    }
    

    URI /api/foo 现在传递给http://myserver/api/foo

    【讨论】:

      猜你喜欢
      • 2019-03-07
      • 1970-01-01
      • 2015-11-29
      • 1970-01-01
      • 2020-11-28
      • 2018-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多