Nginx实战教程

1,397 阅读4分钟

1.反向代理配置一

实现效果:使用 nginx 反向代理,访问 www .123 .com 直接跳转到 127.0.0.1:8080

1.1 启动一个 tomcat,浏览器地址栏输入 127.0.0.1:8080,出现如下界面

1.2 通过修改本地 host 文件,将 www.123.com 映射到 127.0.0.1

配置完成之后,我们便可以通过 www.123.com:8080 访问到第一步出现的 Tomcat 初始界 面。那么如何只需要输入 www.123.com 便可以跳转到 Tomcat 初始界面呢?便用到 nginx 的反向代理。

1.3 在 nginx.conf 配置文件中增加如下配置

如上配置,我们监听 80 端口,访问域名为 www.123.com,不加端口号时默认为 80 端口,故 访问该域名时会跳转到 127.0.0.1:8080 路径上。在浏览器端输入 www.123.com 结果如下:

2.反向代理配置实战二

实现效果:使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中 nginx 监听端口为 9001, 访问 http://127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8081 访问 http://127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8082

2.1 第一步,准备两个 tomcat,一个 8001 端口,一个 8002 端口,并准备好测试的页面

2.2 第二步,修改 nginx 的配置文件,在 http 块中添加 server{}

2.3 第三部,启动Nginx和两台tomcat,对外开放9001 8080 8081 端口,测试效果

3.负载均衡配置

实现效果:实现负载均衡

3.1 准备两台tomcat服务器,启动

3.2 配置 nginx.conf 中配置http{}块,如图

随着互联网信息的爆炸性增长,负载均衡(load balance)已经不再是一个很陌生的话题, 顾名思义,负载均衡即是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应 足够快,给用户很好的体验。快速增长的访问量和数据流量催生了各式各样的负载均衡产品, 很多专业的负载均衡硬件提供了很好的功能,但却价格不菲,这使得负载均衡软件大受欢迎, nginx 就是其中的一个,在 linux 下有 Nginx、LVS、Haproxy 等等服务可以提供负载均衡服 务,而且 Nginx 提供了几种分配方式(策略)

1.轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

2.weight

weight 代表权,重默认为 1,权重越高被分配的客户端越多,指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。 例如:

3.ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。 例如:

4.fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。例如:

4.动静分离配置

Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和 静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat 处理动态页面。动静分离从目前实现角度来讲大致分为两种, 一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案; 另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。 通过 location 指定不同的后缀名实现不同的请求转发。通过 expires 参数设置,可以使 浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义:是给一个资 源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可, 所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件, 不建议使用 Expires 来缓存),我这里设置 3d,表示在这 3 天之内访问这个 URL,发送 一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码 304,如果有修改,则直接从服务器重新下载,返回状态码 200

4.1 项目资源准备,在linux系统中添加静态资源,用于项目访问

4.2 .进行 nginx 配置

添加监听端口、访问名字

重点是添加 location, 最后检查 Nginx 配置是否正确即可,然后测试动静分离是否成功,之需要删除后端 tomcat 服务器上的某个静态文件,查看是否能访问,如果可以访问说明静态资源 nginx 直接返回 了,不走后端 tomcat 服务器

4.3 浏览器中输入地址 http://192.168.17.129/image/01.jpg

  • 因为配置文件 autoindex on ,直接访问根路径的效果是

4.4 在浏览器地址栏输入地址 http://192.168.17.129/www/a.html