MENU

分类 Linux 下的文章

Centos7安装OpenSSL小记

前言

最近给博客网站nginx编译支持TLS1.3协议,TLS1.3在加密上有所提升,还有一点是握手过程中,第一次握手只需要一个RTT而第二次访问则是0-RTT,因此特意去升级尝鲜。由于TLS1.3还需要OpenSSL1.1.1以上的版本,而系统自带OpenSSL是1.1.0版本。

阅读全文

Logrotate日志切割

前言

最近将docker上的nginx服务完善添加日志的切割,之前一直是一个文件时间久了出现体积过大,而且不利于查看访问情况(比如每个小时情况、每天的情况等)

阅读全文

docker无视防火墙问题总结

前言

之前一直使用docker来部署项目,不过发现直接使用-p映射端口则出现问题,如nginx映射80端,一般都会写-p 80:80,这样导致直接透过系统本机的防火墙,不用开端口可以直接外网访问80端。之前一直使用阿里云、腾讯云机器,可以给ECS实例设置安全组方式限制外网端口,不过针对没有这种设置操作的服务器实例之前一直没有认真研究,现在做一下这次折腾总结记录。

解决方法

  • 使用host网络,docker默认是使用bridge桥接网络方式。
  • 使用expose方式暴露端口在本机,然后采用nginx、haproxy等代理工具做一次转发
  • 映射端口改用-p 127.0.0.1:8080:8080,后在本机nginx代理工具映射公网访问服务
  • 禁用docker的iptables规则(下面详细介绍该方法)

阅读全文

I/O多路复用之select、poll、epoll

I/O多路复用可以在单线程的情况下,同时监听多个描述符fd,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。
但是select、poll、epoll本质上都是同步I/O,因为它们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,相对于异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。

阅读全文

Unix五种I/O模型

前言

最近阅读《Unix网络编程卷1:套接字联网API》、《Linux内核完全注释》一书,阅读涉及到其中的I/O,弄清楚三个I/O复用函数select、poll、epoll的区别,也将涉及到的用户态or内核态、文件描述符fd、上下文切换,so 把知识点做一次总结记录。

阅读全文