cf

nginx http块配置解析

本秂侑毒 提交于 2020-02-25 18:59:25
在上一篇文章中,我们讲解了nginx http模块的存储结构,这个存储结构是我们理解http模块工作原理的基石。本文则主要讲解nginx是如何通过解析nginx.conf中的http配置块来一步一步构建http模块的这种存储结构的。 1. http配置块的解析 http配置块的解析方法定义在 http 配置块对应的 ngx_command_t 结构体中,如下是该结构体的定义: static ngx_command_t ngx_http_commands[] = { {ngx_string("http"), NGX_MAIN_CONF | NGX_CONF_BLOCK | NGX_CONF_NOARGS, ngx_http_block, 0, 0, NULL}, ngx_null_command }; 通过该定义可以看出, http 配置块的解析工作主要是交由 ngx_http_block() 方法进行。如下是该方法的源码: static char * ngx_http_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { char *rv; ngx_uint_t mi, m, s; ngx_conf_t pcf; ngx_http_module_t *module; ngx_http_conf_ctx_t *ctx; ngx

nginx http模块配置合并

让人想犯罪 __ 提交于 2020-02-25 15:40:03
在配置nginx.conf文件的时候,我们很容易发现,有部分配置项是既可以配置在http块,也可以配置在server块,还可以配置在location块中。但是并不是所有的配置项都可以在任意位置进行配置的,根据配置项所起到的作用,nginx对各个配置块所能使用的位置进行了定义。既然一个配置项可以配置在多个配置块中,那么这里就涉及到一个问题就是,在处理请求的时候是以哪一个配置项为准。本文主要讲解nginx是如何实现配置项的合并的。 在前面的文章中,我们讲解了nginx http模块的基本存储结构,在阅读本文之前强烈建议读者朋友先阅读这篇文章。如下是nginx http模块的存储结构示意图: 这里我们不再赘述nginx是如何解析各个配置项,从而形成这样的一个存储结构的。nginx对配置项的合并主要是通过 ngx_http_merge_servers() 方法进行的,如下是该方法的源码: /** * @param cf 整个nginx运行的ngx_conf_t对象 * @param cmcf 核心模块对应的配置对象 * @param module 外层遍历时,当前遍历的模块 * @param ctx_index 外层遍历时,当前遍历的模块的配置对应的存储位置 */ static char * ngx_http_merge_servers(ngx_conf_t *cf, ngx_http

Linux下的tar压缩解压缩命令详解

这一生的挚爱 提交于 2020-01-09 13:44:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。 下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。 案例: tar -cf all.tar *.jpg 这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。 tar -rf all.tar *.gif 这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。 tar -uf all.tar logo.gif 这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。 tar -tf all.tar 这条命令是列出all.tar包中所有文件,-t是列出文件的意思 tar -xf all.tar 这条命令是解出all.tar包中所有文件,-t是解开的意思 压缩 tar -cvf jpg

Docker容器实战(一)

余生长醉 提交于 2020-01-08 19:18:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 容器!容器! 回溯历史源头 相比于盛极一时的 AWS OpenStack 以Cloud Foundry为代表的PaaS项目,却成了当时云计算技术中的一股清流 Cloud Foundry项目已经基本度过了最艰难的概念普及和用户教育阶段,开启了以开源PaaS为核心构建平台层服务能力的变革 只是,后来一个叫 Docker 的开源项目横空出世 当时还名叫 dotCloud 的 Docker 公司,也是PaaS热潮中的一员 相比于Heroku、Pivotal、Red Hat等PaaS新宠, dotCloud 微不足道,主打产品跟主流的Cloud Foundry社区脱节,门可罗雀! dotCloud 公司突然决定:开源自己的容器项目 Docker !!! 显然,这个决定在当时根本没人在乎。 “容器”这个概念从来就不是什么新鲜的东西,也不是Docker公司发明的。 即使在当时最热门的PaaS项目Cloud Foundry中,容器也只是其最底层、最没人关注的那一部分。 PaaS项目被大家接纳的一个主要原因是它提供“应用托管”能力 那时主流用户的普遍用法,就是租一批AWS或者OpenStack的虚拟机,然后像以前管理物理服务器那样,用脚本或者手工的方式在这些机器上部署应用。 当然,部署过程难免碰到云端虚拟机和本地环境不一致问题

lopatkin俄大神精简中文系统 Windows 10 Pro 10240.16393.150717-1719.th1_st1 x86-x64 CN Tablet PC FINAL

故事扮演 提交于 2020-01-07 11:20:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Microsoft Windows 10 Pro 10240.16393.150717-1719.th1_st1 x86-x64 CN Tablet PC FINAL 生产年份:2015 版本:Windows 10 Pro 10240.16393 平台:x86-x64 系统要求: CPU-1 gz RAM-1-2 gb HD-6-10gb Video-c DirectX 9.0 Display-1024 x 768 语言:中文 原贴地址:http://emtrek.org/viewtopic.php?t=35979 J_CPRA_X64FRE_ZH-CN_TABLETPC.iso CRC32: E14D6C28 MD5: 9FCCFE53ED4C73BB2DDB9D76CF869943 SHA-1: 95B7961873FDD5DACA5339E1F21B2AD5D7FD02BB J_CPRA_X86FRE_ZH-CN_TABLETPC.iso CRC32: A74F8643 MD5: F21C01173A9987725B75BCF800B61E28 SHA-1: 069AD2B32E7AB3D962A5D4A81E96295DBBB9FEAA 下载地址: http://www.90pan.com

如何查看MySQL数据库/表/列的字符集?

我的未来我决定 提交于 2020-01-07 01:51:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> (默认)字符集是什么: MySQL数据库 MySQL表 MySQL专栏 #1楼 我总是只看 SHOW CREATE TABLE mydatabase.mytable 。 对于数据库,您似乎需要查看 SELECT DEFAULT_CHARACTER_SET_NAME FROM information_schema.SCHEMATA 。 #2楼 对于 表 : SHOW TABLE STATUS 将列出所有表。 筛选使用: SHOW TABLE STATUS where name like 'table_123'; #3楼 对于 表 和 列 : show create table your_table_name #4楼 对于 数据库 : USE your_database_name; show variables like "character_set_database"; -- or: -- show variables like "collation_database"; cf. 此页 。 并查看MySQL手册 #5楼 这是我的做法- 对于模式(或数据库-它们是同义词): SELECT default_character_set_name FROM information_schema.SCHEMATA

技术分享 | MySQL:查询字段数量多少对查询效率的影响

让人想犯罪 __ 提交于 2019-12-30 18:02:14
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 作者:高鹏 文章末尾有他著作的《深入理解 MySQL 主从原理 32 讲》,深入透彻理解 MySQL 主从,GTID 相关技术知识。 这个问题是最近一个朋友问我的。刚好就好好看了一下,留下这样的记录。本文给出一些函数接口,末尾给出一些调用堆栈,为感兴趣的朋友做一个参考,也为自己做一个笔记。 一、问题由来 我们知道执行计划的不同肯定会带来效率的不同,但是在本例中执行计划完全一致,都是全表扫描,不同的只有字段个数而已。其次,测试中都使用了where 条件进行过滤(Using where),过滤后没有数据返回,我们常说的 where 过滤实际上是在 MySQL 层,当然某些情况下使用 ICP 会提前在 Innodb 层过滤数据,这里我们先不考虑 ICP,我会在后面的文章中详细描述 ICP 的流程,本文也会给出 where 过滤的接口,供大家参考。 下面的截图来自两个朋友,感谢他们的测试和问题提出。另外对于大数据量访问来讲可能涉及到物理 IO,首次访问和随后的访问因为 Innodb buffer 的关系,效率不同是正常,需要多测试几次。 测试1: 测试2: 我们通过这两个测试,可以发现随着字段的不断减少,效率越来越高,并且主要的区别都在 sending data 下面,这个状态我曾经大概描述过参考文章: https:/

小程序思维导图,让小程序不再难懂(二)

五迷三道 提交于 2019-12-28 18:33:13
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 写在前面 第二波小程序思维导图终于出炉了,各位久等。 思维导图是一个很神奇的东西,它直观,界面美而有富有逻辑性。技术这种东西知识点多而杂,想要全面掌握不容易。需要用做到熟练更加不容易了。界面化的产物适合更加让人加深印象。当思维导图和技术结合到一起,会产生什么样的效果呢?自己去体会吧。 小程序 小程序入门简单,会点前端的人基本都能很快上手。官方文档也写得比较清晰了,我也不做太多的重复动作。一些常用的功能或api总结了一下,希望你们能更深刻直观地认识一下小程序。 思维导图 最后 欢迎关注我的公众号java-mindmap。之后我会陆续把java一些基础知识、框架和好的开源项目以思维导图的形式描述并分享出来,让大家在能够更好更清晰更容易地理解java。希望对大家会有所帮助。(ps:需要思维导图源文件请关注公众号下载) 欢迎转载。转载请保留公众号信息,谢谢合作。 ######建议阅读 小程序思维导图,让小程序不再难懂(一) java基础思维导图,让java不再难懂 来源: oschina 链接: https://my.oschina.net/u/3080373/blog/877320

跨屏自适应还是独立做m站,哪种更利于seo?

青春壹個敷衍的年華 提交于 2019-12-28 15:35:49
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 不少朋友都关心移动下的seo排名,同时也就问关心移动站采用哪种架构的问题,是 跨屏响应式 还是独立建m站? 不少的朋友对独立的移动站,也就是m.youname的二级网站做手机站有不小的执念,认为独立移动站才是最好的,其实不然。 独立的手机网站和pc网站,需要在百度做适配,然而很多人都不会操作,会来询问我,这不是要命的,而是当你独立做移动站的时候,容易被百度重复收录,导致网站的权重分散,甚至降权。 关于移动SEO,到底应该选哪种方式优化?今天跨屏网Kuaping.com 就深入探讨一下移动优化的三种方式以及如何选择移动优化方式。 移动网站大体上有三种方式可以选择: 1、响应式设计(responsive design) PC站和移动站的URL是完全一样的(不管用什么设备访问都一样),返回给浏览器的HTML代码也是一样的,不同宽度的屏幕排版不同是通过CSS控制的。以前也经常称为自适应设计,就是因为排版是根据屏幕宽度自动适应的。 2、独立移动站(separate m. site) 移动站的URL和PC站是不一样的,通常用单独的子域名,比如PC站是www.kuaping.com,移动站是m.kuaping.com。当然,移动站的HTML代码(以及CSS)与PC站也是不一样的,是专门做了移动优化的。换句话说,这种方式下

斐波那契数列(二)

≡放荡痞女 提交于 2019-12-24 16:07:05
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、斐波那契数列中“十”码的藏元性质 自然数基数十的语义,隐藏在斐波那契数列中。这个数列是由下面的递推方法推理出来的。 表33-1:斐波那契数列的递推式 0 1 2 3 4 5 6 7 8 9 10 11 12 …… 1 0 1 1 2 3 5 8 13 21 34 55 89 …… 0 1 1 2 3 5 8 13 21 34 55 89 144 …… 1 1 2 3 5 8 13 21 34 55 89 144 233 …… 解密斐波那契数列的第一步是找到这个递推式的理论根源,斐波那契数列是数学有序结构的衍生结构,有序结构原型如下(这个结构的详细内容后面介绍)。 表33-2:数学有序结构的递推式 0 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 2 3 4 5 6 7 8 9 10 11 12 与数学有序递推式内核相类比,可以找到斐波那契数列递推式的可类比项。 表33-3:斐波那契数列递推式的类比项 3 4 5 6 7 8 9 10 11 1 2 3 5 8 13 21 34 55 2 3 5 8 13 21 34 55 89 3 5 8 13 21 34 55 89 144 斐波那契数列与数学有序结构递推项相比,它们共有的特征有下面三点。 (1