请选择 进入手机版 | 继续访问电脑版

学习nginx基础知识

[复制链接]
查看182 | 回复45 | 2021-9-13 17:39:22 | 显示全部楼层 |阅读模式
目次

一.什么是nginx?

nginx是一个高性能的http和反向代理的web服务器,占内存少,并发力强。有报告表现 nginx可以高达50000个并发毗连 数。

二.nginx夺目 什么?

  • 反向代理
  • 负载均衡
  • 动静分离
  • 高可用集群

2.1 什么是正向代理?

客户端(欣赏 器)设置 代理服务器,通过代理服务器举行 互联网之间的访问。

2.2 什么是反向代理?

客户端将哀求 发送到反向代理服务器,由反向代理服务器去获取数据后,再返回给客户端。

请添加图片形貌

2.3负载均衡

客户端发送多个哀求 到服务器,服务器处理哀求 ,由一些数据必要 和数据库举行 交互,服务器处理完毕后,再将结果 返回给客户端。

请添加图片形貌

假如 单个服务器办理 不,就搭建服务器集群实现

请添加图片形貌

2.4 动静分离

为了进步 网站的分析 速率 ,将动态页面和静态页面由不同的服务器来分析 ,降低原来单个服务器的压力。

请添加图片形貌

三.nginx基本操作

1.利用 之前,先辈 入nginx目次
2.查看nginx的版本号

./nginx -v

3.启动nginx

./nginx

4.关闭nginx

./nginx -s stop

5.重新加载nginx

./nginx -s reload

6.查看nginx的状态

ps -ef | grep nginx

3.1 nginx设置 文件 nginx/conf/nginx.conf

1.全局块

从设置 文件到events块之间的内容。

2.events块

events块指令重要 影响nginx服务器与用户的网络毗连 ,worker connections 1024 支持的最大毗连 数

3.http块

3.2 防火墙设定

  1. // 查看开放的端口号
  2. firewall-cmd --list-all
  3. // 设置开放的端口号
  4. firewall-cmd --add-service=http –permanent // 在防火墙中永久开启 http 服务
  5. firewall-cmd --add-port=80/tcp --permanent // 在防火墙中永久开启 80 端口
  6. // 重启防火墙
  7. firewall-cmd –reload
复制代码

四.反向代理实现案例

4.1.Nginx反向代理的实现案例1

结果 :输入一个地址,跳转到tomcat首页

nginx 设置 反向代理,重要 是通过 proxy_pass 设置 举行 哀求 的转发

1.hosts 文件域名设置

在windows体系 的host文件(C盘Windods/System32/driver/etc/hosts)举行 域名和ip对应关系的设置

请添加图片形貌

2.nginx里举行 哀求 转发的设置 (反向代理设置 ) nginx.conf

重要 修改 server_name、proxy_pass 两个设置 :

  • server_name:主机IP
  • proxy_pass:nginx 代理地址

请添加图片形貌

测试成功

请添加图片形貌

4.2Nginx反向代理的实现案例2

利用 nginx反向代理,根据访问的路径跳转到不用的服务端口中,nginx监听端口是9001

1.预备 工作

部署tomcat 8080

部署tomcat8081

由于 tomcat默认的端标语 是8080,以是 要设定tomcat的端标语 时,必要 修改server.xml中的部分端口,启动tomcat

在两个tomcat文件中找到webapps,在其目次 下建立两个文件edu,vod,内里 放入里谁人 html页面,并测试页面可成功访问。

2.找到nginx设置 文件 nginx.conf

  1. server {
  2. listen 9001;
  3. server_name 192.168.25.101;
  4. location ~ /edu/ {
  5. proxy_pass http://127.0.0.1:8080;
  6. }
  7. location ~ /vod/ {
  8. proxy_pass http://127.0.0.1:8081;
  9. }
  10. }
复制代码

3.开放访问端口 8080 8081 9001,否则访问不到

4.重启nginx,测试

请添加图片形貌

请添加图片形貌

五.负载均衡 实现案例

1.实现结果

欣赏 器地址中输入一个地址http://192.168.17.129/edu/a.html,负载均衡 结果 ,匀称 分配到8080和8081端口中

2.预备 工作

1.部署tomcat 8080,部署tomcat 8081

2.在两台tomcat内里 webapps目次 中,创建名称为edu文件夹,在文件夹内里 创建两个页面a.html,用于测试

3.在nginx的设置 文件里做出相应的设置 ,在http下做设置

  1. upstreat myserver{
  2. //添加服务器名
  3. server 192.168.17.129;8080;
  4. server 192.168.17.129;8081;
  5. }
复制代码

请添加图片形貌

然后再servers和Locationa下做设置

  1. server_name 192.168.17.129:
  2. location /{
  3. proxy_pass http://myserver;
  4. }
复制代码

请添加图片形貌

5.1nginx负载均衡 的策略

  • 轮询(默认)

每个哀求 按时间次序 留意 分配的不同的后端服务器,假如 后端服务器宕机,就能主动 剔除

  • weight

weight代表权重,默以为 1,权重越高分配的客户端越多

利用 :

  1. upstreat myserver{
  2. //添加服务器名
  3. server 192.168.17.129;8080 weight =10;
  4. server 192.168.17.129;8081 weight = 20;
  5. }
复制代码
  • ip_hash

​ 每个哀求 按访问IP的hash结果 分配,如许 后续就可固定 访问一个后端服务器

  • fair

根据相应 时间来举行 分配,相应 时间的长短来分配

  1. upstreat myserver{
  2. //添加服务器名
  3. server 192.168.17.129;8080 ;
  4. server 192.168.17.129;8081;
  5. fair;
  6. }
复制代码

六、nginx动静分离

6.1、实现过程

通过location指定不同的后缀实现不同的哀求 转发。通过expires参数的设置 ,可以设定一个欣赏 器缓存过期时间,减少与服务器之间的哀求 和流量。

6.2、案例

1.预备 静态资源

2.具体 的设置

  • 1.在nginx设置 文件中设置 nginx/conf

请添加图片形貌

  • 2.输入网址举行 访问

七、Nginx设置 高可用

7.1 什么是Nginx的高可用?

请添加图片形貌

由图可知,对于之前操作模式来说,只有一台nginx时,将用户的哀求 通过nginx举行 转发到不同的tomcat之中,当此中 的nginx宕机时,就会造成服务的转发失败,因此通过搭建nginx集群,当主服务器nginx宕机时,备份服务器的ngnix会将用户的哀求 重新转发tomcat中,从而保证了高可用。

7.2、nginx设置 高可用预备

  • 预备 两台服务器 192.168.17.129 和 192.268.17.131
  • 两台服务器都安装nginx
  • 设置 一个假造 地址
  • 在两台服务器安装keepalived 直接通过yum安装
  1. yum install keepalive -y
复制代码

7.3、高可用设置

完成keepalive的设置 ,找到keeplive设置 文件keepalive.conf

(1)修改/etc/keepalived/keepalivec.conf 设置 文件

  1. global_defs {
  2. notification_email {
  3. acassen@firewall.loc
  4. failover@firewall.loc
  5. sysadmin@firewall.loc
  6. }
  7. notification_email_from Alexandre.Cassen@firewall.loc
  8. smtp_server 192.168.17.129
  9. smtp_connect_timeout 30
  10. router_id LVS_DEVEL
  11. }
  12. vrrp_script chk_http_port {
  13. script "/usr/local/src/nginx_check.sh"
  14. interval 2 #(检测脚本执行的间隔)
  15. weight 2
  16. }
  17. vrrp_instance VI_1 {
  18. state BACKUP # 备份服务器上将 MASTER 改为 BACKUP
  19. interface ens33 //网卡
  20. virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
  21. priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
  22. advert_int 1
  23. authentication {
  24. auth_type PASS
  25. auth_pass 1111
  26. }
  27. virtual_ipaddress {
  28. 192.168.17.50 // VRRP H 虚拟地址
  29. }
  30. }
复制代码

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

  1. A=`ps -C nginx – no-header |wc -l`
  2. if [ $A -eq 0 ];then
  3. /usr/local/nginx/sbin/nginx
  4. sleep 2
  5. if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
  6. killall keepalived
  7. fi
  8. fi
复制代码

(3)把两台服务器上 nginx 和 keepalived 启动
启动 nginx: ./nginx
启动 keepalived: systemctl start keepalived.service

7.4、测试

1).在欣赏 器地址输入假造 ip地址:192.168.17.50

既可以直接访问

2)当把主服务器nginx和keepalived克制 ,在次输入假造 地址的时间 ,页面仍旧 可以访问

八、nginx工作原理

master & worker

请添加图片形貌

8.1、一个 master 和多个 woker 有好处

  • 对于每个 worker 历程 来说,独立的历程 ,不必要 加锁,以是 省掉了锁带来的开销,同时在编程以及题目 查找时,也会方便很多,可以利用 nginx –s reload 热部署,利用 nginx 举行 热部署操作
  • 每个 woker 是独立的历程 ,假如 有此中 的一个 woker 出现题目 ,其他 woker 独立的,继续举行 争抢,实现哀求 过程,不会造成服务停止 。

8.2 、设置多少个 woker 合适

  • worker 数和服务器的 cpu 数相称 是最为适宜 的。(比如说: 你的电脑是4核,设置4个worker就足矣,假如 是八核,设置8个worker足矣)

8.3、毗连 数 worker_connection

第一个:发送哀求 ,占用了 woker 的几个毗连 数?
答案: 2 或者 4 个
第二个: nginx 有一个 master,有四个 woker,每个 woker 支持最大的毗连 数 1024,支持的最大并发数是多少?

  • 平凡 的静态访问最大并发数是: worker_connections * worker_processes /2,
  • 而假如 是 HTTP 作 为反向代理来说,最大并发数目 应该是 worker_connections *worker_processes/4。

到此这篇关于学习nginx基础知识的文章就先容 到这了,更多干系 nginx基础内容请搜索 脚本之家从前 的文章或继续欣赏 下面的干系 文章渴望 大家以后多多支持脚本之家!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 我本迷茫 | 2021-9-20 20:43:06 | 显示全部楼层
有机会找admin楼主好好聊聊!
回复

使用道具 举报

avatar 计划你大爷计j | 2021-9-20 22:57:07 | 显示全部楼层
顶顶更健康!
回复

使用道具 举报

avatar 痴痴情先生先s | 2021-9-21 16:10:26 | 显示全部楼层
楼上的刚出院吧?
回复

使用道具 举报

avatar 我爱萨其马虞co | 2021-9-25 10:47:29 | 显示全部楼层
看了这么多帖子,第一次看到这么有深度了!
回复

使用道具 举报

avatar 张瘦身 | 2021-10-1 23:57:16 | 显示全部楼层
知识就是力量啊!
回复

使用道具 举报

avatar pmhuhc77635 | 2021-10-10 06:40:13 | 显示全部楼层
admin楼主内心很强大!
回复

使用道具 举报

avatar 我是一头牛2017 | 2021-10-10 19:23:38 | 显示全部楼层
admin楼主很有艺术范!
回复

使用道具 举报

avatar 山风点烟捶 | 2021-10-10 19:25:12 | 显示全部楼层
admin楼主是一个典型的文艺青年啊!
回复

使用道具 举报

avatar 启东1 | 2021-10-10 19:25:35 | 显示全部楼层
admin楼主会死的很有节奏的!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则