当前位置: 首页 > Linux

Nginx(2)-创建带缓存功能的反向代理服务器

时间:2023-04-06 05:32:00 Linux

承接上一篇,本文以上述静态资源服务器作为上游服务器,搭建另外一台Nginx服务器作为反向代理服务器。配置反向代理服务器。上游服务器处理的业务逻辑比较复杂,强调开发效率,所以性能并不出色。使用nginx作为反向代理后,可以根据负载均衡算法将请求分发到多个上游(后端)服务器,从而实现了架构的水平扩展,使得用户无需添加更多的服务器即可提升性能用户的认知。即使后端服务器出现问题,nginx反向代理服务器也会转移到正常工作的服务器上。一般情况下,上游服务器是不提供对外访问的。修改方法是将server配置块中的listen配置项修改为内网地址。修改配置文件后,重启nginx进程,防止之前打开的端口仍然可用。.Nginx的反向代理功能是通过ngx_http_proxy_module实现的。下面是配置示例:location/{proxy_passhttp://localhost:8080;proxy_set_header主机$host;#当后端有虚拟主机时,应该返回正确的网页,并且不是用户请求的主机,不返回相同内容proxy_set_headerX-Real-IP$remote_addr;}当用户请求所有对“/”的URL请求,它们被转发到配置文件中proxy_pass指定的后端服务器,而后向终端生成请求报文时的新头,比如定义Host,定义用户请求的主机在标头,并定义X-Real-IP客户端的IP地址。...upstreamwebdlib{#定义上游服务器组,自定义名称为webdlibserver172.16.240.140:8080;#上游服务器组的服务器列表,多个服务器可以选择负载均衡算法}server{listen80server_name_;……location/{proxy_passhttp://172.16.240.140:8080;#设置上游服务器地址proxy_set_headerHost$host;#添加请求头的主机名,上游服务器会处理主机请求proxy_set_headerX-Real-IP$remote_addr;#添加客户端真实IP地址proxy_set_headerX-Forward-For$proxy_add_x_forwarded_for;}配置缓存服务器通常只有动态请求,即不同用户访问同一个url不同内容时,请求会交给上游处理。在页面中,部分内容在一段时间内不会发生变化。为了减轻上游服务器的压力,在缓存时间内,上游服务器返回的内容会在反向代理服务器中缓存一段时间,比如几个小时或者一天,即使内容上游服务器发生变化,将被忽略并将缓存的内容发送到浏览器。使用缓存可以提高站点的响应能力。首先在http配置块下,使用proxy_cache_path定义缓存文件的路径、文件命名方式、命名共享内存和共享内存的空间大小,比如proxy_cache_path/tmp/nginxcachelevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;使用缓存的方法是在需要缓存的url路径下添加proxy_cache、proxy_cache_key、proxy_cache_valid。proxy_cachemy_cache:指定缓存共享内存的名称proxy_cahce_key$host$uri$is_args$args:共享内存中设置的key的值,其中host,uri等作为key值proxy_cache_valid2003043021d:指定的响应不返回缓存以下是缓存配置文件的摘录:...http{...proxy_cache_path/tmp/nginxcachelevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60m使用临时路径=关闭;...服务器{...位置/{proxy_passhttp://172.16.240.140:8080;proxy_set_header主机$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forward-For$proxy_add_x_forwarded_for;代理缓存我的缓存;proxy_cache_key$host$uri$is_args$argproxy_cache_valid2003043021d;}}}总结首先配置反向代理服务器,需要用proxy_pass设置上游服务地址,用proxy_set_header设置向后端发送请求的header,比如客户端的IP地址和请求的host。配置缓存服务器首先要设置缓存名称、内存空间名称等信息,然后在需要缓存的URL路径下启用缓存,并进行缓存名称、缓存键等缓存设置。