nginx的proxy_pass 404错误,不明白为什么(nginx proxy_pass 404

2019-08-31 20:33发布

我想向/ API的所有来电通关到我的web服务,但我一直用下面的配置越来越404。 调用/返回index.html的预期。 有谁知道为什么吗?

upstream backend{
    server localhost:8080;
}

 server {

    location /api {
        proxy_pass http://backend;
    }

    location / {
        root /html/dir;
    }
}

更多资讯

adept@HogWarts:/etc/nginx/sites-available$ curl -i localhost/api/authentication/check/user/email
HTTP/1.1 404 Not Found
Server: nginx/1.2.1
Date: Mon, 22 Apr 2013 22:49:03 GMT
Content-Length: 0
Connection: keep-alive

adept@HogWarts:/etc/nginx/sites-available$ curl -i localhost:8080/authentication/check/user/email
HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 22 Apr 2013 22:49:20 GMT
Transfer-Encoding: chunked

{"user":["false"],"emailAddress":["false"]}

Answer 1:

这个

location /api {
    proxy_pass http://backend;
}

需要是这个

location /api/ {
    proxy_pass http://backend/;
}


Answer 2:

通过一些proxy_pass在Nginx的1.6.2理由削减传递给上游前头“主机”,并要求捕捞默认服务器,甚至proxy_header_pass没有帮助,所以我明确地设置:

location / {
    proxy_set_header Host $host;
    proxy_pass  http://backend;
}


Answer 3:

我忘了侦听端口80,固定它。

“HTTP” nginx的配置的一部分,在:/etc/nginx/nginx.conf,低于:

http {
    server {
        listen 192.111.111.11:80;
        location /path1/ {
            proxy_pass http://127.0.0.1:3000/path1/
        }
    }
}

现在,访问
http://192.111.111.11/path1/
将获得访问结果
http://127.0.0.1:3000/path1/

注意:
在上述的IP地址替换192.111.111.11。
运行“使用ifconfig”命令,在“INET地址”部分会给你的IP地址



文章来源: nginx proxy_pass 404 error, don't understand why
标签: nginx