相关疑难解决方法(0)

Nginx 反向代理 + URL 重写

Nginx 在端口 80 上运行,我使用它来反向代理 URL,并/foo3200这种方式使用端口路径:

location /foo {
                proxy_pass http://localhost:3200;
                proxy_redirect     off;
                proxy_set_header   Host $host;
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我在 port 上有一个应用程序3200,我不希望将初始/foo值发送到该应用程序。也就是说 - 当我访问时http://localhost/foo/bar,我只想/bar成为应用程序接收到的路径。所以我尝试将此行添加到上面的位置块:

rewrite ^(.*)foo(.*)$ http://localhost:3200/$2 permanent;
Run Code Online (Sandbox Code Playgroud)

这会导致 302 重定向(更改 URL),但我想要 301。我该怎么办?

nginx reverse-proxy 301-redirect

241
推荐指数
3
解决办法
50万
查看次数

Nginx 作为服务于 301 的反向代理

我对 NGINX 的经验很少。我试图将它用作一些运行 node.js 的 docker 容器的反向代理。目标是所有请求都将通过 NGINX 汇集。根据路由(url 路径),某个路由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, …
Run Code Online (Sandbox Code Playgroud)

nginx reverse-proxy

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

nginx ×2

reverse-proxy ×2

301-redirect ×1