【Linux】Nignx及负载均衡&动静分离

 

一、Nginx简介

 1.1 什么是nginx?

Nginx(发音同"engine x")是一个高性能的反向代理和 Web 服务器软件,最初是由俄罗斯人 Igor Sysoev 开发的。Nginx 的第一个版本发布于 2004 年,其源代码基于双条款 BSD 许可证发布,因其系统资源消耗低、运行稳定且具有高性能的并发处理能力等特性,Nginx 在互联网企业中得到广泛应用。

Nginx 是互联网上最受欢迎的开源 Web 服务器之一,它不仅提供了用于开发和交付的一整套应用技术,还是应用交付领域的开源领导者。Netcraft 公司 2019 年 7 月的统计数据表明,Nginx 为全球最繁忙网站中的 25.42% 提供了服务或代理,进一步扩大了其在主机域名领域的占有量,新增 5220 万个站点,总数达 4.4 亿个,市场占有率已经超过 Apache 4.89%。

得益于近几年云计算和微服务的快速发展,Nginx 因在其中发挥了自身优势而得到广泛应用,且有望在未来占有更多的市场份额。

2019 年 3 月,著名硬件负载均衡厂商 F5 宣布收购 Nginx,Nginx 成为 F5 的一部分。F5 表示,将加强对开源和 Nginx 应用平台的投资,致力于 Nginx 开源技术、开发人员和社区的发展,更大的投资将为开放源码计划注入新的活力,会主办更多的开放源码活动,并产生更多的开放源码内容。

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

总结:Nginx(engine x)是一个高性能的HTTP(解决C10k的问题)和反向代理服务器,能够实现动静分离技术(动态请求和静态请求),也是一个IMAP/POP3/SMTP服务器,

1.2、相关名词解释

HTTP:HTTP的服务器端实现程序有httpd、nginx等,而且nginx支持高并发!👉HTTP

反向代理:反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

     

​​

SMTP:SMTP是一种提供可靠且有效的电子邮件传输的协议。(非重点)
Nginx官网https://nginx.org/

1.3、Nginx优势

nginx优势:高并发、I/O多路复用、epoll模型:异步且非阻塞

  • I/O多路复用(重点)

    • 理论:I是input输入,O是output输出,nginx的I/O多路复用,提高了服务器的吞吐能力,同一个线程里面,通过开关的方式,来同时传输多个I/O流,比如你去帮同事解决问题,A同事问你错误原因,B同时问你怎么安装的问题,你同时去帮他们解决;
    • 技术分类:select、poll、epoll(epoll模块实现I/O多路复用)
    • 特点:异步、非阻塞
      • 特点比喻:
      • 同步:比如AB石头剪刀布同时出为同步
      • 异步:石头剪刀布不同时出异步
      • 阻塞:去上厕所,不上完厕所不去干别的事
      • 非阻塞:厕所人多可以先去忙别的

    ​编辑​​

  • 时分多路复用:时分多路复用Time-Division Multiplexing,TDM)是一种数字或者模拟(较罕见)的多路复用技术,比如CPU的分时计算,你想去听歌或者看电影,CPU需要不断的切换去处理你的个人需求,把时间分成块,只不过处理的比较快,个人感觉不到。

  • 频分多路复用:频分多路复用,是在适于某种传输媒质的传输频带内,若干个频谱互不重叠的信号一并传输的方式,比如现在既可以打电话也可以上网,就是用到了此技术。

 二. nginx的安装

1. 安装4个依赖

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

​​ 
2. 下载并解压安装包

wget http://nginx.org/download/nginx-1.13.7.tar.gz

有安装包可以自行导入

进入存放nginx压缩包的文件夹进行解压 

tar -xvf nginx-1.13.7.tar.gz

3.安装nginx

# 进入安装包目录
cd nginx-1.13.7
# 编译,执行配置: 考虑到后续安装ssl证书 添加两个模块
./configure --with-http_stub_status_module --with-http_ssl_module

# 安装
make && make install 

 

4. 启动 nginx 服务
安装好的 nginx 服务在 /usr/local/nginx 下:

进入 /usr/local/nginx/sbin 目录下启动:

# 启动
./nginx

# 重启
./nginx -s reload

# 关闭
./nginx -s stop

# 或者,指定配置文件启动
./nginx -c /usr/local/nginx/conf/nginx.conf

 

  查看nginx是否使用 

下载插件

yum install -y lsof

lsof -i:80

 由于没有80端口号所有使用命令开发80端口号

 外部访问测试

三. tomcat负载均衡

准备Tomcat

#准备2个tomcat
cp -r apache-tomcat-8.5.20/ apache-tomcat-8.5.20_8081/

 第2个修改的配置如下
1. HTTP端口,默认8082(我这里更改过端口号所以),如下改为8081


2.远程停服务端口,默认8005,如下改为8006


3.AJP端口,默认8009,如下改,8010

启动Tomcat服务器访问

测试访问
http://192.168.195.139:8082/


http://192.168.195.139:8081/


 

配置nginx负载均衡

 重启nginx配置文件

进入/sbin/重启

# 重启
./nginx -s reload

 问题1:这个错误,意思是nginx配置的URL地址前缀不正确,后来重新看了下,发现的确是前缀没有写好

 问题2:错误的原因:未指定nginx.conf的位置,启动时无法加载配置文件

进入logs目录,发现缺失了nginx.pid文件,配置文件加载了的情况下,是有这个文件的

解决办法:使用nginx -c的参数,指定配置文件的位置

#启动文件nginx在sbin目录中,配置文件在conf目录中
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

四、前端部署

1. 准备

前端项目打包之前需要增加以下的设置

在前端项目中 config文件下的index.js中要增加以下代码 : 

 assetsPublicPath: './',//修改后

如图: 

在前端项目中 build文件下的 utils.js 中增加以下代码 : 


 // 解决icon路径加载错误
        publicPath:'../../'

如图: 

在前端项目的跟目录中,cmd打开命令窗口

输入命令 : npm run build   ( 进行前端项目打包 )

如图 : 

 命令执行后,会出现如图中以下文件  dist

在 /usr/local/ 目录下创建一个文件夹,为mypor ,并且进入文件夹,之后将blog文件拖入mypor文件夹中

解压前端

yum install -y unzip

使用命令解压指定解压包 

unzip blog.zip

2. 部署

输入命令 :  cd /usr/local/nginx/conf/    找到nginx.conf进行编辑

 

输入命令 : cd /usr/local/nginx/sbin/   

 输入命令 :./nginx -s reload   重启nginx

在将后端的war包 传入tomcat服务器中。

并且输入命令 :   ./startup.sh    (开启访问)

在到文件资源管理器中进入到 以下本地目录

C:\Windows\System32\drivers\etc

找到 hosts 文件进行修改IP的请求

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值