Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx作为反向代理服务301';s_Nginx_Reverse Proxy - Fatal编程技术网

Nginx作为反向代理服务301';s

Nginx作为反向代理服务301';s,nginx,reverse-proxy,Nginx,Reverse Proxy,我对NGINX没有什么经验。我试图将其用作运行node的几个docker容器的反向代理。目标是所有请求都将通过NGINX传输。基于路由(url路径),某个route domain.com/graphql将通过NGINX传递到不同的docker容器。domain.com/graphql基本上是我的API端点 我遇到的问题是,客户端上的JS发出的所有Ajax/Relay客户端请求都作为301从NGINX传递过来 请求: Request URL:http://domain.com/graphql Re

我对NGINX没有什么经验。我试图将其用作运行node的几个docker容器的反向代理。目标是所有请求都将通过NGINX传输。基于路由(url路径),某个route domain.com/graphql将通过NGINX传递到不同的docker容器。domain.com/graphql基本上是我的API端点

我遇到的问题是,客户端上的JS发出的所有Ajax/Relay客户端请求都作为301从NGINX传递过来

请求:

Request URL:http://domain.com/graphql
Request Method:POST
Status Code:301 Moved Permanently
Remote Address:192.168.99.100:80
Response Headers
view source
Connection:keep-alive
Content-Length:185
Content-Type:text/html
Date:Thu, 08 Sep 2016 15:14:02 GMT
Location:http://domain.com/graphql/
Server:nginx/1.11.3
Request Headers
view source
accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8,it;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Content-Length:620
content-type:application/json
Host:nomralph.com
Origin:http://domain.com
Pragma:no-cache
Referer:http://domain.com/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Nginx配置:

   upstream frontend {
                least_conn;
                server frontend:4444 weight=10 max_fails=3 fail_timeout=30s;
                keepalive 64;
        }

       upstream graphql-upstream {
              least_conn;
              server graphql:3000 weight=1 max_fails=3 fail_timeout=30s;
              keepalive 64;
       }

        server {
              listen 80;
              server_name domain.com www.domain.com;
              root  /var/www/public;
              # Handle static files

              location / {
                  proxy_pass            http://frontend;
                  proxy_http_version    1.1;
                  proxy_set_header      Upgrade $http_upgrade;
                  proxy_set_header      Connection 'upgrade';
                  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_set_header      X-NginX-Proxy    true;
                  proxy_cache_bypass    $http_upgrade;
              }

             location /graphql {
                  proxy_pass graphql-upstream/graphql;
                  add_header 'Access-Control-Allow-Origin' '*';
                  add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
                  proxy_http_version    1.1;
                  proxy_set_header      Upgrade $http_upgrade;
                  proxy_set_header      Connection 'upgrade';
                  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_set_header      X-NginX-Proxy    true;
                  proxy_cache_bypass    $http_upgrade;
             }


        }

如何更改NGINX中的配置,以允许对domain.com/graphql发出的请求与对domain.com发出的请求具有相同的HTTP状态,但被传递到我的api服务器。

我没有正确引用我的NGINX,因为我没有在前端使用相对路径

此问题已在serverfault.com上得到回答