!!写自定义的web服务器配置文件
cd /etc/httpd/conf.d --/etc/httpd是最原始的路径 /conf.d 进入到需要创建的路径下进行修改
vim vhost.conf --在/conf.d 路径文件下建立vhost.conf
mkdir /www --创建 /www 目录
ll --查看vhost.conf下的所有文件
cat /var/www/html/index.html --查看网站内的目前存在的内容
systemctl restart httpd --重启httpd系统
setenforce 0 --宽容模式 “0”为关闭 SELinux 重启系统之后需要执行下面的内容 可以执行任意命令 “1”为关闭
echo welcome to xixi > index.html --修改程下面的内容 覆盖index.html页面中的内容
!!创建3个虚拟主机(133本机、138、139)都在同一文件内(vhost.conf)的操作 --同一端口不同ip
mkdir /www/{138,139} --在www下创建目录 138 139
echo welcome to 138 > /www/138/index.html --创建内容
echo welcome to 139 > /www/139/index.html
systemctl status network
systemctl status NetworkManager -- 查看networkmanager的状态
nmcli n
nmcli d --查看状态是打开的且为**ens33**
nmcli connection modify ens33 ipv4.addresses 192.168.183.133/24 ---搭建ip 手动搭建
nmcli connection modify ens33 ipv4.gateway 192.168.183.2 --默认网关
nmcli connection modify ens33 ipv4.method manual --修改网络获取方式
nmcli connection up ens33 ---打开一下ens33的会话
nmcli connection modify ens33 +ipv4.addresses 192.168.183.138/24 --“+”自动加入138的ip
nmcli connection modify ens33 +ipv4.addresses 192.168.183.139/24 --“+”自动加入139的ip
nmcli connection up ens33 ---打开ens33的会话
echo welcome 138 > /www/138/index.html --在网址138中输入内容
echo welcome 139 > /www/139/index.html --在网址139中输入内容
vim vhost.conf ---在vhost.conf文件中加入138 139的命令
<directory /www>
allowoverride none
require all granted
</directory>
<virtualhost 192.168.183.133:80> //本身的ip
documentroot /www
servername 192.168.183.133
</virtualhost>
<virtualhost 192.168.183.138:80> //添加的138
documentroot /www/138
servername 192.168.183.138
</virtualhost>
<virtualhost 192.168.183.139:80> //添加的139
documentroot /www/139
servername 192.168.183.139
</virtualhost>
!!创建新的虚拟主机--修改端口 不同端口 同一ip
setenforce 0 systemctl stop firewalld systemctl start httpd --重启服务 (做了任何修改都需要进行重启)
cd /etc/httpd/conf.d mkdir /www/9090 --创建网址9090
mkdir /www/9091 --创建网址9091
echo www 9090 > /www/9090/index.html --并且在其中输入内容
echo www 9091 > /www/9091/index.html
systemctl stop firewalld --关闭防火墙
vim vhost.conf
Listen 9090
Listen 9091 --加入监听
<directory /www>
allowoverride none
require all granted
</directory>
<virtualhost 192.168.183.133:80>
documentroot /www
servername 192.168.183.133
</virtualhost>
<virtualhost 192.168.183.138:80>
documentroot /www/138
servername 192.168.183.138
</virtualhost>
<virtualhost 192.168.183.139:80>
documentroot /www/139
servername 192.168.183.139
</virtualhost>
<virtualhost 192.168.183.133:9090> --创建虚拟机
documentroot /www/9090
servername 192.168.183.133
</virtualhost>
<virtualhost 192.168.183.133:9091>
documentroot /www/9091
servername 192.168.183.133
</virtualhost>
hostname 主机名
主机名和ip地址之间的关系 --地址解析
---查看ip地址时 先查看本地解析文件 再去查看dns服务器
本地解析文件
名称服务器=dns服务器 nameserver 解决主机名和ip地址之间的关系
nmcli device show | grep dns/gateway 查询dns/gateway里面的信息
操作系统存在两个网卡 lo(默认存在、虚拟网卡)和ens33(本机的真实网卡)--nmcli d可查ens类型
环回网卡(lo)里面是一定可以ping通 环回网卡是操作系统存在就一定存在 不管ip是否变化 环回网卡的ip都不会改变 随时可以ping通
/dev/null 是一个丢弃所有写入的设备,/dev/zero 是一个提供无限空字符的设备,可以用于重定向、覆盖、清空等操作
cgi-bin 通用网关接口
http 超文本传输协议 :是以明文进行传输数据的 被用于在web浏览器和网站服务器之间进行传输 是可以直接访问里面的数据内容的 所以不适合传输重要信息 如密码,银行卡号等
https 超文本传输安全协议:是http+ssl的结合 --TLS
SSL协议:
①SSL记录协议:建立在可靠的传输协议之上,比如TCP,为高层协议提供数据封装、压缩、加密等基本功能
②SSL握手协议:建立在SSL记录协议之上,用于在实际的数据传输开始之前,通讯双方进行身份验证、协商加密算法、交换加密密钥等的
③提供的服务:认证⽤⼾和服务器,确保数据发送到正确的客⼾机和服务器 ,加密数据以防⽌数据中途被窃取 ,维护数据的完整性,确保数据在传输过程中不被改变
DocumentRoot:设置虚拟主机的 Web 内容的路径
ServerName:设置此虚拟主机为其提供内容服务的域
SSLCertificateFlie /etc/pki/tsl/certs/localhost.crt SSL认证文件=证书 可进行签名 用公钥加密的过程
SSLCertificateKeyFile /etc/pki/tsl/private/localhost.key 进行验签 用私钥去验证签名的过程
!!创建一个服务名为www.haha.com的网址 访问/www/haha里面的内容 ---基于本地解析服务的web实验
cd /www
mkdir haha
mkdir heihei //创建两个网站
echo hahahaha > /www/haha/index.html
echo heiheiheihei > /www/heihei/index.html //在网站/www/haha或者/www/heihei里面编写内容
vim vhost.conf //在vhost.conf里面编写对应的服务名(搜索时候的名字)和链接的root(编写进网站里面的内容),让它存在 即可运用
<virtualhost 192.168.183.141:80>
documentroot /www/haha
servername www.haha.com
</virtualhost>
<virtualhost 192.168.183.141:80>
documentroot /www/heihei
servername www.heihei.com
</virtualhost>
nmcli connection modify ens33 +ipv4.addresses 192.168.183.141/24 //添加一个141的ip地址 可以存入
nmcli connection modify ens33 +ipv4.gateway 192.168.183.2 //添加网关
nmcli connection up ens33 //更新 重启一下
systemctl restart httpd
firewall-cmd --permanent --add-service=http --放行http的防火墙
firewall-cmd --reload
chcon -t httpd_sys_content_t /www/index.html
chcon 修改文件或者目录上下文标签安全的命令 httpd_sys_content_t 需要修改的新类型的标签 /www/index.html 需要修改的标签在该目录下的index.html 文件 修改上下文标签 用于管理 SELinux 环境中文件和目录访问权限的一种方式 如果 SELinux 策略要求文件具有特定的类型标签,而文件当前的类型标签与之不匹配,那么访问该文件可能会被 SELinux 阻止,除非通过策略调整或类型标签的更改来明确允许这种访问。 vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.183.141 www.haha.com
192.168.183.141 www.heihei.com
!!链接一个网站 设置进入密码
vim /etc/httpd/conf/httpd.conf
htpasswd -c **/etc/httpd/chengshuyu** abc --利用htpasswd 创建一个密码文件chengshuyu -c第一次创建
vim /etc/httpd/chengshuyu
htpasswd -c **/etc/httpd/chengshuyu** tom --创建另外一个账号 tom
cat /etc/httpd/chengshuyu
mkdir /usr/local/mysecret --创建一个目录 为了不让普通用户看见 让tom和abc设计的用户看见 则需要输入tom和abc的密码才能够进入
echo "This is mysecret " > /usr/local/mysecret/index.html --添加内容 显示内容
cd /www
mkdir hehe --创建网页 /www/hehe
echo hehe > hehe/index.html --写入内容 使得访问/www/hehe存在内容
vim vhost --编辑配置文件(4个参数!!!authtype、authname、authuserfile、require)
<directory /usr/local/mysecret> --给放秘密的目录定义内容 内容如下
authtype basic --认证类型
authname "请输入密码:" --认证名称 页面提示内容
authuserfile /etc/httpd/chengshuyu --验证用户和密码 为chengshuyu文件
require user abc tom --允许使用者abc和tom
</directory>
<virtualhost 192.168.183.140:80>
documentroot /www/hehe --输入服务的名称之后 进去看到的内容是根据/www/hehe中的内容进行显示
alias /hehe /usr/local/mysecret --当用户访问/hehe时,实际是在访问/usr/local/mysecret
起的一个别名为/hehe
servername www.hehe.com --访问时输入服务的名称
</virtualhost>
systemctl restart httpd --重启服务
!!设置TSL加密 添加证书
cd /etc/httpd/conf.d
dnf install mod_ssl -y ---安装ssl工具 用于加密文件
vim ssl.conf
<VirtualHost _default_:443>
servername www.zhangsan.com
SSLCertificateFile /etc/pki/tls/certs/zsjiami.crt
SSLCertificateKeyFile /etc/pki/tls/private/zsjiami.key
systemctl restart httpd
netstat -lntup | grep httpd --查看监听
cd /etc/pki/tls/certs/:
ll --有一个默认证书 localhost.crt
ll ../private/ --上一级目录有一个默认的key localhost.key 这是默认的 可以自己修改
**//生成钥匙** openssl genrsa > **jiami.key** ---添加一个jiami的钥匙
**//生成证书** openssl req -utf8 -new -key zsjiami.key -x509 -days 100 -out **zsjiami.crt** --添加证书
写入证书相关的信息
ll --查看是否已经存在jiami.key 和jiami.crt
mv jiami.key ../private/--将key拷贝到/private mv复制则private里面就有一个jiami.key和crt
vim ssl.conf --进入ssl中修改
**SSLCertificateFlie**/etc/pki/tsl/certs/localhost.**crt**
**SSLCertificateKeyFile** /etc/pki/tsl/private/localhost.**key**
netstat -lntup | grep httpd --查看监听 :443
cd /etc/httpd/conf.d
vim vhost --写入以下内容关于SSL的部分
<virtualhost 192.168.183.140:443>
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/jiami.crt
SSLCertificateKeyFile /etc/pki/tls/private/jiami.key
documentroot /www/hehe
alias /hehe /usr/local/mysecret
servername www.hehe.com
</virtualhost>
vim /etc/hosts --进行本地解析
!!基于python的动态虚拟主机
dnf install python3-mod_wsgi -y --安装软件模块
cd /var/www/cgi-bin/ --进入需要修改的文件目录下
rz -E --直接将文件拽入
cd /etc/httpd/conf.d
vim vhost
<virtualhost 192.168.183.140:80>
WSGIScriptAlias / /var/www/cgi-bin/haha.wsgi
servername www.ahaha.com
</virtualhost>
vim /etc/hosts ---进行写入本地解析
systemctl restart httpd
curl www.ahaha.com --会显示拽入文件haha.wsgi的内容