# 后端接口代码打包

打包完成后将 target 下的 war 包或者 edts 文件包放在 tomcat webapps 下或者任意目录下

# 编辑 tomcat server.xml 文件

元素 - 属性解释
host(表示一个虚拟主机)
name指定主机名
appBase应用程序基本目录,即存放应用程序的目录
unpackWARs如果为 true,则 tomcat 会自动将 WAR 文件解压,否则不解压,直接从 WAR 文件中运行应用程序
Context(表示一个 web 应用程序,通常为 WAR 文件,关于 WAR 的具体信息见 servlet 规范)
docBase应用程序的路径或者是 WAR 文件存放的路径
path表示此 web 应用程序的 url 的前缀,这样请求的 url 为 http://localhost:8080/path/(虚拟路径)
reloadable这个属性非常重要,如果为 true,则 tomcat 会自动检测应用程序的 / WEB-INF/lib 和 / WEB-INF/classes 目录的变化,自动装载新的应用程序,我们可以在不重启 tomcat 的情况下改变应用程序
<Context path="/edts" reloadable="true" docBase="F:\testProject\edts"></Context>

保存后重启 tomcat

# 前端 vue 代码

# 编辑 nginx.conf 文件

默认 80 端口

location / 为前端部署的 vue 包直接输入 ip 就可访问

root 为前端代码位置

location /edts 为后端接口(nginx 拦截浏览器发起的后缀为 /edts 的接口请求并转发至 tomcat 8080 端口下,与 tomcat 的 server.xml 配置呼应)

server {
    listen       80;                                                         
    server_name  192.168.1.111;
    charset utf-8;
    
    location / {  
        root 'D:/Program Files/nginx-1.18.0/html/dist';
        index index.html index.htm;
    }
    
    location /edts{  
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Headers X-Requested-With;
        add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
        proxy_pass http://192.168.1.111:8080/edts;
    } 
}

保存后重启 tomcat

访问 http://192.168.1.111

# Nginx 相关概念

# Nginx 基本命令

nginx -s reload     # 优雅重启,并重新载入配置文件 nginx.conf
nginx -s quit       # 优雅停止 nginx,有连接时会等连接请求完成再杀死 worker 进程  
nginx -t            # 检查 nginx 的配置文件

# 正向代理就是代理客户端

场景举例:类似于 VPN 代理客户端,Google 并不知道真正访问它的客户端是谁,它只知道这个中间服务器(vpn)在访问它。因此,这里的代理,实际上是中间服务器代理了客户端,这种代理叫做正向代理。

  1. 正向代理服务时由客户端设立
  2. 客户端了解代理服务器和目标服务器都是谁
  3. 帮助客户端突破访问权限,提高访问速度,对目标服务器隐藏客户端的 IP

# 反向代理就是代理服务器

场景举例:10086 客服 10086 这个号码相当于是一个代理,真正提供服务的,是话务员,但是对于客户来说,他不关心到底是哪一个话务员提供的服务,他只需要记得 10086 这个号码就行了。

所有的请求打到 10086 上,再由 10086 将请求转发给某一个话务员去处理。因此,在这里,10086 就相当于是一个代理,只不过它代理的是话务员而不是客户端,这种代理称之为反向代理。

  1. 反向代理服务器是配置在服务端的
  2. 客户端是不知道访问的到底是哪一台主机
  3. 达到负载均衡,并且可以隐藏服务器真正的 ip 地址

# Nginx 负载均衡默认三种策略

  1. 轮询:

    根据客户端发起的请求,平均的分配给每一台服务器

  2. 权重:

    会将 客户端的请求根据服务器的权重值不同分配 不同的数量

  3. ip_hash:

    ip_hash 机制能够让某一客户机在相当长的一段时间内只访问固定的后端的某台真实的 web 服务器,这样会话就会得以保持,在网站页面进行 login 的时候就不会在后面的 web 服务器之间跳来跳去了,也不会出现登录一次的网站又提醒重新登录的情况.

# Nginx 动静分离概念

第一种访问动态资源:

客户端发送请求到 Nginx(或者 Nginx 拦截)再由 Nginx 帮客户端访问服务器然后服务器返回结果给 Nginx,Nginx 再把结果交给客户端,这就是动态资源经历的过程最少需要四次连接数

动态资源代理

# 一个 server 下可以有多个 location
# 配置如下
location /edts{  
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers X-Requested-With;
    add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
	# 转发到 Tomcat
    proxy_pass http://192.168.1.111:8080/edts;
}

第二种访问静态资源:

假如客户端请求的是一个 css / 图片,客户端还是发送连接到 Nginx,而 Nginx 不再请求服务器而是在 Nginx 本地直接找 css / 图片,如果有直接返回,只需要两个连接数

静态资源代理

# 配置如下
location / {  
    root 'D:/Program Files/nginx-1.18.0/html/dist';   #静态资源路径
    index index.html index.htm;
}
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

乡树 微信支付

微信支付

乡树 支付宝

支付宝