Linux学习笔记----Nginx反向代理缓存服务器构建(二)

环境:一台nginx服务器 两台httpd服务器

需要 安装的软件包:

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第1张图片

(1):准备解压缩的包:

(2):安装nginx及安装缺少的依赖包:

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第2张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第3张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第4张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第5张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第6张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第7张图片

重启服务查看:(nginx安装完成)

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第8张图片

(3):编写 nginx 服务脚本:

#!/bin/bash

# chkconfig: 2345 99 20

# description: Nginx Service Control Script

PROG="/usr/local/nginx1.10/sbin/nginx"

PIDF="/usr/local/nginx1.10/logs/nginx.pid"

case "$1" in

 start)

 netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null

 if [ $? -eq 0 ]

 then

 echo "Nginx service already running."

 else

 $PROG -t &> /dev/null

 if [ $? -eq 0 ] ; then

 $PROG

 echo "Nginx service start success."

 else

 $PROG -t

 fi

 fi

 ;;

 stop)

 netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null

 if [ $? -eq 0 ]

 then

 kill -s QUIT $(cat $PIDF)

 echo "Nginx service stop success."

 else

 echo "Nginx service already stop"

 fi

 ;;

 restart)

 $0 stop

 $0 start

 ;;

 status)

 netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null

 if [ $? -eq 0 ]

 then

 echo "Nginx service is running."

 else

 echo "Nginx is stop."

 fi

 ;;

 reload)

 netstat -anplt |grep ":80" &> /dev/null && pgrep "nginx" &> /dev/null

 if [ $? -eq 0 ]

 then

 $PROG -t &> /dev/null

 if [ $? -eq 0 ] ; then

 kill -s HUP $(cat $PIDF)

 echo "reload Nginx config success."

 else

 $PROG -t

 fi

 else

 echo "Nginx service is not run."

 fi

 ;;

 *)

 echo "Usage: $0 {start|stop|restart|reload}"

 exit 1

esac

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第9张图片

(4):配置负载均衡与健康检查:

严格来说,nginx 自带是没有针对负载均衡后端节点的健康检查的,但是可以通过默认自带 的 ngx_http_proxy_module 模块和 ngx_http_upstream_module 模块中的相关指令来完成 当后端节点出现故障时,自动切换到下一个节点来提供访问。

1):修改主配置文件:

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第10张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第11张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第12张图片

检查完记得:

网页验证:(负载均衡)

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第13张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第14张图片

3:Nginx的proxy缓存使用

缓存也就是将 js、css、image 等静态文件从后端服务器缓存到 nginx 指定的缓存目录下,既 可以减轻后端服务器负担,也可以加快访问速度,但这样缓存及时清理成为了一个问题,所 以需要 ngx_cache_purge 这个模块来在过期时间未到之前,手动清理缓存。 proxy 模块中常用的指令时 proxy_pass 和 proxy_cache. nginx 的 web 缓存功能的主要是由 proxy_cache、fastcgi_cache 指令集和相关指令集完成, proxy_cache 指令负责反向代理缓存后端服务器的静态内容,fastcgi_cache 主要用来处理 FastCGI 动态进程缓存

#$upstream_cache_status 记录缓存命中率。

 

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第15张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第16张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第17张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第18张图片

 

 

相关选项说明:

 proxy_buffering on; 代理的时候,开启或关闭缓冲后端服务器的响应。 当开启缓冲时,nginx 尽可能快地从被代理的服务器接收响应,再将它存入缓冲区中。 proxy_temp_path : 缓存临时目录。后端的响应并不直接返回客户端,而是先写到一个临 时文件中,然后被 rename 一下当做缓存放在 proxy_cache_path 。0.8.9 版本以后允许 temp 和 cache 两个目录在不同文件系统上(分区),然而为了减少性能损失还是建议把它们设成 一个文件系统上。

proxy_cache_path: 设置缓存目录,目录里的文件名是 cache_key 的 MD5 值。 levels=1:2 keys_zone=my-cache:50m 表示采用 2 级目录结构,第一层目录只有一个字符,是 由 levels=1:2 设置,总共二层目录,子目录名字由二个字符组成。Web 缓存区名称为 my-cache, 内存缓存空间大小为 100MB,这个缓冲 zone 可以被多次使用。文件系统上看到的缓存文件 名类似于 /usr/local/nginx1.10/proxy_cache/c/29/b7f54b2df7773722d382f4809d65029c 。 inactive=600 max_size=2g 表示 600 分钟没有被访问的内容自动清除,硬盘最大缓存空间为 2GB,超过这个大学将清除最近最少使用的数据。 proxy_cache : 引用前面定义的缓存区 my-cache proxy_cache_key :定义如何生成缓存的键,设置 web 缓存的 key 值,nginx 根据 key 值 md5 哈希存储缓存

proxy_cache_valid : 为不同的响应状态码设置不同的缓存时间,比如 200、302 等正常结果 可以缓存的时间长点,而 404、500 等缓存时间设置短一些,这个时间到了文件就会过期, 而不论是否刚被访问过。

 add_header 指令来设置 response header, 语法: add_header name value; $upstream_cache_status 这个变量来显示缓存的状态,我们可以在配置中添加一个 http 头 来显示这一状态,

$upstream_cache_status 包含以下几种状态: ·MISS 未命中,请求被传送到后端 ·HIT 缓存命中 ·EXPIRED 缓存已经过期请求被传送到后端 ·

UPDATING 正在更新缓存,将使用旧的应答 ·

STALE 后端将得到过期的应答

expires : 在响应头里设置

 Expires:或 Cache-Control:max-age,返回给客户端的浏览器缓存失 效时间。

重启服务,网页验证

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第19张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第20张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第21张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第22张图片

修改版本号:

网页成功访问后,如我们输入一个不存在的 地址会显示如下图;(那么我们的nginx版本号就显示出来这会给我们带来安全隐患);优化如下:

 

 

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第23张图片

修改步骤:

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第24张图片

 

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第25张图片

重新执行configure make  不要使用make install

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第26张图片

Linux学习笔记----Nginx反向代理缓存服务器构建(二)_第27张图片

 

你可能感兴趣的:(Linux--各项服务优化)