Nginx 详解(包含各个 Nginx 模块)
第一篇可查看如下链接
https://blog.csdn.net/weixin_44983653/article/details/101115410
Nginx 各个功能模块详解
1、ngx_http_proxy_module
The ngx_http_proxy_module module allows passing requests to another server.
1、proxy_pass URL;
Context: location, if in location, limit_except
# 注意:proxy_pass后面的路径不带uri时,其会将location的uri传递给后端主机
语法格式:
server {
...
server_name HOSTNAME;
location /uri/ {
proxy http://hos[:port];
}
...
}
http://HOSTNAME/uri --> http://host/uri
# proxy_pass后面的路径是一个uri时,其会将location的uri替换为proxy_pass的uri
server {
...
server_name HOSTNAME;
location /uri/ {
proxy http://host/new_uri/;
}
...
}
http://HOSTNAME/uri/ --> http://host/new_uri/
# 如果location定义其uri时使用了正则表达式的模式,或在if语句或limt_execept中使用proxy_pass指令
# 则proxy_pass之后必须不能使用uri; 用户请求时传递的uri将直接附加代理到的服务的之后
server {
...
server_name HOSTNAME;
location ~|~* /uri/ {
proxy http://host;
}
...
}
http://HOSTNAME/uri/ --> http://host/uri/
2、proxy_set_header field value;
# 设定发往后端主机的请求报文的请求首部的值;Context: http, server, location
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
3、proxy_cache_path
# 定义可用于proxy功能的缓存;Context: http
# proxy_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold&