搬砖工逆袭Java架构师 10 Nginx详解(建议收藏)

Posted 哪 吒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了搬砖工逆袭Java架构师 10 Nginx详解(建议收藏)相关的知识,希望对你有一定的参考价值。

🍅 Java学习路线:搬砖工逆袭Java架构师

🍅 粉丝专属福利:包邮送书3本,原价128元的《亿级流量Java高并发与网络编程实战》

🍅 获取方式:

🍅 微信朋友圈点赞的方式,第8名、第28名、58名分别获得一本

🍅【注意】想加入微信群聊,可以扫描主页左侧二维码、私信与我、加本人微信guo_rui_

目录

一、百度百科

二、Nginx作为web服务器

三、Nginx处理请求逻辑图

四、Nginx的优点

五、Nginx应用场景

1、反向代理

2、负载均衡

3、动静分离

六、Nginx的常用命令

1、启动

2、从容停止

3、快速停止

4、强制停止

5、重启

6、重启Nginx服务

七、Nginx配置文件

1、找到配置文件位置:

2、配置文件中内容

八、Nginx 配置实例-反向代理实例

1、实现效果

2、准备工作

3、访问过程的分析

4、具体配置 第一步 在 windows 系统的 host 文件进行域名和 ip 对应关系的配置 

 5、最终测试

九、Nginx 的原理

1、mater 和 worker

 2、worker 如何进行工作的

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

4、设置多少个 woker 合适

5、连接数 worker_connection

送书啦!!!

【图书简介】

【内容简介】

【作者简介】


一、百度百科

nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。

其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。

Nginx是一款轻量级的web服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强,事实上Nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用Nginx网站用户有:阿里、百度、京东、新浪、网易、腾讯等。

二、Nginx作为web服务器

Nginx可以作为静态页面的web服务器,同时还提供CGI协议的动态语言,比如perl、php等。但是不支持java。Java只能通过与tomcat配合完成。Nginx专为性能优化而开发,性能是起最重要的考量,实现上非常注重效率,能经受高负载的考研,有报告表明能支持高达50000个并发连接数。

三、Nginx处理请求逻辑图

四、Nginx的优点

  1. 可以高并发连接;
  2. 内存消耗少;
  3. 成本低廉;
  4. 配置文件非常简单;
  5. 支持Rewrite重写(能够根据域名、URL的不同,将http请求分到不同的后端服务器群组。);
  6. 内置的健康检查功能;
  7. 节省带宽(支持GZIP压缩,可以添加浏览器本地缓存的Header头。);
  8. 稳定性高(用于反向代理,宕机的概率微乎其微。);
  9. 支持热部署;

五、Nginx应用场景

正向代理介绍

如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。

1、反向代理

客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。

2、负载均衡

 单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,这就是负载均衡。

3、动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。

六、Nginx的常用命令

1、启动

启动代码格式:nginx安装目录地址 -c nginx配置文件地址

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

2、从容停止

(1)查看进程号

ps -ef|grep nginx

(2)杀死进程

kill -QUIT 2072

3、快速停止

(1)查看进程号

ps -ef|grep nginx

(2)杀死进程

 kill -TERM 2132

4、强制停止

pkill -9 nginx

5、重启

(1)验证nginx配置文件是否正确

方法一:进入nginx安装目录sbin下,输入命令./nginx -t

看到如下显示nginx.conf syntax is ok

nginx.conf test is successful

方法二:在启动命令-c前加-t

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

6、重启Nginx服务

方法一:进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可

方法二:查找当前nginx进程号,然后输入命令:kill -HUP 进程号 实现重启nginx服务

七、Nginx配置文件

1、找到配置文件位置:

cd /usr/local/nginx/conf/nginx.conf

2、配置文件中内容

  1. 全局块:配置服务器整体运行的配置指令 比如 worker_processes 1;处理并发数的配置;
  2. events 块:影响 Nginx 服务器与用户的网络连接 比如 worker_connections 1024; 支持的最大连接数为 1024;
  3. http 块 还包含两部分: http 全局块 server 块;

八、Nginx 配置实例-反向代理实例

1、实现效果

打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到 liunx 系统 tomcat 主页面中

2、准备工作

  1. 在 liunx 系统安装 tomcat,使用默认端口 8080 * tomcat 安装文件放到 liunx 系统中,解压 * 进入 tomcat 的 bin 目录中,./startup.sh 启动 tomcat 服务器
  2. 对外开放访问的端口 firewall-cmd --add-port=8080/tcp --permanent firewall-cmd –reload 查看已经开放的端口号 firewall-cmd --list-all
  3. 在 windows 系统中通过浏览器访问 tomcat 服务器

3、访问过程的分析

4、具体配置 第一步 在 windows 系统的 host 文件进行域名和 ip 对应关系的配置 

(1)添加内容在 host 文件中

192.168.17.129 www.123.com

