IP | 服务 | 备注 |
---|---|---|
192.168.1.10 | nginx | 用作代理服务器 |
192.168.1.20 | nginx |
systemctl stop firewalld && systemctl disable firewalld && setenforce 0
yum -y install epel-release
yum -y install nginx
192.168.1.20服务器我先启动并到导入图片用于测试
默认目录/usr/share/nginx/html
切换到默认目录导入图片(随意)
test1.png test2.png #我导入的图片
启动nginx
访问:
192.168.1.10服务器进行代理20服务器并添加缓存配置 主要添加proxy_cache模块、以及修改location
获取nginx配置文件路径
[root@localhost ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost ~]# vim /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
##反向代理配置
upstream one {
server 192.168.1.20:80 weight=1 max_fails=2 fail_timeout=10;
}
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=cache_one:10m inactive=1d max_size=40g;
#添加proxy_cache模块 /data/nginx/cache 本地缓存路径 cache_one别名
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
##上面添加完proxy_cache之后还需要再location添加配置 可以进行调用
location / {
proxy_pass http://one/;
proxy_cache cache_one; ##调用别名为cache_one的这个缓存
proxy_cache_valid 200 302 10d;
proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
allow all;
client_max_body_size 1024m;
}
修改完毕后wq保存退出!
创建缓存目录:
mkdir -p /data/nginx/cache
启动nginx
nginx -s reload
proxy_cache代码说明: proxy_cache_path 缓存文件路径 levels 设置缓存文件目录层次;levels=1:2 表示两级目录 keys_zone 设置缓存名字和共享内存大小.【在使用的地方要使用相同的变量名】 inactive 在指定时间内没人访问则被删除 max_size 最大缓存空间,如果缓存空间满,默认覆盖掉缓存时间最长的资源。 这些是默认有的配置,当然可以根据自己业务的需求对缓存有其他新增的配置说明。 当配置好之后,重启nginx,如果不报错,则配置的proxy_cache会生效 location代码说明 proxy_cache_use_stale error timeout updating http_502 http_504; #此处是托底配置,旧的总比出错强,当nginx请求后台服务器报错的时候, #如果返回配置的错误响应码,nginx则直接取缓存文件中的旧数据返回给用户,托底使用必选配置。 proxy_cache_lock off; #缓存并发锁,当nginx缓存没有命中的时候只有一个请求回源tomcat请求数据,其他请求会等待。非必选配置。 #意思就是 当多个请求传递到此配置时即他们的proxy_cache_key 是一样的,那多个请求只有一个才会真正回源【即到真正应用阶段生成响应内容】, #最后将响应内容 添加到 cache ,然后其他请求 就从cache 获取数据,或直到超时。 proxy_cache_lock_timeout 20s; #等待锁超时时间设置 非必选配置。 proxy_ignore_headers Cache-Control Expires; proxy_cache cachefile; # 配置了缓存空间名称,具体可以看节点的 proxy_disk.conf ,不同的请求对应不同的空间名称。 proxy_cache_valid 200 206 304 180d; # 根据响应码设置缓存时间,超过这个时间即使缓存文件中有缓存数据,nginx也会回源请求新数据。 proxy_cache_key cdn_cid; proxy_cache_prefix_dir cpid_cid; proxy_pass
访问:(注意IP,用的代理服务器ip)
验证:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/101901.html原文链接:https://javaforall.cn