狂神说Nginx学习笔记

一、什么是Nginx

Nginx(engine x)是一个轻量级高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,其特点是占有内存少并发能力强,事实上Nginx的并发能力在同类型的网页服务器中表现较好,Nginx是一个安装非常简单、配置文件非常简洁,(支持perl语法)、Bug非常少的服务。Nginx启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。
Nginx代码完全用C语言从头写成。官方数据测试表明能够达到高达50,000个并发连接的响应。

二、Nginx的作用

Http代理,反向代理:作为Web服务器最常用的功能之一,尤其是反向代理,反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器可以获得目标服务器的资源,反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址,也无须在用户端做任何设定。
在这里插入图片描述

反向代理
在这里插入图片描述

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。
内置策略为轮询,加权轮询,Ip hash。
扩展策略,就天马行空,只有你想不到的没有你做不到的。

轮询
在这里插入图片描述
加权轮询
在这里插入图片描述
iphash对客户端的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
在这里插入图片描述

动静分离,在软件开发中,有些请求是需要后台处理的,有些请求是不需要经后台处理的(如:css、html、js 等文件),这些不需要后台处理的文件称为静态文件。让动态网站里的动态网页一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。

在这里插入图片描述

在这里插入图片描述

三、Nginx的安装

下载nginx官网链接下载稳定版本。找系统对应的版本。

1. Windows下安装

  1. 启动Nginx
    有很多启动方式
    ①直接双击nginx.exe,双击之后有一个黑色的弹窗一闪而过
    ②使用cmd命令窗口,切换到nginx目录下,输入命令nginx.exe,回车即可
  2. 检查nginx是否安装成功
    在浏览器输入http://localhost/回车,出现以下页面说明安装成功!
    在这里插入图片描述
  3. 配置监听
    nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。
    在这里插入图片描述
    当我们修改了nginx的配置文件nginx.config时,不需要关闭nginx后重新启动nginx,只需要执行命令nginx -s reload即可让改动文件生效
  4. 关闭Nginx
    如果使用cmd窗口启动nginx,关闭cmd窗口是不能结束nginx进程的
    两种关闭nginx的方法:
  • 输入nginx命令 nginx -s stop(快速停止nginx)或nginx -s quit(完整有序的停止nginx)
  • 使用taskkil taskkill /f /t /im nginx.exe

1.taskkil是用来终止进程的。
2. /f是强制终止
3. /t终止指定的进程和任何由此启动的子进程
4. /im示指定的进程名称

2.Linux下安装

  1. 安装gcc
    安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装:
yum install gcc-c++
  1. PCRE pcer-devel安装
    PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括Perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在Linux上安装pcre库,pcre-devel是使用pre开发的一个二次开发库,nginx也需要此库。命令:
yum install -y pcre pcre-devel

3.zlib安装
zlib库提供了很多种压缩和解压缩的方式,nginx使用zib对http包内的内容进行gzip,所以需要在CentOS上安装zlib库。

yum install -y zlib zlib-devel
  1. OpenSSL安装
    OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其他目的的使用。Nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在CentOS上安装OpenSSL库。
yum install -y oppenssl oppenssl-devel
  1. wget安装
yum install wget
  1. 下载nginx
wget http://nginx.org/download/nginx-1.20.2.tar.gz
  1. 解压(在root目录下)
tar -zxvf	nginx-1.20.2.tar.gz
cd nginx-1.20.2

在这里插入图片描述
8. 配置
使用默认配置,在nginx根目录下执行,确保以上命令都执行

首先创建要安装的目录文件

mkdir -p /usr/local/nginx

安装到指定目录下

./configure --prefix=/usr/local/nginx

编译安装

make && make install

查看安装路径

whereis nginx

3.Nginx目录结构

安装完Nginx后,Nginx的目录结构如图:
在这里插入图片描述
重点目录/文件:

  • conf/nginx.conf nginx配置文件
  • html 存放静态文件(html、css、js等)
  • logs 日志文件,存放日志文件
  • sbin/nginx 二进制文件,用于启动,停止Nginx服务

