电商网站开发报告,wordpress书店主题,箱包东莞网站建设,搜狗搜索排名优化第一部分 网络服务 第一章 例行性工作
1.单一执行的例行性工作
单一执行的例行性工作#xff08;就像某一个时间点 的闹钟#xff09;#xff1a;仅处理执行一次 1.1 at命令#xff1a;定时任务信息 [rhellocalhost ~]$ rpm -qa |grep -w at
at-spi2-core-2.40.3-1.el9.x…第一部分 网络服务 第一章 例行性工作
1.单一执行的例行性工作
单一执行的例行性工作就像某一个时间点 的闹钟仅处理执行一次 1.1 at命令定时任务信息 [rhellocalhost ~]$ rpm -qa |grep -w at
at-spi2-core-2.40.3-1.el9.x86_64
at-spi2-atk-2.38.0-4.el9.x86_64
at-3.1.23-11.el9.x86_64 两种帮助方式man --help不详细 1.2 at命令格式 at [参数] [时间] 例如 #定义三分钟之后显示
[rootserver ~]# at now 3 minutes 1.3短命令 -v:显示出你定义任务完成后的时间
-r:删除任务
-m:当任务完成之后即使没有标准输出将给用户发送邮件
-c:可以列出后面接的该项工作的实际命令内容脚本
-d:atrm的别名,可以取消一个在at调度中的工作
-l:是atq的别名,可列出目前系统上面的所有该用户的at调度
-f:从文件中读取作作业 1.4 定义任务时写时间的方式 HH:MM
HH:MM YY-MM-DD
查询该任务信息atq命令 at -l
删除该任务信息at - r a
(一个是手动删除一个就是等任务到时间执行后就会自动删除)
/etc/at.deny : 拒绝用户使用at定义任务 ---- 是at命令自身存在的
/etc/at.allow : 允许用户使用定义任务 ---- at命令本身没有但你创建了也是可以生效的 编辑 编辑 定义rhel用户不能定义单一次任务 注意允许是优先的若at.deny文件与at.allow文件里面都有一个用户则优先考虑的是allow文件的
1.5 任务脚本路径
编辑 2.cron周期性任务计划 安装软件yum.install 文件名 注意与at不一样任务执行完成后不会删除 2.1指定某个用户去编辑 crontab -u 用户 2.2 进入编辑模式 第一种 crontab -e (edit) 第二种周期性任务脚本的路径 /var/spool/cron 文件编辑后保存退出1.esc 2.wq 若在定义的时候其他不需要的就用*代替 编辑
时间写了也要把任务写上 2.3查看周期性任务 这是查看当前用户定义的单一周期性任务 crontab -l 这是查看指定用户定义单一周期性任务 crontab -l -u 用户 2.4 清空任务列表 crontab -r 若只想删除某一条任务的话需要用-e先进入编辑里面再用光标选中某一行按dd删除 2.5 默认时间格式 分 时 日 月 周 任务 注意date的时间格式为 ----- 月日时分年点秒 2.6 crontab计划任务的时间格式 分时日月周0-590-231-311-120-7 /uer/bin/wall ----- 若命令没有在解释器里面执行用绝对路径 wall ----- 若命令在解释器里面执行可以直接使用 2.7 crontab的命令选项 -u user define user-e edit users crontab-l list users crontab-r delete users crontab (清空)-i prompt before deleting-n host set host in cluster to run users crontabs-c get host in cluster to run users crontabs-s selinux context-V print version and exit-x mask enable debugging 2.8 特殊字符
特殊字符含义*代表任何时刻,代表分隔时段- 0-59代表一段时间范围/数字指定时间的间隔频率例如每 3 分钟进行一次*/3
注%在crontab里面有特殊含义如果有命令里面需要使用%需要使用\转义。
[rootserver ~]# crontab -e
0 9 * * * wall good morning
确保安装包确认在进行 2.9 日志文件 tail -f /var/log/cron 2.10 系统级别性周期性任务 --- 很方便 编辑任务时用户身份比较多适合用 vim /etc/crontab 编辑 2.11 任务扩展配置 /etc/anacrontab 就是给未能正常执行的任务再定一个时间 第二章 时间服务器 1.服务 是运行在操作系统后台的一个或多个程序为用户或系统提供某项特定的服务。 2.ntp NTP 是网络时间协议Network Time Protocol的简称通过 udp 123 端口进行网络时钟同步。 3.chrony Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软件。 查看程序是否运行 [rootserver~]# ps -aux | grep chrony 如果程序未被运行,则需要开启 systemctl start chronyd systemctl start(启动)|stop停止|restart重启|enable开机自启|disable开机禁用|reload重载|load加载|status状态 程序名 默认是有安装的如果没有安装的话需要安装步骤如下 [rootlocalhost ~]# timedatectl set-timezone Asia/Shanghai
1.#安装服务软件
[rootlocalhost ~]# yum install -y chrony
2.#重启服务并开机启动
[rootlocalhost ~]# systemctl enable --now chronyd
3.#配置时间服务器编辑
[rootserver1 ~]# cat /etc/chrony.conf
4.#设置时间服务器的服务端名字
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
#Allow NTP client access from local network.
#设置允许哪个客户端可以访问该服务器
#allow 192.168.81.130/16 client 192.168.10.129
为了让时间不一样先修改时间
[rootclient ~]# date 010112122023
#编辑
[rootclient ~]# vim /etc/chrony.conf
pool 192.168.81.129 ibusrt
#重启
[rootclient ~]# systemctl restart chronyd
[rootclient ~]# chronyc sources 时间同步不成功 1.网络不通确保主机是同一种网络模式
2.服务端必须关闭防火墙 systemctl stop firewalld
3.服务端和客户端的时区不一致
4.确认服务端和客户端的配置 4.配置时间服务器客户端 1.安装软件服务
2.运行软件程序
3.根据自定配置提供对应的服务 /etc/chrony.conf
vim /etc/chrony.conf
pool 2.rhel.pool.ntp.org ibrust ---- 信息注释
local stratum 10 ---- 删除注释把当前的主机标记为10层级最高层级是15一般调为中等
allow 192.168.81.129 ---- 允许当前网段内主机发请求
4.重新启动软件
systemctl restart chronyd.service 注意1.一定要关闭防火墙 2.关闭unix的规则 server 192.168.81.129
1.[rootserver ~]# systemctl stop firewalld 或者
[rootserver ~]# systemctl is-active firewalld
2.[rootserver ~]# setenforce 0 默认是1打开的 查看关闭没有 [rootserver ~]# systemctl status firewalld 查看程序文件位置 [rootserver ~]# rpm -ql 程序
找直接以.conf的文件 5. 网络监听 [rootclient]# netstat -tunalp
-t:tcp
-u:udp
-n:主机是按数值地址型标记
-a:all
-l:list监听的信息
-p:program程序 6.lsof 显示打开运行文件里面的信息 lsof -i --- 列出所有的网络连接
lsof -i tcp ---- 列出所有tcp网络连接信息
lsof -i udp ---- 列出所有udp网络连接信息
lsof -i:3036 ---- 列出谁在使用某个端口
lsof -i tcp:80 ---- 列出谁子啊使用某个特定的tcp端口
lsof -i udp:55 ---- 列出谁子啊使用某个特定的udp端口 7. 判断本地网络服务是否运行 1.只要服务运行了就能在本地看到ps -aux | grep chronyd(程序)
2.程序在运行就说明服务是正常的systemctl status | grep chronyd(程序) 或者 systemctl in-active | grep chronyd(程序)
3. 网络服务只要在运行就会在某个端口存在监听信息netstat | grep chronyd(程序)ss -tunalp | grep chronyd(程序)
4.只要该网络服务有开启某个端口就可以找到,只要查看某个端口服务是否正常运行就可以lsof -i:xx 第三章 ssh
1、远程连接服务器简介
1什么是远程连接服务器 远程连接服务器通过文字或图形接口方式来远程登录系统让你在远程终端前登录linux主机以取得可操作主机接口shell而登录后的操作感觉就像是坐在系统前面一样。
2. 远程连接服务器的类型以登录的连接界面来分类
- 文字接口明文传输Telnet 23、RSH等目前非常少用加密传输SSH为主已经取代明文传输
- 图形接口XDMCP远程控制、VNC(RFB)、XRDP(RDP3389)远程桌面等
3.连接加密技术简介
目前常见的网络数据包加密技术通常是通过“非对称密钥系统”来处理的。主要通过两把不一样的公钥与私钥来进行加密与解密的过程 。
公钥public key提供给远程主机进行数据加密的行为所有人都可获得你的公钥来将数据加密。
私钥private key远程主机使用你的公钥加密的数据在本地端就能够使用私钥来进行解密。私钥只有自己拥有。
二.SSH工作过程
1.五个阶段
在整个通讯过程中为实现SSH的安全连接服务端与客户端要经历如下五个阶段
过程说明版本号协商阶段SSH目前包括SSH1和SSH2两个版本双方通过版本协商确定使用的版本密钥和算法协商阶 段SSH支持多种加密算法双方根据本端和对端支持的算法协商出最终使用 的算法认证阶段SSH客户端向服务器端发起认证请求服务器端对客户端进行认证会话请求阶段认证通过后客户端向服务器端发送会话请求交互会话阶段会话请求通过后服务器端和客户端进行信息的交互
A.TCP三次握手版本协商过阶段 目前包括SSH1和SSH2两个版本双方通过版本协商确定使用的版本。
服务端默认已经开启ssh服务打开了22号端口等待客户端来连接
服务器向客户端发送第一个报文: 告诉了客户端使用了ssh版本以及软件信息
客户端收到报文之后拿出服务器的ssh版本看一下自己是否支持如果支持使用该版本 B.协商算法和确定对称秘钥阶段
SSH支持多种加密算法双方根据本端和对端支持的算法协商出最终使用的算法: 对称加密: 同一秘钥既可以进行加密也可以进行解密 优势使用一个秘钥它的加密效率高一些快一些
缺陷秘钥传输的安全性在网络传输中不传输秘钥
应用: 传输数据数据的双向传输 非对称加密产生一对秘 公钥公钥加密 私钥私钥解密不会进行网络传输 缺陷公钥的安全性 客户端去访问一个服务器假设数据被我们的hacker拦截了hacker发送了自己的公钥给客户端客户端用 hacker的公钥对数据进行加密然后hacker用自己的私钥进行解密。从而获取到用户传送的隐私用户和密码信息进一步对服务器动机传送速度慢效率低
优势安全性更高
应用: 单向的认证阶段建立安全的连接保证后面对称加密的秘钥安全 DH密钥交换算法
步骤如下 客户端发往服务器的DH初始化参数ecdh public key客户端发送自己的公钥给服务器服务端发送自己的公钥给客户端计算出对称加密的秘钥sessionkey--NewKeys客户端计算出对称加密的秘钥sessionkey--newkeys解决了一个问题保证了进行传输时候对称加密秘钥的安全。能不能用的上这个秘钥还取决于认证阶段是否成功 C.第三阶段认证阶段
SSH客户端向服务端发起认证请求服务端对客户端进行认证
1基于口令的认证
2基于公钥的认证
步骤如下 1.Client将自己的公钥存放在Server上追加在文件authorized_keys中。
2.Server端接收到Client的连接请求后会在authorized_keys中匹配到Client的公钥pubKey并生成随机数R用Client的公钥对该随机数进行加密得到pubKey(R)然后将加密后信息发送给Client。
3.Client端通过私钥进行解密得到随机数R然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1发送给Server端。
4.Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。
5.Server端会最后比较Digest1和Digest2是否相同完成认证过程。 D.第四阶段:会话请求阶段**
认证通过后客户端向服务器端发送会话请求,建立新的连接
E.第五阶段交互会话阶段
会话请求通过后服务器端和客户端进行信息的交互
传输数据的的阶段数据时要被加密对称加密方式对称加密的秘钥就是sessionKey(客户端和服务服务端在秘钥交换阶段互相计算出来的sessionKey未进行网络传输) 2.ssh服务配置 #ssh服务安装包openssh-server
[rootserver1 ~]# vim /etc/ssh/sshd_config
1.#Port 22 #监听端口默认监听22端口 【默认可修改】
2.#AddressFamily any #IPV4和IPV6协议家族用哪个any表示二者均有
3.#ListenAddress 0.0.0.0 #指明监控的地址0.0.0.0表示本机的所有地址 【默认可修改】
4.#ListenAddress :: #指明监听的IPV6的所有地址格式
5.#LoginGraceTime 2m #登录的宽限时间默认2分钟没有输入密码则自动断开连接
6.#PermitRootLogin yes #是否允许管理员远程登录yes表示允许
7.#MaxAuthTries 6 #最大认证尝试次数最多可以尝试6次输入密码。之后需要等待某段时间后才能再次输入密码
8.#MaxSessions 10 #允许的最大会话数
9.AuthorizedKeysFile .ssh/authorized_keys #选择基于密钥验证时客户端生成一对公私钥之后会将公钥放到.ssh/authorizd_keys里面
10.PasswordAuthentication no #是否允许支持基于口令的认证
11.#UseDNS no #是否反解DNS如果想让客户端连接服务器端快一些这个可以改为no
12.Subsystem sftp /usr/libexec/openssh/sftp-server #支持 SFTP 如果注释掉则不支持sftp连接
13.AllowUsers user1 user2 #登录白名单默认没有这个配置需要自己手动添加允许远程登录的用户。如果名单中没有的用户则提示拒绝登录 实验四公钥验证 免密登陆 1.Client将自己的公钥存放在Server上追加在文件authorized_keys中。
2.Server端接收到Client的连接请求后会在authorized_keys中匹配到Client的公钥pubKey并生成随机数R用Client的公钥对该随机数进行加密得到pubKey(R)然后将加密后信息发送给Client。
3.Client端通过私钥进行解密得到随机数R然后对随机数R和本次会话的SessionKey利用MD5生成摘要Digest1发送给Server端。
4.Server端会也会对R和SessionKey利用同样摘要算法生成Digest2。
5.Server端会最后比较Digest1和Digest2是否相同完成认证过程。 此作业以发布在csdn第一次作业里面 第四章 web服务器
(www http apache nginx),今天主讲nginx
第一节
DNS对域名进行解析查询对应的地址 1.1 web服务器简介 www是world wide web的缩写也就是全球信息广播的意思 1.2.网址及HTTP简介 web服务器提供的这些数据大部分都是文件那么我们需要在服务器端先将数据文件写好并且放置在某个特殊的目录下面这个目录就是我们整个网站的首页在redhat中这个目录默认在 /var/www/html 。浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据的。 URLUniform Resource Locator统一资源定位符对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示是互联网上标准资源的地址。 网址格式协议://主机或主机名[:port]/目录资源,路径 浏览器常支持的协议有http、https、ftp等。 主机地址或者主机名主机地址就是服务器在因特网所在的IP地址。如果是主机名的话那么就需要域名解析了。 端口号porthttp为80https为443 IANA互联网数字分配机构 0-1023众所周知永久地分配给固定的应用程序使用特权端口只有管理员有权限启用并让进程监听 1024-41951亦为注册端口但要求不是特别严格分配给程序注册为某应用使用3306/TCP 41952-60000客户端程序随机使用的端口动态端口或私有端口 1.3.http请求方法 在http通信中每个http请求报文都包含一个方法用以告诉web服务器端需要执行哪些具体的动作这些动作包括获取指定web页面、提交内容到服务器、删除服务器上资源文件等。 状态代码由三位数字组成第一个数字定义了响应的类别且有五种可能取值。 状态码范围作用描述100 - 199用于指定客户端相应的某些动作200 - 299用于表示请求成功300 - 399用于己经移动的文件并且常被包含在定位头信息中指定新的地址系信息400 - 499用于指出客户端的错误500 - 599用于指出服务端的错误 常用状态码查询常用的http状态码查询大全 - 知乎 1.4.常见状态代码、状态描述的说明如下 200 OK客户端请求成功 收到数据但是数据有问题 - 400 Bad Request客户端请求有语法错误不能被服务器所理解
- 401 Unauthorized请求未经授权这个状态代码必须和 WWW-Authenticate 报头域一起使用
- 403 Forbidden服务器收到请求但是拒绝提供服务
- 404 Not Found请求资源不存在举个例子输入了错误的URL 服务器内部的问题 - 500 Internal Server Error服务器发生不可预期的错误
- 503 Server Unavailable服务器当前不能处理客户端的请求一段时间后可能恢复正常 1.5.http协议请求的工作流程
HTTP默认端口80和8080 1终端客户在web浏览器地址栏输入访问地址域名售卖 2web浏览器请求DNS服务器把域名www.ceshi.com解析成web服务器的IP地址 3web浏览器将端口号默认是80从访问地址URL中解析出来 4web浏览器通过解析后的ip地址及端口号与web服务器之间建立一条TCP连接 5建立TCP连接后web浏览器向web服务器发送一条HTTP请求报文 6web服务器响应并读取浏览器的请求信息然后返回一条HTTP响应报文。 7web服务器关闭HTTP连接关闭TCP连接web浏览器显示访问的网站内容到屏幕上。 第二节 web服务器的类型 2.1 静态页面和动态网页 静态页面:直接通过磁盘去获取信息
动态网页 2.2静态页面资源特征 1. 处理文件类型如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等-
2. 地址中不含有问号或等特殊符号。
3. 保存在网站服务器文件系统上的是实实在在保存在服务器上的文件实体
4. 页内容是固定不变的因此容易被搜索引擎收录
5. 网页页面交互性交差因为不能与数据库配合
6. 网页程序在用户浏览器端解析当客户端向服务器请求数据时服务器会直接从磁盘文件系统上返回数据不做任何解析 优势 1. 访问的效率比较高
2. 网页内容是固定不变的因此容易被搜索引擎收录
3. 网页程序在用户浏览器端解析当客户端向服务器请求数据时服务器会直接从磁盘文件系统上返回数据不做任何解析 缺点 1. 网页页面交互性交差因为不能与数据库配合
2. 保存在网站服务器文件系统上的是实实在在保存在服务器上的文件实体 2.3动态网页资源特点 1. 网觅扩展名后缀常见为.asp、.aspx、.php、.js、.do、.cgi
2. 网页页面交互性强可以与数据库配合
3. 地址中含有问号?或 等特殊符号
4. 不便于被搜索引擎收录 优势 客户端与服务端交互能力强** 缺点 1.访问的效率比较低
2.不便于被搜索引擎收录 2.4 nginx的搭建方式LAMP 、LNMP 2.5 web服务器基本配置 防火墙和关闭 selinuxSecurity-Enhanced Linux防火墙。
systemctl stop firewalld 和 setenforce 0
最后查看一下防火墙是否关闭
systemctl status firewalld
1.下载nginx[rootserver]# yum install nginx -y
2.开启服务[rootserver]# systemctl start nginx
3.查找uginx的配置文件[rootserver]# rpm -ql nginx(找.conf)
4.编辑[rootserver]# vim /etc/nginx/nginx.conf
#nginx服务配置文件nginx.conf的结构
#############全局配置无{}标志############
user nginx; #进程所属用户
worker_processes auto; #线程数量CPU核心数(双核4线程可以设置为4)
error_log /var/log/nginx/error.log; #错误日志文件路径
pid /run/nginx.pid; #nginx pid文件位置
include /usr/share/nginx/modules/*.conf; #导入功能模块配置文件
#######################################################
##################性能配置(有{}标志)############
events {worker_connections 1024; #tcp连接数
}
########################################################
##################http模块配置(有{}标志)############
http { #http区块开始log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for; #日志显示格式定义access_log /var/log/nginx/access.log main; #访问日志文件位置
不需要管以下这个sendfile on; #开启高效文件传输tcp_nopush on; #性能优化参数tcp_nodelay on; #性能优化参数keepalive_timeout 65; #持久连接或超时时间types_hash_max_size 4096; #性能优化参数
include /etc/nginx/mime.types; #可解析的静态资源类型default_type application/octet-stream;include /etc/nginx/conf.d/*.conf; #加载子配置文件
server { #server区块开始就相当于一个虚拟主机listen 80;listen [::]:80; server_name _; #服务名root /usr/share/nginx/html; #主页存放路径include /etc/nginx/default.d/*.conf; #子配置文件路径error_page 404 /404.html; #404错误的返回页面location /404.html { #location 定义用户请求的uri,并返回相应的资源文件}error_page 500 502 503 504 /50x.html; #5xx状态返回的页面location /50x.html {}}
} 补充
看nginx是否在运行 [rootserver]# ps -aux | grep nginx
总结结束进程可以stop该进程也可以rm这个进程文件
这里以nginx.pid举例
[rootserver]# kill -9 1991或者
[rootserver]# rm /run/nginx.pid
index.html是默认的可以不写
如果存在问题的话它会显示40.x什么··· 2.6 自定义一个欢迎界面 1.自己创建一个文件 root /usr/share/nginx/html; #主页存放路径
[rootserver html]# vim index.htm
注意要在主页存放路径去创建文件 案例一多ip访问多网站 1.通过nmtui连接网卡图形界面实现网络配置 ipv4 选择为manul然后添show添加地址注意网段范围 网关一般为xxx.xxx.xx.2 最后点ok [rootnode1 ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.168.81.129/24 ipv4.dns 114.114.114.114 ipv4.gateway 192.168.81.2 connection.autoconnect yes
[rootnode1 ~]# nmcli connection modify ens33 ipv4.addresses 192.168.81.130/24
[rootnode1 ~]# nmcli connection up ens33
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
[rootnode1 ~]# systemctl stop firewalld
[rootnode1 ~]# setenforce 0
[rootnode1 ~]# cat /etc/nginx/conf.d/test_ip.conf
server {listen 192.168.10.132:80;root /www/ip/132;location / { #配置//www/ip/100下的资源文件}
}
注意每条语句后面都有一个分号 2.将多个ip写入进去 在加载配置文件里面写入ip建议专门拿个文件写避免后面又错可以直接删掉对主文件不会有任何影响
/etc/nginx/conf.d/*.conf; #加载子配置文件
在操作之前需要关闭防火墙unix的规则
并安装服务程序
1.编辑
[rootlocalhost ~]# vim /etc/nginx/conf.d/test_ip.conf
注意在子文件里面创建文件装要写入的内容要以.conf结尾
server {listen 192.168.81.132:80;root /www/ip/132;location / {index index.html;}}server {listen 192.168.81.129:80;root /www/ip/129;location / {index index.html;}}
2.根据配置需要创建自定义文件创建多级目录需要加上-pv[rootlocalhost ~]# mkdir /www/ip/{132,129} -pv
我这里再写上一个测试内容看看
[rootlocalhost ~]# echo this is 132 /www/ip/132/index.html
[rootlocalhost ~]# echo this is 129 /www/ip/129/index.html
如果想把两个写到不同的页面将其中一个指定为超链接
[rootlocalhost ~]# cd /www/ip/132
[rootlocalhost 132]# echo this is two page 2.html
[localhost 132]# echo this is one page 1.html 3.重启一下[rootlocalhost ~]# systemctl restart nginx
注意:如果重启不成功说明写入的有问题根据提示修改问题
这种很好排查出问题
4.客户端连接测试可以在window里面测试也可以用url图形界面
格式url http://(ip) 如果重启不了怎么排查问题勒
1.systemctl status nginx
2.journalctl -xeu nginx.service 2.7 多端口访问网站 [rootlocalhost ~]# vim /etc/nginx/nginx.conf
server {listen 192.168.10.129:9999;root /www/port/9999;location / {}
}
server {listen 192.168.81.132:8888;root /www/port/8888;location / { }
}
[rootnode1 ~]# systemctl restart nginx
[rootnode1 ~]# echo 8888 /www/port/8888/index.html
[rootnode1 ~]# echo 9999 /www/port/9999/index.html
[rootlocalhost conf.d]# curl http://192.168.81.132:8888
this is 8888 2.8 多域名访问网址 [rootnode1 ~]# cat /etc/nginx/conf.d/test_name.conf
server {listen 192.168.10.129:80;root /www/name/node1;server_name www.node1.com;location / { }
}
server {listen 192.168.10.130:80;root /www/name/node2;server_name www.node2.com;location / { }
}
[rootnode1 ~]# vim /etc/hosts
[rootnode1 ~]# mkdir -pv /www/name/{node1,node2}
mkdir: created directory /www/name
mkdir: created directory /www/name/node1
mkdir: created directory /www/name/node2
[rootnode1 ~]# echo node1 /www/name/node1/index.html
[rootnode1 ~]# echo node2 /www/name/node2/index.html
[rootnode1 ~]# cat /etc/hosts
192.168.10.129 www.node1.com
192.168.10.130 www.node2.com
[rootnode1 ~]# systemctl restart nginx
[rootnode1 ~]# curl www.node1.com
node1 注意域名去访问网站的时候是需要地址解析的可以自己去添加notepad不免费
客户端主机 --- Windows ---- system32 --- dirvers--- etc ----- hosts ----- 然后添加主机和解析的结果 2.9虚拟目录和用户控制 alias --- 别名
格式alias kankan cat [rootnode1 ~]# cat /etc/nginx/conf.d/test_alias.conf
server {listen 192.168.10.129:80;root /www/ip/129;location /real { alias /openlab/real/; #apachealias /www/ip/129/real /openlab/real;}
}
[rootnode1 ~]# mkdir /openlab/real -pv
[rootnode1 ~]# echo this is real /openlab/real/index.html
[rootnode1 ~]# systemctl restart nginx.service
[rootnode1 ~]# curl http://192.168.10.129/real/
this is real
############用户认证###########
[rootnode1 ~]# cat /etc/nginx/conf.d/test_alias.conf
server {listen 192.168.10.129:80;root /www/ip/129;location /real { ##########很重要#######alias /openlab/real/;auth_basic on;auth_basic_user_file /etc/nginx/users;######################}
}
[rootnode1 ~]# htpasswd -c /etc/nginx/users tom
New password:
Re-type new password:
Adding password for user tom
[rootnode1 ~]# systemctl restart nginx
[rootnode1 ~]# curl 192.168.10.129/real/ -u tom
Enter host password for user tom:
this is real 想要安装某软件 2.10 https 1.简介 HTTP协议以明文方式发送内容不提供任何方式的数据加密;
为了解决HTTP协议的这一缺陷需要使用另一种协议安全套接字层超文本传输协议HTTPS;
HTTPS全称Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure超文本传输安全协议是以安全为目标的HTTP通道。HTTPS并不是一个新协议而是HTTPSSL(Secure Sockets Layer --- 安全套接层)TLS。原本HTTP先和TCP假定传输层是TCP协议直接通信而加了SSL后就变成HTTP先和SSL通信再由SSL和TCP通信相当于SSL被嵌在了HTTP和TCP之间。
SSL协议分为两层
- SSL记录协议 SSL Record Protocol它建立在可靠的传输协议如TCP之上为高层协议提供数据封装、压缩、加密等基本功能。
- SSL握手协议SSL Handshake Protocol它建立在SSL记录协议之上用于在实际的数据传输开始前通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL协议提供的服务
1认证用户和服务器确保数据发送到正确的客户机和服务器
2加密数据以防止数据中途被窃取
3维护数据的完整性确保数据在传输过程中不被改变 应用http)应用httpsTCPSSLIPTCPXXXIP 2.https协议加密所使用的算法 2.1 Hash算法常用在不可还原的密码存储、信息完整性校验等
常见的HASH算法MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMACSHA1。
2.2 共享密钥加密对称密钥加密加密和解密使用相同密钥。
对称加密算法DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES。
2.3公开密钥加密非对称密钥加密公开密钥加密使用一对非对称的密钥。一把叫做私有密钥一把叫做公开密钥。
常见的非对称加密算法RSA、ECC移动设备用、Diffie-Hellman、El Gamal、DSA数字签名用。 3.TLS完整的通信流程 第一阶:段客户端端申请建立https连接 第二阶段客户端和服务器确认加密版本,加密套件 第三阶段:证书发送验证 客户端验证证书取出公钥用公钥加密生成的对称秘钥发送个服务器通知改变加密信息传递 第四阶段服务收到消息用私钥解密取确认对称秘钥通知客户端ssl通道建立完成 第五阶段客户端和服务端可以通过加密通道开始数据通信 第六阶段客户端断开连接 #key是私钥文件
#crt是由证书颁发机构CA签名后的证书或者是开发者自签名的证书包含证书持有人的信息持有人的公钥以及签署者的签名等信息
(第一种) [rootlocalhost certs]# make jiami.crt
(第二种) #openssl req -newkey rsa:4096 -nodes -sha256 -keyout haha.key -x509 -days 365 -out haha.crt
[rootwww certs]# openssl genrsa -aes128 2048 openlab.key(第三种) #openssl req -utf8 -new -key openlab.key -x509 -days 365 -out openlab.crt