03-Nginx
Nginx介绍
开源、轻量、快速、可扩展的web服务器
早期是配合apache服务使用,现在很多网站都在使用Nginx, 像Github、Netflix、Wordpress都基于nginx
可配置能力弱于Apache, 性能强于apache
适用于大流量、高并发环境,稳定快速、占用资源少
Nginx与Apache比较Apache:
Apache是基于线程的
基于进程消耗的资源多,所有apache改造为基于线程的模式
而同进程下的多线程共享内存,其中一个线程出现问题,进程下所有线程都可能出现问题
Nginx:
nginx使用事件驱动的架构
新客户端请求时不创建新的进程、线程
事件处理器 处理请求任务
更少的处理时间、更少的内存消耗
nginx使用了一个基于事件的软件架构。当有新的客户端请求发往服务器的时候,服务器不会为这个用户创建新的进程或新的线程,事件的软件架构会有一个核心软件的一个响应组件,称之为事件处理器,用来接受客户端的请求。把客户端对服务器的请求都变为一个TASK,来一个新的访问请求,就处理一个TASK,一个任务,处理完响应的资源就释放了。所以可以利用更少的资源、更少 ...
02-apache2
最流行的web服务器端程序
北美印第安人的一个部落,/ 来自美军武装直升机
Apache软件基金会的一个开源web服务器
曾经是 世界上使用排名第一的web服务器软件
模块化强大的扩展能力
SSO模块 单点登录
并发限制模块
日志监控模块
WAF模块 web应用防火墙
负载均衡模块
音乐 / 图像处理模块
Apache安装使用1sudo apt install apache2 # 安装Apache软件包
这是默认的主页面
默认侦听在80端口
通过众多的directives(指令)进行配置,将directives分散于多个配置文件中
在Ubuntu server中把 apache 大的配置文件切分成多个小的配置文件,这样使用起来会条理清晰
配置文件都在/etc/apache目录下,大致有以下文件:
1234567891011apache2.conf # 主配置文件,全局配置,是一个配置文件入口,通过 include包含其他配置文件https.conf # 新版本已经弃用conf-available # 可启用的配置目录c ...
01-HTTP协议
HTTP协议介绍
HTTP是明文协议
HTTPS提供传输层安全(SSL/TLS),SSL协议到目前为止基本上都已经被启用了,我们只是沿用过去的使用习惯,所以会说HTTPS是通过SSL加密的HTTP,但实际上更多的是使用TLS加密的协议。SSL协议存在一定的安全隐患,已经被TLS代替了,但是在使用上还是习惯 SSL / TLS 一起说。
SSL协议是网景通信公司(Netscape Communications Corporation)设计的,现在已经不存在了,但是在当时可是鼎鼎大名,几乎是相当于今天谷歌在现在计算机网络的位置。
SSL协议最早是作为HTTP的一个安全扩展提出来的,但是刚被提出来的前几个版本都屡次发现,其中比较明显的安全漏洞和问题。所以当后来SSL被国际标准化组织采纳之后,为了区别于SSL协议,发布了TLS协议,其实TLS也是基于SSL做的优化和安全性的加强。现在的TLS已经独立成为一个单独的协议了,不再只作为HTTP的安全增强的扩展功能。现在的TLS不但可以和HTTP结合形成HTTPS的加密传输协议,还可以和ftp、邮件、sqlserver等众多的应用类型结合一起使用。 ...
01-文件服务
FTP服务简介前言网络的诞生其实最早是 冷战期间美国和苏联对抗时,美国担心苏联对它进行核打击,一旦指挥部被摧毁的话,整个战争将对美国不利。所以美国为了避免指挥中心集中化,一旦被攻击就会处于不利局面。美国开始发展网络技术,最初的网络有四个节点,这四个节点任何一个节点都可以作为指挥中心来进行工作。所以说,一个节点被苏联军事打击,其他节点也能工作。
通过网络的连接进行去中心化,多节点共存,进行资源共享,这也是网络诞生最初的动因
互联网刚诞生时完全是为了资源共享,安全没有人关心。大家只要能共享资源,最早资源共享的形式,就是文件,那时没有数据库、网站什么的。
文件服务的话题非常久远,比web还要早,就是因为太久远,当初设计的时候没有考虑安全功能。之后往文件功能加安全功能,总感觉捉襟见肘。所以,文件服务被很多重视安全领域的抛弃,大家已不再使用基本的文件共享功能,转而使用一些提供了安全特性的文件共享方式。
FTP(File Transfer Protocol)
早期互联网的重要服务
产生于安全出现之前
基于明文传输
目前主要用于公开提供的文件下载服务
使用简单、兼容性好
SFTP、FTPS
F ...
01-DNS服务
域名解析DNS(Domain Name Service)将容易记的主机名映射到IP地址
计算机命名规范
Netbios 名称
Hostname
DNS分布式名称系统
DNS服务结构
域名(sina.com.cn)
FQDN:(Fully Qualified Domain Name)全限定域名:同时带有主机名和域名的名称。(www.sina.com.cn)
DNS记录类型
NS 域名服务器记录
A 主机记录
CNAME 别名记录,另外一个主机的别名
MX 邮件交换记录
PTR 指针记录(反向查询)
SOA 起始授权记录
DNS命令空间
逐级委派
ICANN负责管理
www.ubuntu.com. 这里后面有个点
比如说你要找www.ubuntu.com, 只有找到那个点,点会告诉你,我委派的com域名服务器的ip地址是什么,com域名服务器 因为是它委派下去的Ubuntu这个域的域名服务器的ip。这样你就可以找到Ubuntu这个域的域名服务器,再问Ubuntu这个域的域名服务器www ...
01-远程管理
远程访问方式远程管理介绍服务器大多数部署在专门的机房环境
电磁、噪声、氧气、温湿度等都不适宜人类长期活动
避免闲杂人等接触业务服务器
远程管理
不同的操作系统都支持远程管理技术
命令行远程管理工具
图形化远程管理工具
远程访问方式Telnet古老的命令行远程管理工具
不安全(明文传输一切数据)
应尽量避免使用(适用于不支持ssh的环境)
客户端程序包含在所有系统的默认安装中
服务端口默认TCP 23
客户端使用
1telnet www.baidu.com 80
服务器安装1sudo apt install telnetd
12sudo vi /etc/issue.net # 修改操作系统版本信息,就是显示的信息,连接上就会显示这个文件里的信息
服务状态
1sudo systemctl status inetd.service
客户端连入服务端
1telnet 172.16.247.128
SSH服务器安装:
12sudo apt install openssh-server # openssh是个工具套件
服务端口默认TCP 22
ssh1、ssh2两个版 ...
01-账号管理
用户账号管理
为新员工创建账号
修改账号密码策略
禁用休假员工账号
删除离职员工账号
设置账号访问权限
每个人保管自己的密码
不要将密码泄露给任何人
保证密码复杂度
不要将密码写在纸条贴在显示器上
Root账号
能做任何事情(甚至删除操作系统自身)
大部分Linux发行版本安装时要求使用设置root账号密码
Ubuntu默认禁用Root账号
可sudo或临时切换为root账号
可手动启用root账号
平时以普通员工账号管理计算机
在安装过程中会创建普通账号,作为日常管理使用
创建、删除账号1234567891011sudo useradd user01 -msudo useradd -d /home/user02 -m user01-d # 账号主目录(复制于/etc/skel),指定主目录位置-m # 同时创建主目录(默认首次登录时创建主目录,获得一个bash),如果不加-m参数,用户下次登录时会获得一个sh,建议加上-m参数-c # 全名(描述信息)-e # 账号过期YYYY-MM-DD-N # 不创建同名组账号-g # 指定主组(必须已经存在) ...
01-网络基础
网络基础概念
为实现资源共享,彼此互联的多个计算机设备就形成了网络
为实现通信,设备间必须共同遵守相同的通信协议
TCP/IP协议族
标识彼此地址、收发和处理相同约定的数据包
分组交换即包换网络,分层头部、数据
速度由频率决定
网络分层
物理层、网络层、传输层、应用层
将复杂的问题分解为多层的简单的问题,层间遵守相同的接口
123# 查看网卡信息sudo lshw -class networkifconfig -a
ubuntu18.04网络配置使用netplan配置/etc/network/interfaces已经没有这个文件了
使用Rerender
NetworkManager 桌面系统
systemd-networked 服务器
12345678910111213141516171819202122232425sudo vim /etc/netplan/50-cloud-init.yaml# 自动获取ip,dhcpnetwork: ethernets: enp0s3: dhcp4: true vers ...
01-存储管理
存储的介绍
硬盘是计算机中主要的存储设备
传统磁盘分区与逻辑卷管理
事前合理规划很重要
对磁盘的所有操作都要小心小心再小心
磁盘空间用量相关命令12345678df -h# 各列的信息- 文件系统- 使用量- 可用量- 使用率- 挂载点
1df -i # 可以查看inode
123sudo du -h # 可以查看目录下所有文件的大小sudo du -hcs # s:摘要,c:汇总
12sudo apt install ncdu # 可以查看磁盘空间使用情况ncdu
磁盘分区格式添加硬盘步骤磁盘设备名称
1/dev/sda/
硬盘分区
12sudo fdisk -l # 查看硬盘分区情况lsblk
Linux文件系统格式
ext4
xfs
1# Linux下ext4格式使用最多, XFS格式适用于大空间、多文件、数据库
挂载
1/etc/fstab # 自动挂载
分区123sudo fdisk /dev/sdb- m # 帮助菜单
MBR分区,传统分区格式,最大四个主分区,2T容量限制
G ...
01-包管理
包管理介绍Linux发行版本操作系统内核、库文件、命令行shell、图形接口、其他应用软件包共同组成操作系统
包管理
安装、删除、更新、配置修改
不同发行版的主要不同之处
库软件包提供其他软件依赖
减少内存硬盘用量(所有软件依赖内核包)
丢失或版本差异问题主要原因,一环出错全部出错
Linux的库文件.so,windows下的库文件.dll
Linux的依赖关系很突出,值得重视,比windows上的要严重。
Linux的发行版本太多,都打造自己的软件仓库,维护独立的包依赖关系是发行版包管理器的最大任务。
软件包格式
RPM、DEB(Ubuntu集成自Debian Linux)
tar、gzip等打包压缩发布
内含meta-data、预编译的二进制程序文件(不是源码)、配置脚本等
包管理系统
meta-data提供追踪包中全部文件的内容
维护已安装文件的数据库(包名称、归属以及辅助信息)
解决包依赖关系
建议使用唯一的包管理系统
官方软件仓库(Repositories)
打造封闭但有质量保证的软件包来源
慎用第三方软件仓库
dpkg 本地包管理器
安装、删除、创建deb包 ...