nginx(7):使用nginx的proxy_cache做网站缓存

news/2024/5/17 10:52:00/文章来源:https://blog.csdn.net/weixin_34075551/article/details/92641646

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

为什么要做web cache,我想大家最主要的是解决流量的压力。随着网站流量的提升,如果只是单台机器既处理静态文件,又处理动态脚本,显然效率很难上升,不能处理日益上涨的流量压力。与此同时某些网站的页面内容并不是经常变化,因此我们可以分两层架构来组织网站。前端web缓存+后端web服务器,可以参看这里配置nginx反向代理配置

前端web缓存有多重方式实现,原理就是队请求结果页面静态化并设置一个超时期限,缓存页面过期后,新请求到达时重新到后端web服务器获取内容更新;没有nginx前比较流行的方法是squid,但squid不能充分利用处理器的多核特性,越来越多的网站选用nginx来做前端的web缓存。

要想使用nginx的缓存功能要保证nginx添加了proxy模块。我们可以使用-V选项(大写的V,小写的v是看版本号的)来查看nginx的编译参数。我使用的是默认的参数编译的,如下所示:

root@SNDA-172-17-12-117:/usr/local/nginx# ./nginx -V
nginx version: nginx/1.2.3
built by gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
TLS SNI support enabled
configure arguments: --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.21 --with-zlib=/usr/local/src/zlib-1.2.7

nginx的所有模块必须在编译的时候添加,不能再运行的时候动态加载,默认的编译选项下包含的模块,如果你不是显示的用参数关闭它。


proxy模块中常用的指令时proxy_pass和proxy_cache.

nginx的web缓存功能的主要是由proxy_cache、fastcgi_cache指令集和相关指令集完成,proxy_cache指令负责反向代理缓存后端服务器的静态内容,fastcgi_cache主要用来处理FastCGI动态进程缓存(这里我不是很清楚这两个指令的区别,好像功能上都差不多,尤其后面这句话的意思,是我翻译过来的)。

确认proxy模块安装好后,下面对nginx的配置文件进行设置,重点部分如标红字体所示。

这是我的nginx.conf配置文件。

user www-data;
worker_processes 1;

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$host"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#Compression Settings
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# Some version of IE 6 don't handle compression well on some mime-types,
# so just disable for them
gzip_disable "MSIE [1-6].(?!.*SV1)";
# Set a vary header so downstream proxies don't send cached gzipped
# content to IE6
gzip_vary on;
#end gzip

#cache begin
proxy_buffering on;
proxy_cache_valid any 10m;
proxy_cache_path /data/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
proxy_temp_path /data/temp;
proxy_buffer_size 4k;
proxy_buffers 100 8k;
#cache end

## Basic reverse proxy server ##
## Apache (vm02) backend for www.example.com ##
upstream apachephp {
server www.quancha.cn:8080; #Apache1
}

## Start www.quancha.cn ##
server {
listen 80;
server_name *.quancha.cn;

access_log logs/quancha.access.log main;
error_log logs/quancha.error.log;
root html;
index index.html index.htm index.php;

## send request back to apache1 ##
location / {
proxy_pass http://apachephp;
proxy_cache my-cache;
proxy_cache_valid 200;

#Proxy Settings
proxy_redirect off;
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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
##End Proxy Settings
}
}
## End www.quancha.cn ##

}

配置文件中以proxy_开头的指令我们大都可以字面意思得到理解。请务必注意一点proxy_cache_path和proxy_temp_path设置的目录需要在同一分区,因为它们之间是硬链接的关系。

最后启动nginx,来迎接着激动人心的时刻吧。我已经迫不及待了。如果文章哪里有问题或者你遇到了什么麻烦,可以留言让我知道。



转载于:https://my.oschina.net/wellsoschina/blog/287729

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_787447.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站安全认证系统的设计变迁-5中网占安全认证方案的chm下载

为什么80%的码农都做不了架构师?>>> 网站系统的安全认证一共经历了6个阶段: 阶段1-单应用服务器,单数据库服务器 阶段2-单web服务器,多应用服务器模式 阶段3-单web服务器,多应用服务器cache 阶段4-按照业务进行切分阶…

php婚纱网站设计论文,thinkPHP的婚纱购物商城网站的设计与实现

婚姻是每个人的人生大事,所以很多时候如何能够保留住自己最漂亮的这一时刻是很多人多在考虑的一个问题,在结婚的时候大家都会穿上漂亮的婚纱来进行拍照和举行仪式,所以如何选取更加漂亮和适合自己的婚纱是每个人都会遇到的问题,为…

关于大型网站技术演进的思考(七)--存储的瓶颈(7)

本文开篇提个问题给大家,关系数据库的瓶颈有哪些?我想有些朋友看到这个问题肯定会说出自己平时开发中碰到了一个跟数据库有关的什么什么问题,然后如何解决的等等,这样的答案没问题,但是却没有代表性,如果出…

2021-01-16 JavaScript实例:jQuery实现京东等购物网站 放大镜

话不多说&#xff0c;直接上图 相信大家在浏览大多数网站&#xff0c;尤其是购物网站一定经常见到这种放大镜效果&#xff0c;接下来代码奉上 HTML代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…

监控网站图片下载

1.网站图片域名[root10-6-8-200 libexec]# more /usr/local/nagios/etc/webpage.txt http://radfile.example.info/201108/12/717_20110804012.mp3 http://tvcpic.example.info/smallpic/200309/12/030912_3774.jpg http://iadpic.example.info/200104/20010406/dang01040613.j…

安装了loadrunner11 ,可是登录进入WebTours网站后,点击flights,页面是空白

