nginx的安装与常用功能
nginx
nginx介绍
nginx是一个轻量级,高性能的http和反向代理的web服务器
在实际使用中常常和tomcat搭配使用
nginx安装
nginx下载页,选择对应的版本进行下载
解压到安装目录就可以直接使用了,需要注意的是,路径不能有中文名,linux环境下需要还需要安装gcc等环境
注意事项:nginx启动会占用80端口,如果启动异常,检查80端口是否被占用,如果被占用可以在nginx解压目录下找到conf/nginx.conf文件修改端口
server {
listen 90; #启动端口
server_name localhost; location / {
root html;
index index.html index.htm;
}
location = /50x.html {
root html;
}
nginx常用命令: 启动命令:start nginx 关闭命令:nginx -s stop 重启命令:nginx -s reload 温馨提示:每次修改配置文件后记得重新启动nginx哦
使用nginx实现本地反向代理
nginx.conf配置
#图片服务器
server {
listen 90;
server_name image.page.com;
location / {
#代理的路径
root E:/page/images/;
}
}
#后台商品管理服务器
server{
listen 90;
server_name manage.page.com;
location / {
#代理服务器路径
proxy_pass http://localhost:8080;
}
}
}
由于没有购买域名,dns服务器无法解析
可以在此路径下C:WindowsSystem32driversetc找到hosts文件,在文件末尾添加本地域名解析
在浏览器地址栏输入域名后,会先在这个文件查找,没有才通过dns服务器解析域名
添加本地域名解析
127.0.0.1 image.page.com
127.0.0.1 manage.page.com
#需要解析的域名和对应的ip地址
nginx实现负载均衡
什么是负载均衡 在项目部署时有多台服务器,那么这几台服务器该如何来分配呢?nginx可以分配用户去访问不同的服务器
配置nginx.conf配置文件
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
#
server localhost:8091;
server localhost:8092;
server localhost:8094;
}
#后台商品管理服务器
server{
listen 90;
server_name manage.page.com;
location / {
#代理服务器路径
proxy_pass http://pageWindows;
}
}
}
通过以上配置nginx就会平均的分配用户访问的是那个服务器
nginx中的权重策略
轮询策略:平均分配 权重策略:按照比例分配 IPHASH策略:根据ip来分配
轮询策略
nginx默认配置为轮询
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
#默认轮询策略
server localhost:8091;
server localhost:8092;
server localhost:8094;
}
优点:每个服务器都平均分配访问
缺点:性能不是很好的服务器会承担它这个价格不该承受的压力
权重策略
能力越大责任越大,性能越好的服务器应该允许更大的访问
关键字:weight
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
#配置权重策略
server localhost:8091 weight = 6;
server localhost:8092 weight = 3;
server localhost:8094 weight = 1;
}
IPHASH策略
基于客服端ip地址进行服务器分发,同一个ip只能访问且始终只能访问那一台服务器
缺点:如果一台服务器出现故障不能访问,那么他们对应的那一批用户将无法访问,显然这个缺点是致命的,当然负载不均也是肯定的,不推荐使用
关键字:ip_hash
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
#IPHASH策略
ip_hash
server localhost:8091;
server localhost:8092;
server localhost:8094;
}
nginx运维配置项
down属性
当 nginx实现负载均衡时,后台服务器出现故障,可以用down标记,nginx就不会对该服务器进行分配
实现
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
server localhost:8091 down; #nginx不会对该服务器分配访问任务
server localhost:8092;
server localhost:8094;
}
backup属性
backup 表示备用机 正常情况下该机器不参与用户的访问,留作备用,当服务器全部宏基或者主服务器繁忙时启用
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
server localhost:8091 down; #nginx不会对该服务器分配访问任务
server localhost:8092 down;
server localhost:8094 backup;
}
健康检查/心跳检测
健康检查是为了在没有程序员表示down属性时,引起频繁访问故障机的情况,当服务器宕机,只需要影响用户2秒之后,在指定的周期中不在访问故障机提升用户体验 常用属性: max_fails=1: 表示用户发起请求时链接不到服务器表示失败. fail_timeout=60s 如果服务器访问失败次数1次之后则在60秒内不会再访问故障机. proxy_connect_timeout 2; #服务器链接超时时间 proxy_read_timeout 2; #读取服务器资源超时时间 proxy_send_timeout 2; #向服务器发送资源的超时时间
配置
#tomcatwindows集群
#配置需要访问的端口
upstream pageWindows{
server localhost:8091 max_fails=1 fail_timeout=60s;
server localhost:8092 ;
server localhost:8094 ;
}
- JS魔法堂:不完全国际化&本地化手册 之 实战篇
- scala + intellij idea 环境搭建及编译、打包
- Angular企业级开发(2)-搭建Angular开发环境
- JS魔法堂:不完全国际化&本地化手册 之 拓展篇
- 使用jQuery的animate方法制作滑动菜单
- jenkins 入门教程(下)
- CSS3制作心形头像
- CSS魔法堂:重拾Border之——不仅仅是圆角
- scala 学习笔记(01) 函数定义、分支、循环、异常处理、递归
- java之log4j的配置
- scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例
- scala 学习笔记(04) OOP(上)主从构造器/私有属性/伴生对象(单例静态类)/apply方法/嵌套类
- 使用jQuery封装实用函数
- scala 学习笔记(05) OOP(中)灵活的trait
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法