Swagger的使用方法
1.引入依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
2.配置Swagger2
@Configuration
@EnableSwagger2
//3.0.0以上版本无需加该注解
public class Swagger2Configuration{
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(new ApiInfoBuilder()
.title("用户管理系统")
.description("用户管理系统接口文档")
.version("3.3")
.contact(new Contact("公司名","http://www.baidu.com","13813838438@qq.com"))
.build()
)
.select()
//Controller所在的包
.api(RequestHandlerSelectors.basePackage("com.xxx.controller"))
.build();
}
}
3.访问API文档页面
在浏览器中访问 http://localhost:8080/projectName/swagger-ui/index.html 即可。
4.常用注解
实例写一个Controller类
@RestController
@RequestMapping("/user")
@Api(tags="用户相关操作接口")
public class UserController{
@ApiOperation("根据用户Id进行查询")
@ApiImplicitParam(name="id",value="用户id",requires=true,example="33",defaultValue="444")
@PostMapping("/selectById")
public String selectById(Integer id){
...
return "selectById";
}
}
如果传参是一个实体类对象User,栗子:
@ApiModel
public class User{
//对Integer等数字类型需要赋默认值,否则报错
@ApiModelProperty(value="用户ID",example="1")
private Integer userId;
@ApiModelProperty(value="用户名")
private String userName;
@ApiModelProperty(value="用户密码")
private String password;
@ApiModelProperty(value="用户地址")
private String address;
...(setter,getter and toString)
}
提取知识点:
@Api
:用于设置模块接口名
@ApiOperation(...)
:用于设置功能方法名
@ApiImplicitParam
:用于描述方法参数含义其下一些参数描述:
①name:形参名
②value:描述含义
③required:是否为必填项
④example:样例值
⑤defaultValue:默认值
@ApiImplicitParams
:使用数组格式存储多个参数描述
@ApiModel
:用在实体类上,用于实体类在API文档上的说明。
@ApiModelProperty
:用于说明实体类中属性在API文档上的解释说明。
Git
Git和SVN
SVN是集中式版本控制系统。版本库是集中放在中央服务器的而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
Git是目前世界上最先进的分布式版本控制系统。
Git下载与配置
下载地址:git-scm.com/
镜像下载地址:npm.taobao.org/mirrors/git…
安装成功后,在开始与右键出现三个程序Git Bash,Git CMD,Git GUI。
Git Bash:Unix与Linux风格的命令行,使用最多。
Git CMD:Windows风格的命令行。
Git GUI:图形界面的Git,不建议。
Git的 全局配置 在 Git/etc/gitconfig 文件下。即使用git config --system --list
命令时显示的信息。
Git的 用户配置 在 C:/user/gitconfig
文件下。即使用 git config --global --list
命令时显示的信息。
Git的卸载:
步骤:
①清理环境变量
②反安装
Linux命令复习
1).cd:改变目录
2).cd ..:回退到上一个目录,直接cd进入默认目录
3).pwd:显示当前所在目录路径
4).ls(ll):列出当前目录中所有文件,ll更为详细
5).touch:新建一个文件。例如
touch index.js
。6).rm:删除一个文件。例如
rm index.js
。7).mkdir:新建一个目录(文件夹)。
8).rm -r:删除一个文件夹。例如
rm -r src
。9).mv:移动文件。例如
mv index.html src
,将index.html移动到src文件夹下。10).reset:重新初始化终端/清屏。
11).clear:清屏。
12).history:查看命令历史。
13).help:帮助。
14).exit:退出。
15).#:表示注释。
Git的相关命令
1)git config -l:查看当前配置
2)git config --system --list:查看系统配置
3)git config --global --list:查看用户配置
4)git config --global user.name "xxx":配置用户名为xxx,该信息将存入
C:/user/gitconfig
文件中。5)git config --global user.email "...":配置用户邮箱信息为xxx,存入同上。
git两种搭建仓库的方式:初始化和克隆。
6)git init:初始化一个git项目。
7)git clone [url]:将远程仓库url克隆到本地。
git操作文件的命令。
8)git status:查看当前目录所有文件的状态。
9)git add .:将当前目录下所有文件添加至暂存区,使其从 untracked状态 变为 commited 状态。
10)git commit -m "xxx" :提交暂存区的内容xxx到本地仓库中。
忽略文件
在springboot项目中自带的 .gitignore
文件:
1.以空行或#开始的行会被忽略(注释)。
2.可以使用Linux通配符。例如:*代表任意多给字符,?代表一个字符,[xxx]代表可选字符范围,{string1,string2}代表可选字符串等。
3.如果名称前有一个 “!“,表示例外规则,不被忽略。
4.如果名称前有一个”/“,表示要忽略的文件再次目录下,而子目录中的文件不被忽略。
5.如果名称的最后有一个”/“,表示要忽略的是此目录下该名称的子目录,而非文件。
例子:
*.txt:忽略所有 .txt结尾的文件
!lib.txt:lib.txt文件除外,不被忽略
/temp:仅忽略项目根目录下的TODO文件,不包括其他目录temp
build/:忽略build/目录下的所有文件
doc/*.txt:忽略doc/notes.txt但不包括doc/server/arch.txt。
码云Gitee的使用
1.注册登录,完善个人信息。
2.设置本机绑定SSH公钥,实现免密码登录。
#进入
C:\Users\用户名\.ssh
#生成公钥
ssh-keygen
3.将公钥信息public key添加至码云账户中。
4.新建仓库。
关于通行许可证,可使用 GPL-3.0 。
IDEA中集成git
操作步骤:
1.新建项目,绑定git。
将远程的git文件目录拷贝到项目中。
2.使用命令或者指示对远程目录进行add,commit,push操作即可。
3.提交测试。
分支Branch
一些常用的分支命令:
1.
git branch
:查看当前目录所有分支2.
git branch -r
:查看远程分支3.
git branch xxx
:新建一个名为“xxx”的分支。4.
git branch -b xxx
:新建一个名为“xxx”的分支,并且切换到该分支。5.
git merge xxx
:合并名为“xxx”的分支到当前分支。6.
git branch -d xxx
:删除名为“xxx”分支。
Linux
@[toc]
1.操作系统简介
概念:
操作系统(英语:Operating System,简称 OS)是管理和控制计算机硬件与软件资源 的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系 统的支持下才能运行。
分类:
①Windows操作系统:微软公司Windows操作系统,例如常用在个人计算机的Windows XP,Windows Vista,Windows 7,Windows 8,Windows 10等。用在服务器端的Windows Server2003,Windows Server 2008等。
②类Unix(Linux)操作系统(英文名:Linux is not Unix)。不安装图形页面,无法通过输入设备执行命令(鼠标,键盘)。
③Mac操作系统。
2.Linux简介
应用领域:
服务器领域:互联网应用,java应用,php应用多数都使用linux服务器。
嵌入式设备:例如Android 一些政府机构:巴西,俄罗斯,西班牙,葡萄牙,德国,法国等。
3.虚拟机简介与安装。
简介:
**虚拟机(Virtual Machine)**指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟系统通过生成操作系统的全新虚拟镜像,它具有真实操作系统完全一样的功能,在虚拟机中所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对其他的系统产生任何影响 ,而且能够和现有操作系统切换。一个物理计算上可以同时运行多个不同的操作系统。
CentOS简介:
CentOS,全称 Community Enterprise Operating System,中文名为社区企业操作系统。是个基于Red Hat Linux 提供的可自由使用源代码的企业级 Linux 发行版本。
CentOS下载:www.centos.org
※安装注意事项:
1)如果出现CentOS使用失败的操作,需在 计算机开机时 使用快捷键F12/F2/delete,进入 Configuration 界面设置 Intel Virtual Technology (英特尔虚拟化技术)为 Enabled。
2)CentOS安装的磁盘需预留20+GB。
3)开启此虚拟机后,键盘操作进入Linux。
4)设置操作系统基本信息时,需设置 时间 , 语言 , 安装软件选择中选择GNOME Desktop,否则迷你版无图形界面。
5)开启网络连接ens33,等待分配IP后下一步。
6)设置超级管理员的密码为123456。
7)在虚拟机中登录需新建用户名与密码,root权限较高,不安全。(centos-Q密)
4.初识Linux系统
1)Computer目录下文件夹简介:
①bin/sbin
目录下用来放置命令。
②etc
目录下用来放置配置文件。
③mnt
用来管理移动设备,比如U盘等等。
④usr/local
用来放置自己安装的软件。
2)※Linux系统的关闭:
※ 务必现在虚拟机内部关闭操作系统,再点击关闭虚拟机按钮!!!
3)远程工具简介:
目的:用来连接到机房的 linux 服务器上。
常见的远程工具:
XShell/Xftp: www.netsarang.com
SecureCRT: www.vandyke.com
putty: www.chiark.greenend.org.uk/~sgtatham/p…
WinSCP: winscp.net/eng/downloa…
XShell,SecureCRT,putty是远程工具。
Xftp,WinSCP是文件管理工具。
在远程工具中建立会话时,会话名称标准格式为 服务器功能_IP
。例如:crm_IP地址。
本次学习使用XShell 和 Xftp。
购买云服务器方案
云服务器就是一个远程电脑,服务器一般不会关机。虚拟机安装后会占用资源,我们可通过自行购买云服务器,这样更加接近线上工作。
1.阿里云购买服务器: www.aliyun.com/minisite/go…
2.购买完毕后,获取服务器的ip地址,重置服务器密码,就可以远程登陆了。
关于安全组的说明:(阿里云这个很重要,自己需要开启什么端口来配置)
5.链接的了解
Linux的链接分为两种:硬链接和软链接。
硬链接:假设B是A的硬链接,则他们两指向了同一个文件!允许一个文件有多个路径,用户可通过这种机制建立硬链接到一些重要文件上,防止误删。
软链接:类似Windows下的快捷方式,删除了资源文件,快捷方式也访问不了。
6.Linux命令
1)磁盘管理命令
1.pwd
:显示当前目录位置。
2.ll
:显示当前目录下的所有文件和其他目录的相关信息。
3.ls
:显示当前目录下的所有文件及其他文件名。(简化版的ll)。
典型事例:查看某指定目录/root/下的所有文件及其他目录。
命令: ls /root/(ll同理)
4.cd
:切换盘符。
典型事例①: 切换盘符至 /user/local/。
命令:cd /user/local/
补充:/user/local/为绝对路径,意为computer下的user目录下的local目录。computer即为 “/”。
典型事例②:切换盘符至根目录。
命令:cd /
典型事例③:使用相对路径的方式从 /user/local 进入到 /user/local/src 目录。
命令:cd src/(相对路径不能以 / 开头)
补充:ll或ls展示目录时,快捷方式(软链接)会呈现 软链接名 -> 文件实体位置
的形式。
典例:bin -> user/bin
2)文件管理命令
创建文件或目录
1.mkdir 文件名
:在当前目录下创建一个新的文件夹。
2.touch xxx
:创建一个文件xxx。
3.ln xxx yyy
:以硬链接的方式创建一个和xxx文件一样的名为yyy的文件。
4.ln -s xxx yyy
:以软链接的方式创建一个和xxx文件一样的名为yyy的文件。
补充:创建文件的另一种方式:
echo
"linux":用来将“linux”输入至控制台。
echo "linux" > a.txt
:用来将 “linux” 输出到当前目录下的新文件 "a.txt" 中,如果没有会自动创建。
删除文件或目录
2.rm xxx
:删除当前目录下名为 xxx 的文件。(xxx也可以为文件的绝对路径)。
3.rm -rf xxx/
:删除当前目录下名为 “xxx” 的目录。(-rf是rm的参数,表示递归强制删除)
拷贝文件或目录
4.cp a.txt b.txt
:将当前路径下名为 “a.txt” 的文件复制一份成为名为 “b.txt” 的文件。(也可使用绝对路径)
典型案例:将a.txt复制到 /home/test/目录下并以 “aa.txt”重新命名。
命令:cp a.txt /home/test/aa.txt
5.cp -rf test/ baktest
:将当前路径下名为 “test” 的目录拷贝一份存入 名为 “baktest” 目录中。
※总结:涉及有关文件夹操作时,需要加上 -rf
参数表示递归且强制。
查看文件内容
6.cat xxx.txt
:显示当前目录下名为 “xxx.txt” 的文件所有内容。(也可以使用绝对路径)
补充:由于没有分页功能,查看大文件较为麻烦,大文件不适合使用该指令。
7.more xxx.txt
:以分页的形式显示当前路径下名为 “xxx.txt” 文件的所有内容。(按空格键或者回车键显示下一页的内容)。
补充:
①空格键一次显示一页内容。
②回车键一次显示一行内容。
③crtrl+C退出分页浏览模式。
8.head -n 15 xxx.txt
:显示当前目录下名为 “xxx.txt” 文件的内容的前15行,若不设置参数 “-n” ,则默认显示文件内容前十行。
补充:也可省略参数,比如
head -15 xxx.txt
,与上同义。
9.tail -n 15 xxx.txt
:用法与 head相同,不同点为其显示内容尾部15行。
文件内容搜索
10.grep [参数] xx xxx.txt
:在当前目录的xxx.txt文件中以行为单位搜索带有字符串“xx” 的行内容。
典例①:文件中有字符串 “net java”,中间存在空格,搜索该词汇。
命令:grep "net java" xxx.txt
典例②:以不区分大小写的方式搜索出文件中的“java”字符串。
命令:grep -i java xxx.txt
典例③:以单词的形式搜索文件中的字符串“java”,比如搜索javascript中的java就搜索不到了。
命令:grep -i -w java xxx.txt
典例④:搜索以“java”为开头的行信息。
命令:grep "^java" xxx.txt
典例⑤:搜索以“java”为结尾的的行信息。
命令:grep "java$" xxx.txt
典例⑥:在当前目录下所有文本文件中搜索含有字符串 “java”的行内容。
命令:grep "java" *.txt (使用通配符)
管道命令
11.Order1 | Order2 | Order3
:将命令1的输出作为命令2的输入,以命令2的输出作为命令3的输入。
案例:在xxx.txt文件中查找前十行中既有“java” 又有“tomcat”的行内容。
命令:head xxx.txt | grep "java" | grep "tomcat"
3)系统命令
查看当前时间
1.date
:显示系统的当前时间。
切换用户
2.su xxx
:以xxx用户登录到linux系统。
案例:切换至root超级管理员用户。
命令:su root
清屏,重启和关机
3.clear
:清屏。
4.reboot
:重启Linux。
5.shutdown -h now
:立刻关机。
查看和终结系统进程
6.ps -ef
:显示当前所有进程。
补充参数信息:
①UID:用户名信息
②PID:程序的进程号,由系统自动分配
③PPID:程序的父ID,由该进程打开的PID
④TIM:程序启动的时间。
典型案例:查找进程中名带有字符串“xx”的进程。
命令:ps -ef | grep su
7.kill -9 PID
:强制终止ID为PID的进程。(如果没有-9则可能终止失败)
4)压缩和解压
压缩(归档)文件
1.tar 参数 xxx
:压缩名为xxx的文件或文件夹。
参数补充:
z:使用压缩,生成的文件名是xxx.tar.gz(相当于win中的rar,zip)。
c:创建压缩文档。
v:显示压缩,解压过程中处理的文件名。
f:指定归档文件名,tar参数后面是归档文件名。
t:列出归档文件内容。
C:解压到指定目录,语法格式:-C 目录名。
典型案例:创建(压缩)归档文件,将aa.txt,bb.txt归档到文件名为xxx.tar.gz的压缩包中。
命令:tar -zcvf xxx.tar.gz aa.txt bb.txt
补充:常规压缩操作中,zcf是必要的,v是可以省略的,v省略后不显示压缩文件名。
典型案例:将名为“baktest”的文件夹以及其下的内容压缩到名为“f1.tar.gz”的压缩包中。
命令:tar -zcvf f1.tar.gz baktest/
2.tar -tf xxx
:查看名为“xxx”的压缩包中的文件。
解压文件
3.tar zxvf xxx.tar.gz
:解压缩名为“xxx.tar.gz”的压缩包。
典型案例:将名为“xxx.tar.gz”的压缩包解压到地址为“/home/test/”的目录中。
命令:tar -zxvf xxx.tar.gz -C /home/test/
5)查看当前网络
查看当前网络信息等
1.ifconfig
:查看当前网络信息(IP等)。
2.ping IP/域名
:测试网络联通。(与Windows系统一样)
6)网络访问
1.curl
:使用url访问网络的文件传输工具。
补充curl的作用:
①检查网络访问。
②模拟用户访问。
2.wget www.xxx.com
:将xxx页面的资源下载到本地。
典型案例:利用linux指令下载tomcat。
命令:wget mirrors.shu.edu.cn/apache/tomc…
7)权限管理
linux权限介绍
当执行ll命令查询某目录下的文件时,第一个字段的信息即为权限信息。
案例分析:-rwxr-xr-x
第一位表示文件:
l:软链接文件
d:目录
c:字符设备文件(键盘,鼠标)
linux权限采取UGO(user_group_other)模式,每三位为一组。
样例中的rwx为一组,r(4)是读,w(2)是写,x(1)是执行。
综上所述,样例中权限信息代表:其文件类型是普通文件,拥有者对其具有读写执行的权限,拥有者所属组具有读和执行的权限,除上之外其他人员也具有读和执行的权限。
修改权限命令
1.chmod 646 xxx.txt
:对当前目录下的xxx.txt文件给所属者分配读写权限,给所属者所在组分配只读权限。给其他人员分配读写权限。
补充:6=4+2|7=4+2+1|3=2+1
修改文件拥有者
2.chown root xxx.txt
:对当前目录下的xxx.txt文件修改拥有者为root用户。
8)重定向
1.echo "linux" > xxx.txt
:将本应在控制台输出的“linux”字符串重定向至当前目录的xxx.txt文件中。(如果没有该文件则自动创建文件)
2.echo "linux" >>xxx.txt
:将本应在控制台输出的“linux”字符串重定向到当前目录的xxx.txt文件中追加到原有内容后。(如果没有该文件自动创建文件)
3.echo "hello linux" | wc
:统计待打印的字符串内容中的行数,单词数和字符数。(1 2 12)
9)vi和vim编辑器
命令模式和编辑模式
vi操作分为 命令模式 和 编辑模式:
命令模式:按 ESC 键,进入命令模式,命令模式下无法编辑。再命令模式中输入 “:” 程序进入底线命令模式,在该模式中,q为退出程序,w为保存文件。
:set nu
:设置行号
:set nonu
:取消行号
编辑模式:按 a 或者 i ,进入编辑模式,此时,底部会出现insert,在命令模式下,输入 :wq。 **q!**为不保存退出。
编辑文件的命令:
h(⬅),j(⬆),k(⬇),l(➡):移动光标
+:光标移动到非空格行的下一个
-:与加号相反
dd(连续按):删除光标所在行
yy:复制光标所在行的缓冲区
p:粘贴缓冲区中的内容
gg:光标回到文件第一行
GG:光标回到文件最后一行
^:光标移动至当前行的行首
$:光标移动到当前行的行尾
/xxx:xxx为关键字,搜索操作,表示搜索带有“xxx”的关键字,如果第一次不是自己想要的,可以按 n 往后查找。
1.vim xxx.txt
:如果文件存在则可进行修改,不存在则为新建编辑文件xxx.txt。
10)用户账号管理
添加新用户
1.useradd -m a
:添加一个用户名为“a”的账户,-m为自动创建这个用户的主目录。
2.cat /etc/passwd
:查看当前所有用户信息。
3.ls /home
:查看当前所有用户的文件信息。
删除用户
3.userdel -r a
:删除用户a,并且将其对应目录也删掉。
修改用户
4.usermod [修改内容] a
:修改用户a。
案例:修改用户a对应目录位置到/home/233下。
命令:usermod -d /home/233 a
※修改完应直接查看配置文件 cat /etc/passwd
。
切换用户
5.su a
:切换用户至a用户。
补充:命令前缀的 **#**代表超级用户,命令前缀的 $ 代表普通用户。
6.hostname
:查看当前服务器名。
7.hostname aaa
:修改当前服务器名为 aaa。
修改密码
如果是超级用户的话,可以修改任意账户的密码:
8.passwd a
:修改用户名为a的用户的密码。
如果是普通用户:
9.passwd
:修改当前用户的密码,且需要确认root账号的密码无误后才可修改密码。
锁定账户(入狱小技巧O(∩_∩)O)
比如张三辞职了,需冻结该账号:
10.passwd -l aaa
:冻结用户名为aaa的用户,使其不再能登录。
11.passwd -d aaa
:需要输入超管密码即可登录。
11)进程管理
12.ps -aux | grep xxx
:过滤出存在xxx的相关进程信息。
tips:
参数 -a:显示当前终端运行的一个进程信息
参数 -u:以用户的信息显示进程
参数 -x:显示后台运行进程的参数。
12.ps -ef
:查看父进程的信息。
13.pstree -pu
:进程数,以树的形式展示进程信息,更直白更清楚。
14.kill -9 xxx
:杀死进程,xxx为结束进程的pid。
7.linux中环境的安装
1)JDK安装
1.下载JDK rpm。官网下载后通过Xftp传入linux服务器。
2.安装java环境。
①检测当前系统是否已存在java环境。
java -version
②如果有的话先卸载。
rpm -qa | grep jdk
rpm -e --nodeps jdk_
③卸载完毕后即可安装jdk。
rpm -ivh [rpm包]
方法二:
①在win上安装对应的jdk8,拖入虚拟机客户端。
②在虚拟机etc/java目录下解压tar.gz文件,解压完成后配置环境。
③配置环境使用vim,添加以下内容即可:
JAVA_HOME=/usr/java/jdk1.8.0_321
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:
export PATH JAVA_HOME
方法三:
①保证linux虚拟机联网的情况下,进行在线安装。
②执行
yum -y install gcc
③执行
yum -y install gcc-c++
3.配置环境
①进入配置环境vim /etc/profile
②在vim下进入编辑模式,在底部加上 :
export PATH=/bin:/usr/bin/:.
Nginx笔记
1.Nginx简介
概念:nginx是一个高性能的Web服务器和反向代理服务器,也可作为邮件代理服务器。
特点:占用内存少,并发处理能力强,免费开源的。
同类服务器:Apache,Lighttpd(lighty),Tengine等。
使用集团:淘宝,新浪,搜狐,网易,美团等。
反向代理图解:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fGehzCcx-1652704046201)(D:\SSMFramework\分布式\Nginx\picture\Nginx图解.png)]
下载地址:nginx.org
一般情况下,99%的nginx服务器需在linux操作系统下运行。
2.正反向代理
正向代理图解:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-klh7YN3k-1652704046203)(D:\SSMFramework\分布式\Nginx\note\正向代理.png)]
反向代理图解:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vAl92TIk-1652704046205)(D:\SSMFramework\分布式\Nginx\note\反向代理.png)]
总结:正向代理代理客户端,反向代理代理服务器端。
反向代理中整个过程中用户可能并不知道有反向代理服务器的存在,其服务器被封装起来了。
3.负载均衡
轮询:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IZE5wFJ9-1652704046206)(D:\SSMFramework\分布式\Nginx\note\轮询.png)]
加权轮询:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6tH59pKY-1652704046207)(D:\SSMFramework\分布式\Nginx\note\加权轮询.png)]
处理固定请求:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VPIzO7Qm-1652704046207)(D:\SSMFramework\分布式\Nginx\note\处理固定请求.png)]
动静分离:
动静分离,在我们的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。
※nginx的三大特点:反向代理,负载均衡,动静分离。
4.linux下nginx的安装
下载步骤:
进入官网下载nginx压缩包tar.gz。
解压后找到配置文件和启动命令文件。
进入目录,使用 ./configure
命令执行文件,再使用make命令。完成后进入sbin目录下,执行./nginx
就算执行成功了。
再浏览器中浏览 http://localhost:80 检测是否开启成功。
常用命令:
cd /usr/local/nginx/sbin/
ps aux | grep nginx # 查看nginx进程
ps -ef|grep nginx # 查看ngnix的进程
./nginx -v #查看nginx的版本
./nginx -t #检查nginx的配置文件是否正确
./nginx # 启动
# 记得设置防火墙
./nginx -s stop # 停止
./nginx -s quit # 安全退出
./nginx -s reload # 重新加载配置文件
#为了使更方便访问nginx,可将其配置到环境变量中,在 /etc/profile下的PATH中追加 “/usr/local/nginx/sbin/”
5.Nginx实例应用
1.部署静态资源
相对于Tomcat,Nginx处理静态资源的能力更加高效,所以生产环境下,都会将静态资源部署到Nginx中。部署方法只需要将文件复制到Nginx安装目录下的html目录即可。并修改配置文件参数即可。
2.反向代理实例
实际应用:
准备工作:准备两台服务器,一台作为nginx反向代理服务器,另一台为java程序的服务器。
配置反向代理:
在nginx服务器中的配置文件中:
# 配置反向代理
server{
listen 80;
server_name localhost;
location / {
#反向代理服务,将请求转发至8080
proxy_pass http://192.168.xxx.xxx:8080;
}
}
3.负载均衡实例
配置负载均衡:
upstream targetserver{
#upstream指令可以定义一组服务器
server 192.168.xxx.xxx:8080;
server 192.168.xxx.xxx:8081;
#可设置权重,权重默认为1
server 192.168.xxx.xxx:8082 weight=5;
}
server{
listen 8080;
server_name localhost;
location / {
# 轮询机制调取具体服务器
proxy_pass http://targetserver;
}
}