具有高性能的http和反向代理的web服务器,同时也是一个pop3/smtp/imap代理服务器,使用c语言编写
**Web服务器:**也叫网页服务器,web server,主要功能是为用户提供网上信息浏览服务
pop/smtp/imap:都是邮件相关协议,所以Nginx也可以作为电子邮件代理服务器
反向代理:
客户端将请求发送给代理,代理将请求发送给不同的服务端,把服务端隐藏起来,降低服务端压力
正向代理:
客户端将请求发送给代理,代理再向服务端请求,并接受服务端响应,将响应返回给客户端,比如翻墙
cgi:通用网关(接口),主要解决的问题是从客户端发送请求和数据,服务端获取到请求和数据后可以调用cgi程序处理及相应结果给客户端的一种标准规范
正向代理代理的是客户端(如翻墙),反向代理代理的是服务端,用户请求代理服务器,代理服务器再将请求分发到服务端
proxy_pass
设置被代理服务器地址,可以是主机名称,ip地址+端口形式
Syntax: proxy_pass URL;
Default: —
Context: location, if in location, limit_except
如果url后面不带/
,最终被代理服务器的地址会是原来的url拼接上location后面的url
proxy_set_header
用来给客户端请求添加头信息
Syntax: | proxy_set_header field value; |
---|---|
Default: | proxy_set_header Host $proxy_host;``proxy_set_header Connection close; |
Context: | http , server , location |
$http_请求头名称:可以获取对应请求头内容
proxy_redirect
重置头信息中的Location和Refresh的值
Syntax: | proxy_redirect default; proxy_redirect off; proxy_redirect redirect replacement; |
---|---|
Default: | proxy_redirect default; 将location块的uri变量作为replacement,将proxy_pass变量作为redirect进行替换 |
Context: | http , server , location |
主要用来解决服务端ip可能暴露问题,可以在代理服务器端添加
proxy_redirect 服务端ip 代理服务器地址 来实现Location的
Buffer和Cache
proxy_buffering
用来开启或关闭代理服务器缓冲区
proxy_buffers
用来指定单个连接从代理服务器读取响应的缓存区的个数和大小
proxy_buffers 个数 大小
proxy_buffer_size
用来设置从被代理服务器获取的第一部分响应数据的大小,保持与proxy_buffers中的size一致即可,也可以更小
proxy_busy_buffers_size
限制同时处于busy状态的缓冲总大小
proxy_temp_file_write_size
设置磁盘上缓冲文件大小
proxy_buffering on;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;