Nginx的介绍和实战
什么是nginx?
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,是俄罗斯人伊戈尔·赛索耶夫开发的(毛子牛逼)。
优点
- 占用内存少,并发能力强
- 安装简单,配置简洁,Bug少
- 官方数据测试表明能够支持高达 50,000 个并发连接数的响应
Nginx的作用?
反向代理
说到反向代理,就不得不说说正向代理和方向代理的区别了
正向代理(代理的是客户端):比如我们访问谷歌,肯定是访问不了的,我们需要连vpn,假如代理服务器在香港,就相当于代理服务器帮助我们向谷歌发送请求,这里就用到了正向代理。
反向代理(代理的是服务端):比如我们访问百度,我们只是访问了这个百度的域名,并不知道请求发送到了百度的那一台服务器,百度的服务器肯定不止一台,这里就用到了反向代理。
负载均衡
负载均衡:将请求均匀的发送到代理的服务器,减轻单个服务器的请求压力,也可以
加权轮询
。
动静分离
动静分离,在我们的软件开发中,有些请求是需要后台处理的,有些请求是不需要经过后台处理的(如:css、html、jpg、js等等文件),这些不需要经过后台处理的文件称为静态文件。让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作。提高资源响应的速度。
Nginx部署实战
Nginx的安装
下载地址:http://nginx.org/en/download.html
准备工作
安装gcc
查看gcc版本
gcc -v
如果未安装,提示未找到,则安装gcc
yum -y install gcc
安装pcre,pcre-devel
pcre(Perl Compatible Regular Expressions)是一个perl库,包括perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库,pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。执行以下命令进行安装:
yum install -y pcre pcre-devel
安装zlib
zlib库提供了很多种压缩和解压缩方式,nginx使用zlib对http包的内容进行gzip,所以需要在centos 7上安装zlib库。执行以下命令进行安装操作:
yum install -y zlib zlib-devel
安装openssl
yum install -y openssl openssl-devel
进入正题开始安装
将Nginx压缩包放到/root
解压
tar -zxvf 压缩包名
进入到nginx文件夹
cd nginx-x.x.x
执行配置文件
./configure
安装
make
make install
查询安装路径
whereis nginx
启动nginx
进入到nginx的目录,查看一下配置文件
发现Nginx配置默认监听我们的80端口退出编辑模式,启动nginx
./nginx
查看nginx的进程
ps aux | grep nginx
启动成功,访问服务器ip:80
一些Nginx相关的命令./nginx 启动 ./nginx -s stop 停止 ./nginx -s quit 安全退出 ./nginx -s reload 重新加载配置文件 ps aux|grep nginx 查看nginx进程
注意: 如何连接不上,检查阿里云安全组是否开放端口,或者服务器防火墙是否开放端口!
相关命令:
#开启
service firewalld start
#重启
service firewalld restart
#关闭
service firewalld stop
#查看防火墙规则
firewall-cmd --list-all
#查询端口是否开放
firewall-cmd --query-port=8080/tcp
#开放80端口
firewall-cmd --permanent --add-port=80/tcp
#移除端口
firewall-cmd --permanent --remove-port=8080/tcp
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
#参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;
Nginx部署项目
1.项目打包(我一般都是SpringBoot,所以是jar包)
2.传到服务器,运行jar包在后台启动
3.配置nginx代理到tomcat服务器(SpringBoot项目自带tomcat服务器)
4.前端项目打包,放到配置文件对应的目录就行了
下面截图一个我练手demo