首页 / NGINX / Nginx配置反向代理服务器
Nginx配置反向代理服务器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Nginx配置反向代理服务器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4241字,纯文字阅读大概需要7分钟。
内容图文
![Nginx配置反向代理服务器](/upload/InfoBanner/zyjiaocheng/1307/249c907c88f74fa2baf8cb726149e44b.jpg)
首先,在阅读《深入理解Nginx模块》后,大体了解了配置反向代理服务器一些常见的配置。如下进行说明:”
l
Nginx worker
进程个数
语法:
worker_processes number;
默认:
worker_processes 1;
在
master/worker
运行方式下, 定义
worker
进程的个数。
worker
进程的数量会直接影响性能。 那么, 用户配置多少个
worker
进程才好呢? 这实际上与业务需求有关。
每个
worker
进程都是单线程的进程, 它们会调用各个模块以实现多种多样的功能。 如果这些模块确认不会出现阻塞式的调用, 那么, 有多少
CPU
内核就应该配置多少个进程;
反之, 如果有可能出现阻塞式调用, 那么需要配置稍多一些的
worker
进程。
l
指定Nginx worker进程可以打开的最大句柄描述符个数
语法: worker_rlimit_nofile limit;
设置一个worker进程可以打开的最大文件句柄数。
l
选择事件模型
语法:
use[kqueue|rtsig|epoll|/dev/poll|select|poll|eventport];
默认:
Nginx
会自动使用最适合的事件模型。
对于
Linux
操作系统来说, 可供选择的事件驱动模型有
poll
、
select
、
epoll
三种。
epoll
当然是性能最高的一种
, 在
9.6
节会解释
epoll
为什么可以处理大并发连接。(因为异步+io复用)
l
每个
worker
的最大连接数
语法:
worker_connections number;
定义每个
worker
进程可以同时处理的最大连接数。
l 开启或者关闭gzip模块
语法: gzip on|off
默认值: gzip off
作用域: http, server, location, if (x) location
![if !supportLineBreakNewLine]>
l
gzip_comp_level
gzip
压缩比
语法: gzip_comp_level 1..9
默认值: gzip_comp_level 1
作用域: http, server, location
gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。
l HTTP 请求包体的最大值
语法:
client_max_body_size size;
默认:
client_max_body_size 1m;
配置块:
http
、
server
、
location
浏览器在发送含有较大
HTTP
包体的请求时, 其头部会有一个
Content-Length
字段,
client_max_body_size
是用来限制
Content-Length
所示值的大小的。 因此, 这个限制包体的配置非常有用处,
因为不用等
Nginx
接收完所有的
HTTP
包体
——
这有可能消耗很长时间
——
就可以告诉用户请求过大不被接受。
例如, 用户试图上传一个
10GB
的文件,
Nginx
在收完包头后, 发现
Content-Length
超过
client_max_body_size
定义的值, 就直接发送
413("Request EntityToo Large")
响应给客户端
l
存储
HTTP
头部的内存
buffer
大小
语法:
client_header_buffer_size size;
默认:
client_header_buffer_size 1k;
配置块:
http
、
server
上面配置项定义了正常情况下
Nginx
接收用户请求中
HTTP header
部分(包括
HTTP
行和
HTTP
头部) 时分配的内存
buffer
大小。
l proxy_connect_timeout
后端服务器连接的超时时间_发起握手等候响应超时时间
l proxy_read_timeout
连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)
l proxy_send_timeout
后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
l proxy_buffering
proxy_buffering 开启的时候,proxy_buffers 和proxy_busy_buffers_size 才会起作用,无论proxy_buffering 是否开启,proxy_buffer_size 都起作用。
l proxy_buffer_size
proxy_buffer_size 用来接受后端服务器 response 的第一部分,小的response header 通常位于这部分响应内容里边。默认proxy_buffer_size 被设置成 proxy_buffers 里一个buffer 的大小,当然可以设置更小些。
① 如果 proxy_buffers 关闭
Nginx 不会尝试获取到后端服务器所有响应数据之后才返回给客户端,Nginx 会尽快把数据传给客户端,在数据传完之前,Nginx 接收到的最大缓存大小不能超过 proxy_buffer_size 。
② 如果 proxy_buffers 打开
Nginx 将会尽可能的读取后端服务器的数据到buffer,直到proxy_buffers设置的所有buffer们被写满或者数据被读取完(EOF),此时Nginx开始向客户端传输数据,会同时传输这一整串buffer们。如果数据很大的话,Nginx会接收并把他们写入到temp_file里去,大小由proxy_max_temp_file_size 控制。「当数据没有完全读完的时候」,Nginx同时向客户端传送的buffer 大小 不能超过 proxy_busy_buffers_size 「此句可能理解有误」。
l proxy_busy_buffers_size:
当缓存后端服务器的配置被打开时,该项限定,当已经被send的response没有被完全read,此时可用busy_buffers,而size限定这个buffer的大小,当然需要的话,部分的response可以也可以写到temp_file里。
l
location
语法:
location[=|~|~*|^~|@]/uri/{...}
配置块:
server
location
会尝试根据用户请求中的
URI
来匹配上面的
/uri
表达式, 如果可以匹配, 就选择
location{}
块中的配置来处理用户请求。
nginx 是通过alias设置虚拟目录,在nginx的配置中,alias目录和root目录是有区别的:
1 )alias指定的目录是准确的,即location匹配访问的path目录下的文件直接是在alias目录下查找的;
2 )root指定的目录是location匹配访问的path目录的上一级目录,这个path目录一定要是真实存在root指定目录下的;
3 )使用alias标签的目录块中不能使用rewrite的break(具体原因不明);另外,alias指定的目录后面必须要加上"/"符号!!
4 )alias虚拟目录配置中,location匹配的path目录如果后面不带"/",那么访问的url地址中这个path目录后面加不加"/"不影响访问,访问时它会自动加上"/";
但是如果location匹配的path目录后面加上"/",那么访问的url地址中这个path目录必须要加上"/",访问时它不会自动加上"/"。如果不加上"/",访问就会失败!
5 )root目录配置中,location匹配的path目录后面带不带"/",都不会影响访问。
举例:
location
/huan/ {
alias
/home/www/huan/
;
}
在上面 alias 虚拟目录配置下,访问 http://www.wangshibo.com/huan/a.html 实际指定的是 /home/www/huan /a.html 。
注意: alias 指定的目录后面必须要加上 "/" ,即 /home/www/huan/ 不能改成 /home/www/huan
上面的配置也可以改成
root
目录配置,如下,这样
nginx
就会去
/home/www/huan
下寻找
http://www.wangshibo.com/huan
的访问资源,两者配置后的访问效果是一样的!
location
/huan/
{
root
/home/www/
;
}
这边不是很理解,大概是重定向 /50x.html 到 root path 下的页面吧,后来才知道,这样设置,应该去 nginx 下面的目录找 html 目录,果然找到了 50x.html
l
嵌入其他配置文件
语法:
include
path
file;
include
配置项可以将其他配置文件嵌入到当前的
nginx.conf
文件中, 它的参数既可以是绝对路径, 也可以是相对路径(相对于
Nginx
的配置目录, 即
nginx.conf
所在的目录) , 例如:
include mime.types;
include vhost/*.conf;
可以看到,
参数的值可以是一个明确的文件名, 也可以是含有通配符
*
的文件名, 同时可以一次嵌入多个配置文件。
l allow
语法:allow address |CIDR|unix:|all:
默认值:None
区间:http,server,location,limit_except
允许一个ip或者ip段访问
l deny
语法:deny address |CIDR|unix:|all:
默认值:None
区间:http,server,location,limit_except
禁止一个ip或者ip段访问
l proxy_pass
这个指令设置被代理服务器的地址和被映射的URI
原文:https://www.cnblogs.com/LUO77/p/8525313.html
内容总结
以上是互联网集市为您收集整理的Nginx配置反向代理服务器全部内容,希望文章能够帮你解决Nginx配置反向代理服务器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。