第665页

  • Nginx 容器教程

    Nginx 容器教程

    春节前,我看到 Nginx 加入了 HTTP/2 的 server push 功能,就很想试一下。 正好这些天,我在学习 Docker,就想到可以用 Nginx 容器。万一哪里改乱了,直接删掉,再重启一个容器就可以了。 下面就是我搭建 Nginx 容器的过程,以及如何加入 SSL 证书。你会看到 Docker 用来测试软件的新功能,真的很方便,很值得学习。如果你还不会 Docker,可以先看《Docker 入门教程》,非常简单,半小时以内就能学会。 一、HTTP 服务 Nginx 的最大作用,就是搭...

    期权知识 2020-08-18 498 0
  • HTTP/2 服务器推送(Server Push)教程

    HTTP/2 服务器推送(Server Push)教程

    HTTP/2 协议的主要目的是提高网页性能。 头信息(header)原来是直接传输文本,现在是压缩后传输。原来是同一个 TCP 连接里面,上一个回应(response)发送完了,服务器才能发送下一个,现在可以多个回应一起发送。 服务器推送(server push)是 HTTP/2 协议里面,唯一一个需要开发者自己配置的功能。其他功能都是服务器和浏览器自动实现,不需要开发者关心。 本文详细介绍服务器推送的原理和配置方法。 一、传统的网页请求方式 下面是一个非常简单的 HTML 网页文件index.h...

    期权知识 2020-08-18 633 0
  • Systemd 定时器教程

    Systemd 定时器教程

    Systemd 作为 Linux 的系统启动器,功能强大。 本文通过一个简单例子,介绍 Systemd 如何设置定时任务。这不仅实用,而且可以作为 Systemd 的上手教程。 一、定时任务 所谓定时任务,就是未来的某个或多个时点,预定要执行的任务,比如每五分钟收一次邮件、每天半夜两点分析一下日志等等。 Linux 系统通常都使用 cron 设置定时任务,但是 Systemd 也有这个功能,而且优点显著。 自动生成日志,配合 Systemd 的日志工具,很方便除错 可以设置内存和 CPU...

    期权知识 2020-08-18 511 0
  • DDOS 攻击的防范教程

    DDOS 攻击的防范教程

    一个多月前,我的个人网站遭受 DDOS 攻击,下线了50多个小时。这篇文章就来谈谈,如何应对这种攻击。 需要说明的是,我对 DDOS 并不精通,从没想过自己会成为攻击目标。攻击发生以后,很多素昧平生的朋友提供了各种帮助和建议,让我学到了很多东西。这里记录的就是对我最有帮助的一些解决方案。 一、DDOS 是什么? 首先,我来解释一下,DDOS 是什么。 举例来说,我开了一家餐厅,正常情况下,最多可以容纳30个人同时进餐。你直接走进餐厅,找一张桌子坐下点餐,马上就可以吃到东西。 很不幸,我得罪了一...

    期权知识 2020-08-18 479 0
  • JSON Web Token 入门教程

    JSON Web Token 入门教程

    JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 1、用户向服务器发送用户名和密码。 2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 3、服务器向用户返回一个 session_id,写入用户的 Cookie。 4、用户随后的每一次请求,都会通过 Cookie,将 session_id 传回服务器。 5、服务器收到 sessio...

    期权知识 2020-08-18 577 0
  • CSS 的空格处理

    CSS 的空格处理

    一、空格规则 HTML 代码的空格通常会被浏览器忽略。 <p>◡◡hello◡◡world◡◡</p> 上面是一行 HTML 代码,文字的前部、内部和后部各有两个空格。为了便于识别,这里使用半圆形符号◡表示空格。 浏览器的输出结果如下。 hello world 可以看到,文字的前部和后部的空格都会忽略,内部的连续空格只会算作一个。这就是浏览器处理空格的基本规则。 如果希望空格原样输出,可以使用<pre>标签。 <pre>◡◡hello...

    期权知识 2020-08-18 527 0
  • SVG 图像入门教程

    SVG 图像入门教程

    一、概述 SVG 是一种基于 XML 语法的图像格式,全称是可缩放矢量图(Scalable Vector Graphics)。其他图像格式都是基于像素处理的,SVG 则是属于对图像的形状描述,所以它本质上是文本文件,体积较小,且不管放大多少倍都不会失真。 SVG 文件可以直接插入网页,成为 DOM 的一部分,然后用 JavaScript 和 CSS 进行操作。 <!DOCTYPE html> <html> <head></head> <body&...

    期权知识 2020-08-18 487 0
  • 如何降低软件的复杂性?

    如何降低软件的复杂性?

    John Ousterhout 是斯坦福大学计算机系教授,也是 Tcl 语言的创造者。 今年四月,他出版了一本新书《软件设计的哲学》(A Philosophy of Software Design)。这是课程讲稿,160多页,亚马逊全部是五星好评。 我还没读这本书,但是我看了作者在谷歌的一次演讲(Youtube),介绍了这本书的主要内容。我觉得非常值得看,大部分书教你怎么写正确的代码,这本书教你如何正确设计软件。 下面我就根据演讲视频和网上的书评,做一下笔记。 一、什么是复杂性 Ouste...

    期权知识 2020-08-18 587 0
  • Vim 配置入门

    Vim 配置入门

    Vim 是最重要的编辑器之一,主要有下面几个优点。 可以不使用鼠标,完全用键盘操作。 系统资源占用小,打开大文件毫无压力。 键盘命令变成肌肉记忆以后,操作速度极快。 服务器默认都安装 Vi 或 Vim。 Vim 的配置不太容易,它有自己的语法,许许多多的命令。我总是记不清楚,所以就整理了下面这篇文章,列出主要配置项的含义。 一、基础知识 Vim 的全局配置一般在/etc/vim/vimrc或者/etc/vimrc,对所有用户生效。用户个人的配置在~/.vimrc。 如果只对单...

    期权知识 2020-08-18 498 0
  • 命令行通配符教程

    命令行通配符教程

    一次性操作多个文件时,命令行提供通配符(wildcards),用一种很短的文本模式(通常只有一个字符),简洁地代表一组路径。 通配符又叫做 globbing patterns。因为 Unix 早期有一个/etc/glob文件保存通配符模板,后来 Bash 内置了这个功能,但是这个名字被保留了下来。 通配符早于正则表达式出现,可以看作是原始的正则表达式。它的功能没有正则那么强大灵活,但是胜在简单和方便。 本文介绍 Bash 的各种通配符。 一、? 字符 ?字符代表单个字符。 # 存在文件 a.t...

    期权知识 2020-08-18 522 0