nginx


nginx

下载地址:http://nginx.org/en/download.html

nginx - 静态资源[html,css,javascript,图片,视频等]服务器[具备高性能的计算机]

tomcat服务器 - 可以作为静态资源服务器,作为java后端服务器[java应用程序]

网站的架构 - B/S Brower[浏览器]/Server[服务器]

  1. 客户端发送请求到服务器
  2. 服务器接收并且处理来自于客户端的请求
  3. 服务器端响应数据给客户端

应用场景

  1. 反向代理,正向代理
  2. 负载均衡
  3. 静态资源的服务器

为什么需要nginx

当发送一个请求到服务器的时候,比如www.taobao.com

实际上背后它会发送N条请求[其中静态资源占了大量的请求的]

如果静态资源和java-app如果全部部署在tomcat服务器上的话,那么必然会给tomcat服务器增加很多压力.

为了保证服务器tomcat[适合中小型企业,并发量不是特别大的]能够快速即时处理客户端请求,解决方案

  1. 纵向的优化 - 砸钱 - 购买性能更加高的服务器
  2. 横向的优化 - nginx服务器 + tomcat服务器 - 意味着项目需要分别去部署.前端项目部署在nginx服务器,后端项目部署在tomcat服务器 - 前后端分离.

启动nginx

进入到nginx的安装目录,执行

start nginx
或者
nginx.exe

打开浏览器输入http://localhost

停止nginx

  1. nginx.exe -s stop
  2. nginx.exe -s quit

stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。

部署前端项目

nginx/html目录 - 前端项目部署的目录

前端项目直接复制到该目录下即可.

假设html部署了一个前端项目-oo/views/login.html

http://localhost/oo/views/login.html

前后端分离的体系

  1. 前端项目和后端项目肯定是单独进行部署的

  2. web服务器

  3. nginx服务器 - 静态资源服务器

  4. tomcat服务器[中小型公司,免费,高并发不好200~400] - 静态资源服务器/后端程序代码的服务器[java]

    servlet容器,jsp容器

  5. jboss,jetty,weblogic服务器…

Easy Mock

https://mock.mengxuegu.com/login

伪造数据的 - 语法 - mockjs

success - success@@

{
"code": 200,
"msg": "操作成功",
"data|3": [{
 "id|+1": 1,
 "username": "@cname",
 "email": "@email",
}]
}

跨域问题

Access to XMLHttpRequest at ‘http://localhost:8081/boot/uuu' from origin ‘http://localhost' has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

产生原因

不满足浏览器的同源策略.

  1. 协议
  2. ip地址
  3. 端口号

只要有一个不一致,那么都会产生跨域问题.

ngnix - http://localhost:80

内置tomcat - http://localhost:8081

解决方案

  1. 使用@CrossOrigin - 允许跨域请求 - 不推荐
  2. 需要在ngnix中配置反向代理

正向代理和反向代理

  1. 客户端是非常清楚自己请求的服务器在哪里.但是就是请求不了.

    服务器可以委托一个代理服务器

    翻墙的过程 - 请求 - 代理服务器 - 目标服务器

    正向代理代理的是客户端. 服务器端不知道客户端在哪里.

  2. 反向代理

    比如: www.taobao.com - 背后肯定有N个服务为我们服务.

    对于客户端而言,不知道服务器端到底是在哪里的. - 安全

    反向代理代理的服务器端.

架构

client -> 前端服务器 ->反向代理服务器 ->后端服务器

client-> 前端/代理一台服务器 -> 后端服务器

反向代理的一个配置

配置文件是在nginx -conf/nginx.conf文件

location /bt {
    root   html;
    index  index.html index.htm;
    proxy_pass http://localhost:8081/boot;
    #  proxy_pass http://backserver/;
}
 $(function(){
   $.get('http://localhost/bt/uuu',null,function(res){
     console.log(res.data);
     let arr = res.data;
     let tbody = $("#tb");
     let str = "";
     for(let i = 0;i<arr.length;i++){
       str+="<tr>";
       str+="<td>"+arr[i].id+"</td>";
       str+="<td>"+arr[i].username+"</td>";
       str+="<td>"+arr[i].email+"</td>";
       str+="</tr>";
     }
     tbody.html(str);
   })
 })

localhost/j03s - index.html

Request URL: http://localhost/bt/uuu


文章作者: 码农耕地人
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 码农耕地人 !
  目录