为什么80%的码农都做不了架构师&#xff1f;>>> 安装了loadrunner11 &#xff0c;可是登录进入WebTours网站后&#xff0c;点击flights&#xff0c;页面是空白的分析原因&#xff1f; 答&#xff1a;原因是数据库冲突。 分析过程&#xff1a; 1、判断本地电脑中安装…

java电影网站开发经验2

2019独角兽企业重金招聘Python工程师标准>>> 其实我没怎么写过技术博客&#xff0c;上学的时候看见作文就头疼的&#xff0c;所以有些地方写的不通顺望见谅&#xff0c;闲话少说入正题。 其实开发一个小网站不是太难&#xff0c;选个自己比较熟悉的语言&#xff0c;…

SharePoint服务器端对象模型 之 访问网站和列表数据(Part 5)

&#xff08;五&#xff09;列表条目&#xff08;SPListItem&#xff09; SharePoint中数据的存储基本上都是通过列表条目来完成&#xff08;文档库中的文档也是一种特殊的列表条目&#xff09;&#xff0c;因此在SharePoint应用开发中&#xff0c;最终是要和列表条目打交道的。…

视频网站报表

当下视频网站的火热程度大家都是有目共睹的&#xff0c;因此也产生了一些网红视频博主&#xff0c;比如深受营长喜爱的papi酱以及papitube的各位po主。 那么&#xff0c;这些网红是怎样使自己的视频迅速走红的&#xff0c;网站是通过哪些标准向广大吃瓜群众推荐视频的&#xff…

网站每日PV/IP统计/总带宽/URL统计脚本分享(依据网站访问日志)

在平时的运维工作中&#xff0c;我们运维人员需要清楚自己网站每天的总访问量、总带宽、ip统计和url统计等。虽然网站已经在服务商那里做了CDN加速&#xff0c;所以网站流量压力都在前方CDN层了像每日PV&#xff0c;带宽&#xff0c;ip统计等数据也都可以在他们后台里查看到的。…

常见互联网网站系统架构图

转载于:https://blog.51cto.com/azhuang/1630890

ST 几个重要的网站

2019独角兽企业重金招聘Python工程师标准>>> https://market.sencha.com/extensions?types%5B%5Dcomponents http://extjs.org.cn/ 转载于:https://my.oschina.net/u/555061/blog/499390

PHP网站验证码不显示的终结解决方案

PHP网站验证码不显示&#xff0c;这个是个很基础的PHP问题了&#xff0c;不过有点时候会比较让开发者比较头疼了。很多解决方案仅仅考虑到gd2&#xff0c;却忽略了另外一个很重要的因素了&#xff0c;相信在了解本教程之后&#xff0c;验证码不显示基本上就不算什么问题了。下面…

关于大型网站技术演进的思考(十七)--网站静态化处理—满足静态化的前后端分离(9)...

2019独角兽企业重金招聘Python工程师标准>>> 出处:夏天的森林博客 前后端分离的主题虽然讲完了&#xff0c;但是前后端分离的内容并没有结束&#xff0c;本篇将继续前后端分离的问题&#xff0c;只不过这次前后端分离的讲述将会围绕着本系列的主题网站静态化进行。在…

招聘网站需求分析

网站定位&#xff1a;建筑行业专业性盈利性招聘网站。 一、主页设计 用户明确要求以下三点&#xff1a; 1、主色调&#xff1a;蓝色。 2、有不同尺寸的广告位。 3、自动刷新。 其余参照以下网站&#xff1a; 4&#xff0c;个人用户注册页面 5&#xff0c;企业注册页面 二、求职…

VS2013自带的Browser Link功能引发浏览localhost网站时不停的轮询

浏览localhost网站时候不管你打开那个页面它都会不停的轮询。据悉这是VS2013自带的Browser Link功能&#xff0c;里面用到SignalR机制 什么是Browser Link功能&#xff0c;什么是SignalR机制大家可以没事去百度了解一下。 Browser Link功能讲解地址&#xff1a;http://www.cxyc…

前端程序猿需要知道的一些网站,工具和学习途径

为什么80%的码农都做不了架构师&#xff1f;>>> 1.视频网站&#xff1a; 慕课网&#xff1a;http://www.imooc.com/ 51CTO&#xff1a;http://edu.51cto.com/ 2.素材类网站&#xff1a; 门素材&#xff1a;http://www.17sucai.com/ 懒人之家&#xff1a;http://www…

Hive实战之视频网站指标分析

文章目录一、需求二、数据结构2.1、视频表2.2、用户表2.3、[测试数据](https://download.csdn.net/download/wuxintdrh/12679888)三、准备工作3.1、创建表3.1.1、chbvideo_ori3.1.2、chbvideo_user_ori3.1.3、导入数据3.1.4、导入到orc表中四、业务分析4.1、统计视频观看数Top1…

如何估算网站日承受最大访问PV

每个老板或客户都会问架构师这个问题. 你设计的网站能承受多大的日访问量. 程序员都会拍胸脯说出一个心理最大数字.说的时候很有信心.其实这个数字大多是猜的.作为一个理性的程序员怎么能用猜呢? 这里就介绍如何计算网站能承受的最高日访问数. 一. 我们得先做测试确认基本数据…

XAMPP配置Apache禁止通过IP直接访问网站

2019独角兽企业重金招聘Python工程师标准>>> 在xampp的安装目录下&#xff0c;打开/apache/conf/extra/httpd-vhosts.conf&#xff0c;在最后添加一下代码&#xff1a; 其中&#xff0c;ServerName 120.*.*.*是你的服务器IP地址&#xff0c;之后重启Apache&#xff…