HRM人力资源系统-Day07

Nginx

项目开发完成后,前端项目需要服务器部署.
npm run build 原来是拷贝到tomcat,但是有问题,tomcat是Servlet容器,处理静态页面效率低下。
需要专门的http服务器-nginx就是其中一个

C(浏览器)/s(tomcat,nginx等)
Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师伊戈尔•西索夫(Igor Sysoev)所开发,官方测试 nginx 能够支支撑 5 万并发连接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。

解决访问端口问题

同一台服务器部署多个项目时,访问时需要带端口. - 反向代理(动态网站,多台服务器),虚拟主机(静态网站,一台服务器)

后端项目负载均衡器-zuul集群

在这里插入图片描述
现在适用Eureka作为负载均衡器,传统项目集群是就要使用Nginx做负载均衡器.并且我们网关也是使用Nginx作为负载均衡器.
在这里插入图片描述
Nginx 应用场景:
1、http 服务器。Nginx 是一个 http 服务可以独立提供 http 服务。可以做网页静态服务器。
2、虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
3、反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

Nginx在windows下安装

安装

绿色软件解压即可安装
在这里插入图片描述

使用

nginx可以通过命令行来启动,操作命令:
启动: start nginx.exe localhost 默认端口是80
停止: nginx.exe -s stop
重新加载: nginx.exe -s reload 修改了配置文件的时候需要重新加载.

80端口被占用:
https://www.runoob.com/w3cnote/windows-finds-port-usage.html

Nginx静态网站部署与调试

前端项目:
vuecli项目
Css+div

静态网站的部署-部署阶段

  1. npm管理js vuecli
    Npm run build 打包并部署
  2. 直接引入js 传统静态
    直接拷贝就ok

静态网站动态调试-开发阶段

开发阶段: vuecli可以npm run dev启动调试,传统导入js开发的模式,没法直接服务器方式调试,需要安装 live-server服务器,这个服务器很简单就是node一个模块.
创建项目-课程管理
不同静态项目
拷贝项目
拷贝前端写好项目原型
运行项目-搭建一个前端服务器

npm install -g live-server
live-server --port=6002
修改contextpath
在这里插入图片描述

Nginx配置虚拟主机 不同域名或端口转发不同的目录

虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器。虚拟主机技术极大的促进了网络技术的应用和普及。同时虚拟主机的租用服务也成了网络时代的一种新型经济形式。

Nginx

端口绑定

(1)上传静态网站:
前端网站hrm_web_course nginx/hrm_web_course下
前端网站hrm_web_system打包后 上传至 nginx/hrm_web_system 下
(2)修改Nginx 的配置文件:conf/nginx.conf

server {
    listen       82;
    server_name  localhost;
    location / {
        root   hrm_web_course;
        index  index.html;
    }      
}
server {
    listen       83;
    server_name  localhost;
    location / {
        root   hrm_web_system;
        index  index.html;
    }        
}

(3)访问测试: 重新加载Nginx
地址栏输入http://localhost:82 查看对应效果
地址栏输入http://localhost:83 查看对应效果

域名绑定

域名(Domain Name),是由一串用“点”分隔的字符组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名是一个IP地址上有“面具” 。域名的目的是便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等)。域名作为力所能及难忘的互联网参与者的名称。域名按域名系统(DNS)的规则流程组成。在DNS中注册的任何名称都是域名。域名用于各种网络环境和应用程序特定的命名和寻址目的。通常,域名表示互联网协议(IP)资源,例如用于访问因特网的个人计算机,托管网站的服务器计算机,或网站本身或通过因特网传送的任何其他服务。世界上第一个注册的域名是在1985年1月注册的。

