一.nginx简介

1.什么是nginx?

Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的,支持高达 50,000 个并发连接数。功能:反向代理,负载均衡,动静分离

2.反向代理

代理的是服务端,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定

3.正向代理

代理的是客户端,比如vpn,我们访问不了外网地址,就用代理我们的服务器,然后通过正向代理向目的服务器发起请求,之后就可以访问到目的服务器了

4.负载均衡

请求分发到多个服务器上,将负载分发到不同的服务器,这就是所说的负载均衡

5.动静分离

可以将一些css,js,img ,html 等一些静态资源没必要去让tomcat 去加载,好处是减少tomcat压力,提高响应速度,让tomcat只去处理跟数据库打交道的请求

二.nginx配置文件

将 nginx.conf 配置文件分为三部分:

1.全局块

从配置文件开始到 events 块之间的内容,主要会设置一些影响 nginx 服务器整体运行的配置指令

#工作进程数,默认1,可设置为cpu核心数
worker_processes number | auto;
#配置Nginx进程的PID存放路径(启动nginx 时自动生成的 里面存放的是当前 nginx 住进程的ID 号)
pid file;
#配置全局错误日志的存放路径
error_log file | stderr [level];

2.events块

events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接

#单个工作进程可以允许同时建立外部连接的数量(一般1024,最大10w)
worker_connections

3.http全局块

包括 http 全局块、server 块

http全局块设置超时时间,单链接请求数上限等

server块相当于一个虚拟主机。包括全局server块和location块

http {
#设定mime类型,类型由mime.type文件定义
include mime.types;
#默认文件类型
default_type application/octet-stream; #设定日志格式(自定义)
log_format ownformat '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /home/nginx/log/http_access.log ownformat; keepalive_timeout 120; #长连接超时时间,单位是秒
send_timeout 30; #指定客户端的响应超时时间 upstream myserver{ #负载均衡配置
server 127.0.0.1:8081 weight=1;
server 127.0.0.1:8082 weight=1;
}
server {
listen 80; #描述虚拟主机接受连接的地址和端口
server_name localhost; #内网:主机名,外网:域名 可以是多个域名,用空格隔开
index index.html index.htm index.jsp; #默认访问主页
root /nginx/www/webapps; #主目录 location / {
proxy_pass http://myserver #配置负载均衡
}
location ~/edu/ { #正则 路径包含edu 转发到8001端口
proxy_pass 127.0.0.1:8001
}
# 动静分离配置
location /image/ {
proxy_set_header Host $host;
proxy_pass http://stack_pools;
}
location /dynamic/ {
proxy_set_header Host $host;
proxy_pass http://dynamic_pools;
} }
}

三. 负载均衡策略

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

upstream backserver {

server 192.168.0.14;

server 192.168.0.15;

}

2、指定权重

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

upstream backserver {

server 192.168.0.14 weight=8;

server 192.168.0.15 weight=10;

}

3、IP绑定 ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstream backserver {

ip_hash;

server 192.168.0.14 weight=8;

server 192.168.0.15 weight=10;

}

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream backserver {

server server1;

server server2;

fair;

}

最新文章

  1. Error: Bootstrap's JavaScript requires jQuery错误
  2. Java中serialVersionUID
  3. 1.springMVC+spring+Mybatis的整合思路
  4. Java学习笔记 04 类和对象
  5. OC block的简单使用
  6. 如何使用mybatis《二》
  7. mysql中的if判断
  8. p2p网贷项目开发全过程技术详解,应用框架是ci2.2
  9. magento cache,magento index
  10. WordPress实现长篇文章/日志/单页面分页功能效果
  11. 【转载】Android设计中的.9.png
  12. Android代码中设置背景图片
  13. HAProxy 基本翻译
  14. APUE16章的运行示例16-14
  15. java基础:int和integer区别
  16. javascript 中this的使用场景全
  17. 统计solr multivalued 字段中数目
  18. jdk配置java_home的两种方式
  19. HTML随笔1
  20. canvas画布,时钟

热门文章

  1. JS节流与防抖
  2. 对抗生成网络 Generative Adversarial Networks
  3. Python 为什么不支持 switch 语句?
  4. 使用Cadence绘制PCB流程
  5. matlab做gaussian高斯滤波
  6. Eclipse 重命名工程、包、类
  7. SpringBoot-06-模板引擎Thymeleaf
  8. js 正则表达式 判断val是不是整数
  9. WPF开源控件扩展库 - MaterialDesignExtensions
  10. c++11 R+字符串