nginx配置指南
反向代理说明
正向代理
在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问
举例:
用户 -----x-----> www.google.com
用户 --------代理服务器---------www.google.com
反向代理
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址
。
客户端 -----------反向代理服务器 ----------- tomcat8001
总结:
正向代理隐藏客户端 反向代理隐藏服务器
安装过程
略
配置说明
常用命令
- 查看nginx版本号
nginx -v
- 启动nginx
nginx
- 关闭nginx
nginx -s stop
- 重新加载nginx配置
nginx -s reload
配置文件位置
/usr/local/nginx/conf/ngin.conf
配置文件详解
第一部分 全局块
worker_processes auto;
nginx处理并发的配置,值越大,可以支持的并发请求量也越多 但是会受到硬件等其他影响
第二部分 events
events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接。
常用的设置包括:
是否开启对多 work process下的网络连接进行序列化
是否允许同时接收多个网络连接
选取哪种事件驱动模型来处理连接请求
每个 wordprocess 可以同时支持的最大连接数等。
#例如
work process 1024 # 支持的最大链接数为多少
第三部分 http
配置中最重要的部分
- 全局块
listen 80; # 当前监听端口为80
server_name localhost; # 主机名称,本地默认localhost
location /{
root html;
index index.html index.htm;
}
- server块
2.1 全局server块
2.2 location块
location指令说明
:
用于匹配URL
1.=
:用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜多并立即处理该请求。
2.~
: 用于表示uri包含正则表达式,并且区分大小写。
3.~*
:用于表示uri包含正则表达式,并且不区分大小写。
4.^~
: 用于不好正则表达式的uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。
注意
:如果uri包含正则表达式,则必须要有~
或者~*
。
反向代理+负载均衡配置
- 在http块中创建upstream,并起变量名,例如此处取的就是
myserver
。配置多个服务地址 - 然后在server中需要配置的location中添加proxy_pass参数,配置为上面的变量名
负载均衡策略
默认
轮询weight
权重策略(权重默认为1,权重越高被分配的客户端越多)ip_hash
让每个方可固定访问一个后端服务器,可以解决session不共享问题
fair
(第三方),根据响应时间分配