CGB2107-Day16-nginx-Linux
文章目录
1. Nginx
1.1 Nginx服务器介绍
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
1.2 Nginx特点
- 占有内存少 不超过2M tomcat服务器200M java语言
- 并发能力强 3-5万次/秒 220-250个/秒 C语言
1.3 Nginx下载
1.4 Nginx安装说明
1.4.1 nginx路径说明
路径问题:
nginx是c语言开发的所以对中文不友好. 额外需要注意空格
端口问题:
1.Nginx运行的端口是80. 80端口不能被其它的服务占用.
2.如果80端口被其它的服务占用,则通过dos命令 kill 杀死进程.
占用端口:
http协议默认端口号80端口.
https协议默认端口号443端口
1.4.2 nginx进程项说明
nginx 每次启动都会有2个进程. 一个主进程, 一个是守护进程
主进程: 主要提供反向代理服务. 占用内存空间大
守护进程: 防止主进程意外关闭的.
如果需要关闭nginx 则先关闭守护 再关闭主进程.
1.4.3 nginx 命令(必须掌握)
说明: nginx的命令的执行 需要在nginx的根目录中运行
- 启动nginx start nginx
- 重启nginx nginx -s reload
- 关闭nginx nginx -s stop
注意事项: nginx的运行只能启动一次,如果启动多次则会产生多余项,影响程序的正常运行
1.5 Nginx 反向代理说明
1.5.1 反向代理入门案例
#1. 每个反向代理服务 都是一个server{}
#2. listen nginx监听用户请求端口 默认80
#3. server_name 拦截服务的名称/域名名称
#4. location {} 开始执行反向代理
#5. / 拦截的路径 拦截所有的请求
#6. root 代表反向代理的是一个目录
#7. index 代表访问的默认的页面
http{
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
#一个http协议 多个server
}
1.5.2 图片回显
磁盘地址: E:\images\2021\10\15\a.jpg
网络地址: http://image.jt.com\2021\10\15\a.jpg
代理核心: http://image.jt.com 映射到 E:\images
实现域名代理:
# 配置图片代理 记得保存
server {
listen 80;
server_name image.jt.com;
location / {
root E:/images;
}
}
注意事项:
1. start nginx 命令 如果配置文件有错, 不会提示.
2. nginx -s reload 重启命令 会有错误提示
1.5.3 图片回显原理
说明: 根据hosts文件可以实现域名与IP的映射关系.
1.5.4 修改hosts文件
位置: C:\Windows\System32\drivers\etc
修改权限:
1. 如果勾选只读,则去掉即可
2.选择用户勾选权限
3. 修改hosts文件
#配置图片服务器
127.0.0.1 image.jt.com
#配置后端服务器
127.0.0.1 manage.jt.com
#配置前端服务器
127.0.0.1 www.jt.com
4 页面效果展现
1.6 关于图片回显问题说明
1.6.1 关于hosts文件说明
如果用户访问image.jt.com 不能跳转服务器,显示链接异常,则一般是hosts问题. 重复检查hosts
1.6.2 关于404报错说明
如果请求出现404 则说明 磁盘地址与域名地址 不一致, 需要检查代码 确定位置.
注意事项: nginx服务器 修改完成之后,记得重启
2. 京淘项目前端发布
2.1 前端组成部分
原始文件-开发阶段:
1. node.js
2. 脚手架项目
3. Vue组件
4. Vue路由
5. Axios ajax请求.
项目发布阶段:
1.html
2.css样式
3.js
说明: 如果前端项目需要发布项目,则将项目打包部署即可.
2.2 前端部署准备工作
2.2.1 路径说明
- 前端向后端发送请求时路径都是 http://localhost:8091/xxx/xxx,该请求需要转化为网络地址. http://manage.jt.com/xxx/xxx
- 图片上传的地址 http://localhost:8091 换为http://manage.jt.com
2.2.2 修改ajax请求地址
修改main.js
/* 导入axios包 */
import axios from 'axios'
/* 设定后端域名地址路径 */
axios.defaults.baseURL = 'http://manage.jt.com/'
2.2.2 修改AddItem.vue
//说明:修改属性配置,访问后端服务器域名
uploadUrl: "http://manage.jt.com/file/upload",
2.2.2 前端项目发布
2. 发布之后的文件位置
3. 复制到nginx的根目录即可
2.2 前端项目发布
2.2.1 需求说明
说明: 用户通过域名: http://www.jt.com:80 访问前端的项目路径 dist/index.html
2.2.2 编辑nginx.conf文件
# 配置前端服务器 www.jt.com:80 dist/index.html
server {
listen 80;
server_name www.jt.com;
location / {
root dist;
index index.html;
}
}
2.2.3 前端代理测试
2.3 关于项目发布问题总结
2.3.1 http协议自动转化为https问题
开发: 使用谷歌浏览器 最为标准的浏览器
解决方案:
1.浏览器中输入: “chrome://net-internals/#hsts:“
2.删除指定的域名
3. 清空浏览器缓存之后重启 ctrl + shift + delete
2.3.2 前端访问依然是8091服务器.
问题描述: 其中的访问后台的网址依然是localhost:8091. 肯定是ajax请求的前缀没有修改导致的.
解决方案:
1.检查后端配置是否正确 2处 1.main.js 2.AddItem.vue 记得保存
2.重启将项目打包build.
3.将dist目录复制,到nginx的根目录中(之前应该先删除原来的文件)
4.nginx服务器重启即可.
2.4 实现域名的代理
2.4.1 需求
后端请求的网址: http://manage.jt.com 转向到 http://localhost:8091
代理规则: 反向代理.
2.4.2 域名代理配置
#manage.jt.com:80 映射localhost:8091
server {
listen 80;
server_name manage.jt.com;
location / {
#代理请求
proxy_pass http://127.0.0.1:8091;
}
}
修改之后,重启nginx服务器.
2.4.3 效果测试
2.5 NGINX实现负载均衡
2.5.1 负载均衡策略
2.5.2 动态获取端口号
@RestController
@CrossOrigin
public class PortController {
@Value("${server.port}")
private Integer port;
//动态获取端口号
@GetMapping("/getPort")
public String getPort(){
return "当前端口号:" + port;
}
}
2.5.3 关闭热部署
说明: 由于需要同时开启2台tomcat服务器,所以需要关闭热部署操作
将POM.xml文件中的热部署jar包去除即可.
2.5.4 修改端口号
说明: 分别启动2台tomcat服务器. 端口号分别为8091/8092. 通过下图实现进程项执行2次的操作.
测试效果:
1.访问8091服务器
2.访问8092服务器
2.5.5 配置负载均衡
#manage.jt.com:80 映射localhost:8091
server {
listen 80;
server_name manage.jt.com;
location / {
#代理请求
#proxy_pass http://127.0.0.1:8091;
proxy_pass http://tomcats;
}
}
#配置后端集群
upstream tomcats {
server 127.0.0.1:8091;
server 127.0.0.1:8092;
}
修改之后保存,之后重启nginx服务器.
2.5.6 项目访问
2.6 负载均衡策略
2.6.1 轮询策略
说明: 根据配置文件内容,依次访问服务器.
#manage.jt.com:80 映射localhost:8091
server {
listen 80;
server_name manage.jt.com;
location / {
#代理请求
#proxy_pass http://127.0.0.1:8091;
proxy_pass http://tomcats;
}
}
#配置后端集群
upstream tomcats {
server 127.0.0.1:8091;
server 127.0.0.1:8092;
}
2.6.2 权重策略
说明: 根据服务器的性能,手动分配服务器的负载.
#配置后端集群 1.默认轮询 2.权重 weight
upstream tomcats {
server 127.0.0.1:8091 weight=4;
server 127.0.0.1:8092 weight=1;
}
2.6.3 IPHASH
需求: 让用户的请求与服务器绑定, 用户访问某台服务器,以后永远访问该服务器.
#配置后端集群 1.默认轮询 2.权重 weight 3.iphash策略
upstream tomcats {
#ip_hash; weight=4;
server 127.0.0.1:8091;
server 127.0.0.1:8092;
}
3. 虚拟机安装和使用
详情参数B站视频 Vmware安装说明
3.1 虚拟机IP配置
3.2 Linux 基本命令
- IP命令 ifconfig , ip addr
- 检查windows和Linux是否畅通
3.2 远程工具下载
URL: https://mobaxterm.mobatek.net/download.html
更多推荐
所有评论(0)