We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
因为没有讨论区,我就在这里发表讨论意见了,如果不允许,请回复我后我会自行删除
测试各大AI发现,基本AI对proxy_pass 的描述都有错误,经过我测试用下面的问题去问AI,100%都会说下面的配置有差别
server { listen 59212; server_name localhost; location /manage/ { proxy_pass http://127.0.0.1:7001/manage/; } } server { listen 59213; server_name localhost; location /manage/ { proxy_pass http://127.0.0.1:7001; } }
但是经过我实际测试, 前端访问http://127.0.0.1:59212/manage/1234和http://127.0.0.1:59213/manage/1234时,后端接收到的路径都是一样的,是/manage/1234
http://127.0.0.1:59212/manage/1234
http://127.0.0.1:59213/manage/1234
/manage/1234
The text was updated successfully, but these errors were encountered:
是因为NGINX版本不一致,造成行为不一致吗?我测试的nginx版本是nginx-1.22.0
nginx-1.22.0
Sorry, something went wrong.
# docker run --rm --name nginx-test -v $(pwd)/nginx.conf:/etc/nginx/conf.d/server.conf -p 8080:8080 nginx:1.22.0 server { listen 8080 default_server; server_name _; location /proxy-by-no-uri/ { proxy_pass http://127.0.0.1:8081; } location /proxy-by-uri/ { proxy_pass http://127.0.0.1:8081/proxy; } location /proxy-by-uri2/ { proxy_pass http://127.0.0.1:8081/proxy/; } location /ping { return 200 "pong"; } } server { listen 8081; location / { return 200 "$uri"; } }
根据上面的配置,测试以下 case :
/proxy-by-no-path/
proxy_pass
127.0.0.1:8080/proxy-by-no-uri/
/proxy-by-no-uri/
127.0.0.1:8080/proxy-by-no-uri/a/b/c
/proxy-by-no-uri/a/b/c
/proxy-by-uri/
location
/
127.0.0.1:8080/proxy-by-uri/
/proxy
127.0.0.1:8080/proxy-by-uri/a/b/c/d
/proxya/b/c/d
a/b/c/d
/proxy-by-uri2/
127.0.0.1:8080/proxy-by-uri2/
/proxy/
127.0.0.1:8080/proxy-by-uri2/a/b
/proxy/a/b
而你说的一样,其实不是『真一样』。因为你的 manage 目录名是一样的,导致没法区分这个问题。
manage
location /manage/ { # 由于你这里带了 URI ,访问会把 location 剩余的拼到这里。没问题 proxy_pass http://127.0.0.1:7001/manage/; } location /manage/ { # 由于你没有带 URI ,访问会把用户完整的拼到这里。也没有问题。。主要你的目录是一样的。 proxy_pass http://127.0.0.1:7001; }
ping @cvpv 你可以写些 case 真实的理解了这个的问题所在~
No branches or pull requests
测试各大AI发现,基本AI对proxy_pass 的描述都有错误,经过我测试用下面的问题去问AI,100%都会说下面的配置有差别
但是经过我实际测试,
前端访问
http://127.0.0.1:59212/manage/1234
和http://127.0.0.1:59213/manage/1234
时,后端接收到的路径都是一样的,是/manage/1234
The text was updated successfully, but these errors were encountered: