浅谈Nginx(二)—http下server配置
1)proxy_pass URL; # 完成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时使用了正则表达式的模式,则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 keys_zone=name:size ;
4)proxy_cache zone | off;
指明要调用的缓存,或关闭缓存机制;Context: http, server, location
5)proxy_cache_key string;
缓存中用于“键”的内容;
默认值:proxy_cache_key $scheme$proxy_host$request_uri;
6)proxy_cache_valid time;
定义对特定响应码的响应内容的缓存时长;
定义在http{...}中;
proxy_cache_path /var/cache/nginx/proxy_cache levels=1:1:1 keys_zone=pxycache:20m max_size=1g;
定义在需要调用缓存功能的配置段,例如server{...};
proxy_cache pxycache;
proxy_cache_key $request_uri;
proxy_cache_valid 200 302 301 1h;
proxy_cache_valid any 1m;
7)proxy_cache_use_stale
定义用过期的内容响应客户端,例如:服务器错误或无响应,nginx可用缓存响应客户端
proxy_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | off ...;
Determines in which cases a stale cached response can be used when an error occurs during communication with the proxied server.
8)proxy_cache_methods GET | HEAD | POST ...;
针对方法做代理
If the client request method is listed in this directive then the response will be cached. “GET” and “HEAD” methods are always added to the list, though it is recommended to specify them explicitly.
9)proxy_hide_header field;
请求或响应中可以隐藏后端服务器报文内容
By default, nginx does not pass the header fields “Date”, “Server”, “X-Pad”, and “X-Accel-...” from the response of a proxied server to a client. The proxy_hide_header directive sets additional fields that will not be passed.
例:
location/ {
proxy_hide_header Server;
}
10)proxy_connect_timeout time;
nginx代理服务器等待后端服务器响应时长;
Defines a timeout for establishing a connection with a proxied server. It should be noted that this timeout cannot usually exceed 75 seconds.
默认为60s;
页:
[1]