location 末尾是否加 /
的區別
location /proxy { #末尾無'/'
proxy_pass http://127.0.0.1:8080/;
}
匹配以 /proxy
開頭的路徑。 eg: /proxyaaa、/proxy/xxx/yyy、/proxy-xxx
- 訪問 localhost:80/proxyaaa,代理到 127.0.0.1:8080/aaa
- 訪問 localhost:80/proxy/aaa,代理到 127.0.0.1:8080//aaa (兩個 ‘//’)
location /proxy/ { #末尾有'/'
proxy_pass http://127.0.0.1:8080/;
}
匹配以 /proxy/
開頭的路徑。 eg: /proxy/aaa、/proxy/bbb、/proxy/aaa/bbb
- 訪問 localhost:80/proxy/aaa,代理到 127.0.0.1:8080/aaa
proxy_pass 末尾是否加 /
的區別
location /proxy/ {
proxy_pass http://127.0.0.1:8080/; #末尾有'/'
}
proxy_pass 地址末尾加 /
,則代理路徑將不包含location匹配的部分
- 訪問 localhost:80/proxy/index.html 時,代理到 127.0.0.1:8080/index.html
location /proxy/ {
proxy_pass http://127.0.0.1:8080; #末尾無'/'
}
proxy_pass 地址末尾不加 /
,則代理路徑將包含location匹配的部分
- 訪問 localhost:80/proxy/index.html 時,代理到 127.0.0.1:8080/proxy/index.html
另外:通過 rewrite 配置實現末尾不加 /
和 加 /
的代理路徑一致
location /proxy/ {
proxy_pass http://127.0.0.1:8080; #末尾無'/'
rewrite '^/proxy(.*)$' $1 break;
}
- 訪問 localhost:80/proxy/index.html 時,代理到 127.0.0.1:8080/index.html
多節點負載均衡 upstream
多節點負載均衡配置,默認是輪訓策略。Nginx 負載均衡策略
upstream backend-server {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
location /backend {
proxy_pass http://backend-server;
}
}
WebSocket 配置
location /chat/ {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
reference:
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_pass
nginx upstream 模塊
nginx websocket 配置
nginx 變量索引
end