4.Nginx常用命令

  1. 进入nginx,sbin目录下
cd /usr/local/nginx/sbin
  1. 查看版本
./nginx -v

3.检查配置文件的正确性

./nginx -t
  1. 启动Nginx服务
./nginx
  1. 停止Nginx服务
./nginx -s stop
  1. 安全退出Nginx服务
./nginx -s quit
  1. 查看nginx进程
ps aux|grep	nginx
  1. 重新加载配置文件
./nginx -s reload	
  1. 配置环境变量
vim /etc/profile

追加:

PAHT=/usr/local/nginx/sbin:$JAVA_HOME/bin:$PATH

保存生效:

source /etc/profile

启动成功访问 服务器ip:80

注意:
如果连接不上,检查云服务器安全组是否开放端口,或者服务器防火墙是否开放端口!

相关命令

11. # 开启
12. service firewalld start
13. # 重启
14. service firewalld restart
15. # 关闭
16. service firewalld stop
17. # 查看防火墙规则
18. firewall-cmd --list-all
19. # 查看端口是否开放
20. firewall-cmd --query-port=8080/tcp
21. # 开放80端口
22. firewall-cmd --permanent --add-port=80/tcp
23. # 移除端口
24. firewall-cmd --permanent --remove-port=8080/tcp
25. # 重启防火墙(修改配置后要重启防火墙)
26. firewall-cmd --reload
27. # 参数解释
28. firewall-cmd:是Linux提供的操作firewall的一个工具
29. --permanent:表示设置为持久
30. --add-port:标识添加的端口 

5.Nginx配置文件结构

整体结构介绍
Nginx配置文件(cong/nginx.conf)整体分为三部分:

  • 全局快 ( 和Nginx运行相关的全局配置)
  • events块 ( 和网络连接相关的配置)
  • http快(代理、缓存、日志记录、虚拟主机配置)
    • http全局快
    • Server块
      • Server全局块
      • location块
        注意:http块中可以配置多个Server块,每个Server块中可以配置多个location块。
        在这里插入图片描述

四、Nginx具体应用

1.部署静态资源

Nginx可以作为静态web服务器来部署静态资源。静态资源 指在服务端真实存在并且能够直接展示的一些文件,比如常见的html文件、css文件、js文件、图片、视频等资源。
相对于Tomcat,Nginx处理静态资源的能力更加高效,所以在生产环境下,一般都会将静态资源部署到Nginx中。将静态资源部署到Nginx非常简单,只需要将文件复制到Nginx安装目录下的html目录中即可。

server {
	listen 80;					# 监听端口
	server_name localhost;		# 服务器名称
	location /{					# 匹配客户端请求url
		root html;				# 指定静态资源根目录
		index index.html;		# 指定默认首页
	}
}

2.反向代理

  • 配置反向代理
server  {
	listen 82;
	server_name localhost;
	location /{
		proxy_pass http://192.168.81.129:8080;		#反向代理配置,将请求转发到指定服务
	}
}

在这里插入图片描述

3.负载均衡

早期的网站流量业务功能都比较简单,单台服务器就可以满足基本要求,但是随着互联网的发展,业务流量越来越大并且业务逻辑越来越复杂,单台服务器的性能及单点故障问题就凸显出来了,因此需要多台服务器组成应用集群,进行性能的水平扩展以及避免单点故障的出现。

  • 应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回效应数据
  • 负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理
    在这里插入图片描述
    配置负载均衡:
upstream targetserver{	# upstream指令可以定义一组服务器
	server 192.168.81.129:8080;
	server 192.168.81.129:8081;
}
server  { 
	listen 80;
	server_name localhost;
	location /{
		proxy_pass http://targetserver;		#反向代理配置,将请求转发到指定服务
	}
}

3.负载均衡策略

