nginx的代理配置、负载均衡
来源:互联网 发布:红警网络卡怎么设置 编辑:程序博客网 时间:2024/05/17 04:57
linux编译安装nginx http://blog.csdn.net/shuai825644975/article/details/58026207
跟上篇nginx启动后,进行代理配置
nginx配置在nginx/conf/nginx.conf文件
常用属性
worker_processes 1; 默认工作进程数,可以改为跟CPU综核数一致
events {
worker_connections 1024; 默认一个工作进程最大允许连接数,具体根据电脑情况修改
}
http {
log_format main 'xxxx'; 日志开启和输出内容配置(main可以自定义)
access_log 路径/log_name.log main; 日志输出路径(main需要和log_format的main保持一致)
#gzip on|off; 压缩配置开关(太小的文件不建议压缩)
#gzip_buffer 32 4k; 设置系统获取多少个单位的缓存用于存储gzip的压缩结果数据流
#gzip_comp_level 6; 压缩级别[1-9],值越高,压缩的内容越小
#gzip_min_length 200; 开始压缩的最小长度
#gzip_types text/css text/xml application/x-javascript; 对哪些文件做压缩处理
#gzip_vary on|off; 是否传输gzip压缩标识
#gzip_disable "MSIE [1-6]\."; 正则匹配UA,表示对指定的浏览器不做gzip压缩
#upstream实现负载均衡,可以有多个upstream {}配置。upstream_name属性可以自定义,但是proxy_pass http://upstream_name;需要和它唯一对应
upstream upstream_name {
server 127.0.0.1:8081
server 127.0.0.2:8081
.....
}
server {
listen 80; 监听端口
server_name www.ershuai.com; 监听名称
location / {
root html; 指定访问资源路径;nginx/html/目录
index index.html; 在root指定的目录下,找到名称为index.html文件(如果请求静态资源的话,可以不要index属性。如图片资源,配置root属性就行)
proxy_redirect off; default|off|redirect replacement,默认会烦location是proxy_pass值,可以通过proxy_redirect修改
proxy_set_header Host $host; 设置头部信息
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8081/project_name; 普通情况下,配置访问项目
proxy_pass http://upstream_name; 负责均衡情况下,upstream_name是upstream配置的name属性
}
}
}
conf中还有很多属性命令,有需要可以再具体了解。
location中的正则匹配
语法:location [=|~|~*|^~] /uri/ { …}
= 开头表示精确匹配
^~ 表示uri以某个常规字符串开头,相当于匹配uri路径
~ 区分大小写的正则匹配
!~ 区分大小写不匹配
!~* 不区分大小不匹配
~* 不区分大小写的正则匹配
/ 通用匹配
有多个location配置的时候,匹配等级:精准匹配 > 一般匹配 > 正则匹配
rewrite重写
语法: if (condition) { }
条件:
= 判断相等,用于字符的比较
~ 正则匹配,区分大小写
~* 正在匹配,不区分大小写
-f|-d|-e 判断是否为文件|目录|是否存在
--------------------------------------------------------------------------------------------------------------
一般情况下,肯定会有多域名配置
1、可以在nginx.conf文件中,配置多个server {}
2、可以通过include引入文件的方式,一个域名一个.conf文件
采用第2种,方便管理
1、在指定目录创建文件夹,存放所有.conf文件
2、修改nginx/nginx.conf文件配置
在http属性内引入文件,指向.conf存放目录
include xxxxx/*/*.conf; *是通配符
(在conf目录同级创建www-custom文件夹,下面一个域名一个文件夹,每个文件夹下有logs文件夹用于存放日志,xxx.conf配置属性)
3、配置.conf文件属性
4、以上基础匹配完成后,在sbin目录下,启动或重启nginx,访问www.xxxxxx域名
启动:./nginx
重启:./nginx -s reload
-------------------------------------------------------------------------------------------------------------
upstream机制
1、轮询
默认选项,所有节点weight=1,每个请求按时间顺序逐一分配,如果节点宕掉,自动剔除
upstream name {
server 127.0.0.1:8080;
server 127.0.0.2:8080;
}
2、ip_hash
每个请求按ip的hash结果分配,用户ip固定的情况下会固定访问一个服务端,可以解决session不能跨服共享问题
如果节点宕掉,需要手动剔除
upstream name {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.2:8080;
}
3、weight权重
指定轮询几率,weight和访问比率成正比,如果节点宕掉,自动剔除
upstream name {
server 127.0.0.1:8080 weight=1;
server 127.0.0.2:8080 weight=2;
}
4、fair
按节点响应时间分配请求,响应时间短优先分配
upstream name {
server 127.0.0.1:8080;
server 127.0.0.2:8080;
fair;
}
5、url_hash
按访问url的hash结果分配,url相同的情况下会访问到同一服务器。hash_method使用的hash算法
upstream name {
server 127.0.0.1:8080;
server 127.0.0.2:8080;
hash $request_uri;
hash_method crc32;
}
-------------------------------------------------------------------------------------------------------------
项目部署到tomcat,session失效
在location里配置一个属性(/ /中间有个空格的)
proxy_cookie_path /project_name/ /;
- nginx的代理配置、负载均衡
- Nginx的Upstream负载均衡与反向代理的配置
- Nginx负载均衡与反向代理的配置实例
- 利用Nginx做反向代理的负载均衡配置
- nginx的配置、虚拟主机、负载均衡和反向代理
- nginx的配置、虚拟主机、负载均衡和反向代理
- nginx反向代理和负载均衡的配置
- nginx的配置、虚拟主机、负载均衡和反向代理
- nginx的配置、虚拟主机、负载均衡和反向代理
- nginx的配置、虚拟主机、负载均衡和反向代理
- nginx服务器图片的反向代理和负载均衡配置
- nginx的配置、虚拟主机、负载均衡和反向代理
- 配置nginx的反向代理及负载均衡
- nginx的配置、虚拟主机、负载均衡和反向代理--01
- nginx的配置、虚拟主机、负载均衡和反向代理--02
- nginx的配置、虚拟主机、负载均衡和反向代理--03
- nginx的虚拟主机配置和反向代理,负载均衡
- nginx 服务器的反向代理和负载均衡配置
- python 单线程和多线程
- JM代码分析
- LeetCode: 523. Continuous Subarray Sum
- Android 6.0+的权限问题
- python与pexpect实现ssh操作
- nginx的代理配置、负载均衡
- git 命令之git rebase 用法
- 类模板 ---上 --- 定义、工程应用
- Docker跨主机网络通信方案
- C#设计模式--代理模式
- Docker registry + Ceph存储
- LeetCode-Greedy-455. Assign Cookies
- 百度地图根据经纬度取得具体的一个地址
- Android 轻量级简单易用的日志组件