要想访问网络资源就要使用http://ip:port/uri,但是记忆ip比较难,通过域名就更好,其实这个域名会通过DNS解释为ip.
http://ip:port/uri ---->http://ip/uri—>http://www.baidu.com/uri
域名解析分两步:
hosts:本地域名
远程域名:在网络上找DNS(域名解析服务器)来解析域名
域名级别:
(1)顶级域名
顶级域名又分为两类:
一是国家顶级域名(national top-level domainnames,简称nTLDs),200多个国家都按照ISO3166国家代码分配了顶级域名,例如中国是cn,美国是us,日本是jp等;
二是国际顶级域名(international top-level domain names,简称iTDs),例如表示工商企业的 .Com .Top,表示网络提供商的.net,表示非盈利组织的.org,表示教育的.edu,以及没有限制的中性域名如.xyz等。大多数域名争议都发生在com的顶级域名下,因为多数公司上网的目的都是为了赢利。但因为自2014年以来新顶级域名的发展,域名争议案件数量增长幅度越来越大[5] 。为加强域名管理,解决域名资源的紧张,Internet协会、Internet分址机构及世界知识产权组织(WIPO)等国际组织经过广泛协商, 在原来三个国际通用顶级域名:(com)的基础上,新增加了7个国际通用顶级域名:firm(公司企业)、store(销售公司或企业)、Web(突出WWW活动的单位)、arts(突出文化、娱乐活动的单位)、rec (突出消遣、娱乐活动的单位)、info(提供信息服务的单位)、nom(个人),并在世界范围内选择新的注册机构来受理域名注册申请。
例如:baidu.com
(2)二级域名
二级域名是指顶级域名之下的域名,在国际顶级域名下,它是指域名注册人的网上名称,例如 ibm,yahoo,microsoft等;在国家顶级域名下,它是表示注册企业类别的符号,例如.top,com,edu,gov,net等。
中国在国际互联网络信息中心(Inter NIC) 正式注册并运行的顶级域名是CN,这也是中国的一级域名。在顶级域名之下,中国的二级域名又分为类别域名和行政区域名两类。类别域名共7个, 包括用于科研机构的ac;用于工商金融企业的com、top;用于教育机构的edu;用于政府部门的 gov;用于互联网络信息中心和运行中心的net;用于非盈利组织的org。而行政区域名有34个,分别对应于中国各省、自治区和直辖市。
例如:map.baidu.com www.itsource.cn
(3)三级域名
三级域名用字母( A~Z,a~z,大小写等)、数字(0~9)和连接符(-)组成, 各级域名之间用实点(.)连接,三级域名的长度不能超过20个字符。如无特殊原因,建议采用申请人的英文名(或者缩写)或者汉语拼音名 (或者缩写) 作为三级域名,以保持域名的清晰性和简洁性。
例如:
map.baidu.com www.baidu.com tieba.baidu.com wenku.baidu.com

平时买域名,一般都是二级,然后通过功能划分三级域名。

域名与IP绑定:
一个域名对应一个 ip 地址,一个 ip 地址可以被多个域名绑定。
本地测试可以修改 hosts 文件(C:\Windows\System32\drivers\etc)
可以配置域名和 ip 的映射关系,如果 hosts 文件中配置了域名和 ip 的对应关系,不需要走dns 服务器。
我们可以通过一个叫SwitchHosts的软件来修改域名指向
新增方案:
在这里插入图片描述
在这里插入图片描述
指定绑定规则 IP 域名 然后确定。

做好域名指向后,修改nginx配置文件
Hosts
127.0.0.1 system.hrm.com
127.0.0.1 course.hrm.com

server {
    listen       80;
    server_name  system.hrm.com;
    location / {
        root   hrm_web_system;
        index  index.html;
    }
}
server {
    listen       80;
    server_name  course.hrm.com;
    location / {
        root   hrm_web_course;
        index  home.html;
    }
}

执行以下命令,刷新配置
[root@localhost sbin]# ./nginx -s reload
测试:
地址栏输入http://system.hrm.com/
地址栏输入http://course.hrm.com/

Nginx作为反向代理

静态项目可以通过虚拟主机实现多个项目的部署,但动态tomcat网站就不行,nginx无法解释运行.

反向代理

代理:通过客户机的配置,实现让一台服务器代理客户机,客户的所有请求都交给代理服务器处理。
在这里插入图片描述
需要配置转发规则,你写的就是目标地址。

反向代理:用一台服务器,代理真实服务器,用户访问时,不再是访问真实服务器,而是代理服务器。
在这里插入图片描述
要配置规则,访问的地址都是反向代理服务器,它要通过规则转发给真正的服务器。
nginx可以当做反向代理服务器来使用:
我们需要提前在nginx中配置好反向代理的规则,不同的请求,交给不同的真实服务器处理
当请求到达nginx,nginx会根据已经定义的规则进行请求的转发,从而实现路由功能
利用反向代理,就可以解决我们前面所说的端口问题,如图
在这里插入图片描述

正向代理和反向代理的区别

虽然正向代理服务器和反向代理服务器所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,但是二者之间还是有一定的差异的。
1、正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。
2、正向代理一般是客户端架设的,比如在自己的机器上安装一个代理软件。而反向代理一般是服务器架设的,比如在自己的机器集群中部署一个反向代理服务器。
3、正向代理中,服务器不知道真正的客户端到底是谁,以为访问自己的就是真实的客户端。而在反向代理中,客户端不知道真正的服务器是谁,以为自己访问的就是真实的服务器。
4、正向代理和反向代理的作用和目的不同。正向代理主要是用来解决访问限制问题。而反向代理则是提供负载均衡、安全防护等作用。二者均能提高访问速度。

反向代理配置

5.3.1. 配置语法
在这里插入图片描述

server {
		listen       80;
		server_name  course.hrm.com;

		#charset koi8-r;

		#access_log  logs/host.access.log  main;

		location / { 
		    proxy_pass http://127.0.0.1:6002; #访问域名为course.hrm.com都交给6002处理
		    index  index.html index.htm home.html;
		}
	}

	server {
		listen       80;
		server_name  system.hrm.com;

		#charset koi8-r;

		#access_log  logs/host.access.log  main;

		location / {
		    proxy_pass http://127.0.0.1:6001; #访问域名为admin.hrm.com都交给6001处理
		    index  index.html index.htm;
		}
	}

原理示意图

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值