名称说明
轮询默认方式
weight权重方式
ip_hash依据ip分配方式
least_conn依据最少连接方式
url_hash依据url分配方式
fair依据响应时间方式
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 狂神在他的教程中提到了Java配套笔记Nginx精讲。Java配套笔记是他为学习Java编程语言的学生准备的一套学习资料。这些笔记涵盖了Java的基础知识,包括语法、数据类型、运算符、流程控制等。此外,它还介绍了Java的面向对象编程概念,如类、对象、继承、多态等。这些笔记不仅提供理论知识,还包含了大量的实例和练习题,旨在帮助学生巩固所学的内容。 Nginx精讲是狂神为想要深入学习Nginx的人准备的教程。Nginx是一个高性能的Web服务器和反向代理服务器,广泛用于构建高并发、高可靠性的网络应用。在这个教程中,狂神详细介绍了Nginx的基本原理和使用方法。他解释了Nginx的配置文件结构和语法,以及如何使用Nginx处理静态资源、代理请求、负载均衡等常见任务。此外,他还分享了一些优化技巧和实战经验,帮助读者更好地理解和应用Nginx狂神的Java配套笔记Nginx精讲都是他多年的学习和实践经验的总结。这些教程旨在帮助初学者更快地入门和掌握Java编程和Nginx的使用。他的讲解通俗易懂,配有大量的实例和练习,可以帮助读者更好地理解和应用所学的知识。无论是Java初学者还是想要深入学习Nginx的人,这些教程都是很有价值的学习资料。 ### 回答2: 狂神的「java配套笔记 nginx精讲」指的是一套关于Java和Nginx学习笔记和教程。 首先,Java是一种跨平台的编程语言,广泛应用于开发各种类型的应用程序。学习Java需要理解其基本语法、面向对象编程、多线程、异常处理等方面的知识,并且熟练运用Java的核心类库和开发工具。Java配套笔记可以提供一些实践案例和相关的学习资料,帮助学习者逐步掌握Java的编程技巧和应用开发。 而Nginx是一款高性能的Web服务器和反向代理服务器软件,常用于构建高性能、可靠且可扩展的Web应用架构。学习Nginx需要了解其基本原理、配置文件的编写、常用模块的使用等方面的知识。Nginx精讲的内容可能包括Nginx的安装与配置、HTTP服务器配置、负载均衡、缓存、反向代理等相关技术。通过学习Nginx的使用,可以提高Web应用的性能和稳定性。 由于字数有限,无法详细阐述上述两方面内容的具体细节。总而言之,「java配套笔记 nginx精讲」提供了Java和Nginx学习学习资料和教程,帮助学习者系统地学习和掌握Java编程和Nginx服务器的使用。学习者可以通过这些学习材料和实践案例,逐步提升自己的技术水平,并应用到实际的项目开发中。 ### 回答3: 狂神Java配套笔记是一份针对Java开发学习者的学习指南,其中包含了Java语言的基础知识、常用的开发工具和框架、常见问题的解答等内容。这份笔记的编写者是狂神,他是一位在Java开发领域有丰富经验的专家,因此这份配套笔记具有很高的可信度和实用性。 在狂神Java配套笔记中,作者通过详细的讲解和实例演示,帮助读者了解Java语言的基本语法和特性,包括变量、数组、流程控制、面向对象编程等。同时,笔记中还介绍了常用的开发工具,如Eclipse和IntelliJ IDEA,以及流行的框架,如Spring和MyBatis,帮助读者快速入门并掌握实际应用。 而关于Nginx的精讲,狂神也在这份配套笔记中有所涉及。Nginx是一种高性能的HTTP和反向代理服务器,常用于负载均衡、反向代理、静态文件服务等场景。笔记中介绍了Nginx的基本原理和使用方法,包括配置文件的编写、常见的配置示例和调优技巧等。读者可以通过学习这部分内容,更好地理解Nginx的工作原理,并能在实际项目中灵活应用。 总结来狂神Java配套笔记是一份综合的学习资料,帮助Java开发者系统学习Java语言和相关工具,同时也包含了Nginx的精讲,帮助读者了解和应用这一常用的服务器软件。这份笔记的内容详实、实用,并且由经验丰富的专家亲自编写,因此对于想要学习Java开发和深入了解Nginx的人来,是一份不可多得的学习资源。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

As_theWind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值