第二步 在 nginx 进行请求转发的配置(反向代理配置)

server{
	listen:80;
	server_name 192.168.100.1;
	location / {
		root html;
		proxy pass http://127.0.0.1:8080;
		index index.html index.htm;
	}
}

 5、最终测试

九、Nginx 的原理

1、mater 和 worker

2、worker 如何进行工作的

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

  1. 可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作;
  2. 每个 woker 是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的, 继续进行争抢,实现请求过程,不会造成服务中断

4、设置多少个 woker 合适

worker 数和服务器的 cpu 数相等是最为适宜的。

5、连接数 worker_connection

第一个:发送请求,占用了 woker 的几个连接数? 答案:2 或者 4 个;

第二个:nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的 最大并发数是多少?

普通的静态访问最大并发数是: worker_connections * worker_processes /2;

而如果是 HTTP 作 为反向代理来说,

最大并发数量应该是 worker_connections * worker_processes/4;

往期精彩回顾

【搬砖工逆袭Java架构师 1】MySql基础知识总结(2021版)

【搬砖工逆袭Java架构师 2】MySql基础知识总结(SQL优化篇)

​​​​​​【搬砖工逆袭Java架构师 3】Linux基础知识总结(2021版)

【搬砖工逆袭Java架构师 4】Redis基础知识总结(2021版)

【搬砖工逆袭Java架构师 5】阿里Sentinel知识体系总结(2021版)

【搬砖工逆袭Java架构师 6】Spring Security知识体系总结

【搬砖工逆袭Java架构师 7】ShardingSphere分库分表

【搬砖工逆袭Java架构师 8】Elasticsearch详解(建议收藏)

🍅 Java学习路线:搬砖工逆袭Java架构师

🍅 粉丝专属福利:包邮送书3本,原价128元的《亿级流量Java高并发与网络编程实战》

🍅 获取方式:

🍅 微信朋友圈点赞的方式,第8名、第28名、58名分别获得一本

🍅 【注意】想加入微信群聊,可以扫描主页左侧二维码、私信与我、加本人微信guo_rui_

送书啦!!!

《亿级流量Java高并发与网络编程实战》简介

【图书简介】

1、本书从并发的底层核心技术、互联网应用框架、数据处理等三部分对高并发系列技术做了系统讲解。

2、本书以实战化训练为宗旨,用详尽且经典的案例阐述了 Java大数据及高级编程中的重点、难点。书中案例由真实项目演化而来,既体现了所述知识点的精华,又屏蔽了无关技术的干扰。

3、案例都是以“理论讲解 环境搭建 完整代码及分析 运行截图”这种完善的结构进行讲解,考虑到了读者可能会遇到的各种问题。

【内容简介】

《亿级流量Java高并发与网络编程实战》系统全面的介绍了开发人员必学的知识,如JVM、网络编程、NIO等知识,让开发人员系统地掌握JAVA高并发与网络编程知识。《亿级流量Java高并发与网络编程实战》分为10章,内容如下。第1章,主要讲高并发相关JVM原理解析;第2章,主要讲 Java 网络编程;第3章,主要讲 Java NIO;第4章,主要讲并发框架Disruptor;第5章,主要讲微服务构建框架Spring Boot;第6章,主要讲微服务治理框架Spring Cloud/Dubbo;第7章,主要讲 Java高并发网络编程框架Netty - 实战应用;第8章,主要讲 Java高并发网络编程框架Netty - 深度解读;第9章,主要讲海量数据的高并发处理;第10章,主要讲基于高并发与网络编程的大型互联网项目实战。本书主要面向面向零基础及入门级读者,Java从业人员。

【作者简介】

颜群,毕业于西安理工大学,精通JAVA、大数据等软件技术,工业和信息化部人才交流中心教学督导、西安实验室教学总监、教研委员会委员、资深高级讲师,担任渭南师范学院、西京学院、西安交通大学城市学院等多所院校兼职讲师,教授Java、大数据等课程;爱奇艺教育、W3cSchool官方合作讲师;腾讯课堂、网易云课堂等在线教育机构知名讲师。

本次抽取3名幸运粉丝,没中的小伙伴可以等下期,或者自动购买:

《亿级流量Java高并发与网络编程实战》(颜群)【摘要 书评 试读】- 京东图书

《亿级流量Java高并发与网络编程实战》(颜群)【简介_书评_在线阅读】 - 当当图书
 

以上是关于搬砖工逆袭Java架构师 10 Nginx详解(建议收藏)的主要内容,如果未能解决你的问题,请参考以下文章

Java学习路线总结❤️搬砖工逆袭Java架构师❤️(全网最强,建议收藏)

Java零基础入门 16:java反射详解

Java零基础入门 20:java代理详解

statement和prepareStatement 的区别

Java零基础入门 10:final和static

Java零基础入门 8:Java数组