Nginx学习笔记

nginx学习笔记

nginx简介相关概念

高性能的http和反向代理服务器 最高能处理5w以上的并发访问

反向代理

正向代理:通过在客户端(浏览器)中配置代理服务器进行网络访问——梯子

反向代理:客户端无需配置代理服务器,对外暴露了代理服务器,由代理服务器去转发请求,隐藏了真实服务器的ip地址

负载均衡

增加服务器的数量,将用户请求分发到不同的服务器上

(用多头牛去拉动货物,而不是选用一头更加强壮的牛去拉)

动静分离

静态资源:html css js

动态资源:jsp servlet

将静态资源与动态资源分开部署在不同的服务器上,加快网站的解析进度,减轻服务器压力

nginx常用命令

使用nginx命令的前提条件,进入nginx目录:

/usr/local/nginx/sbin

查看nginx的版本号:./nginx -v

启动nginx:./nginx

关闭nginx:./nginx -s stop

重新加载nginx: ./nginx -s reload

nginx配置文件

1 配置文件位置:/usr/local/nginx/conf/nginx.conf

2 配置文件组成部分:

三部分:全局块、events块 、http块

全局块:从配置文件开头到event块的内容,影响全局的配置,比如work_processes 1 表示最大并发处理量

events块:主要影响nginx服务器与用户的网络连接 如 work_connections 1024 表示支持的最大连接数

http块:包括http全局块和http server块

nginx配置实例1:反向代理

实现效果:访问www.1801030015.com会自动转跳到Linux服务器的tomcat主页

准备工作:服务器开启tomcat;防火墙对外开放端口8080

firewall -cmd --add-port = 8080/tcp – permanent

Firewall-cmd -reload

server{

​ listen 80;

​ server_name 192.168.17.129(nginx服务器的ip地址)

​ location / {

​ root html;

proxy_pass http://127.0.0.1:8080;(需要转发到的服务器地址)

​ index index.html index.htm;

}

}

nginx配置实例2:反向代理

实现效果:使用nginx反向代理,根据不同的路径转跳到不同的服务端口中

nginx监听端口为9001,访问http://192.168.17.129/edu/转跳到http://127.0.0.1:8081

访问http://192.168.17.129/admin/转跳到http://127.0.0.1:8082

准备工作:两个tomcat服务器 测试页面

具体配置:

server{

​ listen 9001;

​ server_name 192.168.17.129(nginx服务器的ip地址)

​ location ~ /edu/ {

proxy_pass http://127.0.0.1:8081;(需要转发到的服务器地址);

​ }

​ location ~ /admin/ {

proxy_pass http://127.0.0.1:8082;(需要转发到的服务器地址);

​ }

}

注意开启防火墙端口号9001 8081 8082

nginx配置实例-负载均衡

实现效果:浏览器地址栏输入http://192.168.17.129/edu/a.html 负载均衡到8080和8081端口中

在nginx.conf中进行配置

http{

​ upstream myserver{

​ ip_hash #每个请求按照访问的ihash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

​ server 115.28.52.63:8080 weight = 1;

​ server 115.28.52.63:8081 weight = 1;

​ }

​ server{

​ location/{

​ proxy_pass http://myserver;

​ proxy_connect_timeout 10;

​ }

​ }

}

nginx服务器策略

第一种 轮询(默认)

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

第二种 weight

weight代表权重,默认为1,权重越高被分配的用户数越多,可用于后端服务器性能不均的情况

第三种 ip_hash

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

第四种 fair(第三方)

按照后端服务器的响应时间来分配,响应时间越短的优先分配

nginx配置实例-动静分离

纯粹地把静态文件独立成单独的域名,放在独立的服务器上,和tomcat分开部署(目前主流推崇的方案)

在这里插入图片描述

准备工作:在linux系统中准备静态资源,用于进行访问

具体配置:

在nginx配置文件中进行配置静态资源

location /www/ {

​ root /data/;

​ index index.html index.htm;

}

location /image/ {

​ root /data/;

​ autoindex on;

}

nginx配置高可用集群

什么是高可用?

防止nginx服务器宕机 一台master服务器 另一台backup服务器 对外暴露一个虚拟的ip地址作为路由

在这里插入图片描述

准备工作:

需要两台服务器

在两台服务器上安装nginx和keepalived

高可用(主从配置)

1)修改etc/keepalived/keepalived.conf

2)在/usr/local/src添加检测脚本

3)将两台服务器上的nginx和keepalive都启动起来

./nginx

systemctl start keepalived.service

keepalived配置文件详解

全局配置 global defs——router_id #访问到主机名字

检测脚本配置 script

​ 执行脚本执行的间隔 interval

​ 权重 weigth 当脚本检测结果成立 对权重做出改变

虚拟ip配置

​ state MASTER/BACKUP

​ interface ens33//网卡

​ virtual_router_id # 主备机的virtual router id必须相同

​ priority 优先级 主机较大 备机较小

​ advert_int 1 #每个一秒发送一次检测

​ virtual_ipaddress{192.168.17.50#虚拟地址}

nginx原理解析

在这里插入图片描述

一个master和多个worker进程

master进程负责管理和监控 worker争抢客户请求处理

好处:

利于支持nginx -s reload热部署,当服务器重新加载时,已经有任务的worker不会再参与到争抢中

每个worker是一个独立的进程,无需加锁,其中一个worker出现了问题,其他worker会继续工作不会造成服务中断

设置合理的worker数量

和cup数相等最为合适(四核 八核…)

连接数worker_connection

客户端发送请求 占用了worker的几个连接数?答:2个或4个(访问静态资源or反向代理)

nginx中有一个master,4个worker,每个worker中支持的最大连接数是1024,支持最大的并发数是多少?

普通静态访问最大并发数 woeker_connection(worker最大连接数) * worker processes(worker数量) / 2

如果是http作为反向代理的话 最大并发量是 worker connection * worker processes / 4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值