1、ROOT/a.html : this is ROOT page

2、ROOT/testa.html : nihao

3、ROOT/index.html : this is ROOT index page

4、test/a.html : this is test page

5、test/index.html : this is test index page

二、nginx 的server_name 配置如下:

1 、proxy_pass 的URI 不带路径:

server {

listen 80;

server_name www.test.com;

location /nihao {

proxy_pass http://127.0.0.1:8081;

index index.html;

#location 后无/ proxy_pass 后无/ 代理到 http://127.0.0.1:8081 /nihao/a.html

#curl http://www.test.com/nihao/a.html 因hello目录不存在

#The requested resource is not available

location /test {

proxy_pass http://127.0.0.1:8081;

index index.html;

#location 后无/ proxy_pass 后无/ 代理到 http://127.0.0.1:8081 /test/a.html

#curl http://www.test.com/test/a.html

#this is test page

location /hello/ {

proxy_pass http://127.0.0.1:8081;

index index.html;

#location 后有/ proxy_pass 后无/ 代理到 http://127.0.0.1:8081 /hello/a.html

#curl http://www.test.com/hello/ 因hello目录不存在

#The requested resource is not available

location /test/ {

proxy_pass http://127.0.0.1:8081;

index index.html;

#location 后有/ proxy_pass 后无/ 代理到 http://127.0.0.1:8081 /test/a.html

#curl http://www.test.com/test/

#this is test index page

server {

listen 80;

server_name www.test1.com;

location /nihao {

proxy_pass http://127.0.0.1:8081/;

index index.html;

#location 后无/ proxy_pass 后有/ 代理到 http://127.0.0.1:8081 /a.html

#curl http://www.test1.com/nihao/a.html

#this is ROOT page

location /test {

proxy_pass http://127.0.0.1:8081/;

index index.html;

#location 后无/ proxy_pass 后有/ 代理到 http://127.0.0.1:8081 /a.html

#curl http://www.test1.com/test/a.html

#this is ROOT page

location /hello/ {

proxy_pass http://127.0.0.1:8081/;

index index.html;

#location 后有/ proxy_pass 后有/ 代理到 http://127.0.0.1:8081 /index.html

#curl http://www.test1.com/hello/

#this is ROOT index page

location /test/ {

proxy_pass http://127.0.0.1:8081/;

index index.html;

#location 后有/ proxy_pass 后有/ 代理到 http://127.0.0.1:8081 /index.html

#curl http://www.test1.com/test/

#this is ROOT index page

2 、proxy_pass 的URI 带路径:

server {

listen 80;

server_name www.test.com;

location /nihao {

proxy_pass http://127.0.0.1:8081/test;

index index.html;

#location 后无/ proxy_pass 后无/ 代理到 http://127.0.0.1:8081 /test/a.html

#curl http://www.test.com/nihao/a.html

#this is test page

#curl http://www.test.com/nihao

#this is test index page

location /test {

proxy_pass http://127.0.0.1:8081/test;

index index.html;

#location 后无/ proxy_pass 后无/ 代理到 http://127.0.0.1:8081 /test//

#curl http://www.test.com/test 重定向为:http://www.test.com/test//

#指向此网址的请求无限循环重定向

location /hello/ {

proxy_pass http://127.0.0.1:8081/test;

index index.html;

#location 后有/ proxy_pass 后无/ 代理到 http://127.0.0.1:8081 /testa.html

#curl http://www.test.com/hello/a.html

#nihao

#curl http://www.test.com/hello/ 重定向为:http://www.test.com/hello//

#指向此网址的请求无限循环重定向

location /test/ {

proxy_pass http://127.0.0.1:8081/test;

index index.html;

#location 后有/ proxy_pass 后无/ 代理到 http://127.0.0.1:8081 /testa.html

#curl http://www.test.com/test/a.html

#nihao

#curl http://www.test.com/test/ 重定向为:http://www.test.com/test//

#指向此网址的请求无限循环重定向

server {

listen 80;

server_name www.test1.com;

location /nihao {

proxy_pass http://127.0.0.1:8081/test/;

index index.html;

#location 后无/ proxy_pass 后有/ 代理到 http://127.0.0.1:8081 /test/a.html

#curl http://www.test1.com/nihao

#this is test index page

#curl http://www.test1.com/nihao/a.html

#this is test page

location /test {

proxy_pass http://127.0.0.1:8081/test/;

index index.html;

#location 后无/ proxy_pass 后有/ 代理到 http://127.0.0.1:8081 /test/index.html

#curl http://www.test1.com/test

#this is test index page

location /hello/ {

proxy_pass http://127.0.0.1:8081/test/;

index index.html;

#location 后有/ proxy_pass 后有/ 代理到 http://127.0.0.1:8081 /test/a.html

#curl http://www.test1.com/hello

#this is test index page

#curl http://www.test1.com/hello/a.html

#this is test page

location /test/ {

proxy_pass http://127.0.0.1:8081/test/;

index index.html;

#location 后有/ proxy_pass 后有/ 代理到 http://127.0.0.1:8081 /test/a.html

#curl http://www.test1.com/test/a.html

#this is test page

三、总结:

nginx 中配置 proxy_pass 代理转发时,如果在 proxy_pass 后面的 url / ,表示绝对根路径;如果没有 / ,表示相对路径,把匹配的路径部分也给代理走。

proxy_pass的 URI带路径中如果location的不带/,最好proxy_pass也不带;

做人一定要靠自己