养成日记16
网站:web网络服务,用户通过浏览器访问互联网的资源
web网络服务,被动服务,接收用户主机发起的请求给予响应
使用协议:
http:超文本传输协议
https:安全超文本传输协议
web网络服务提供程序有IIS(window)、Nginx和Apache等
Apache部署静态网站
安装apache
1.配置软件仓库
#mkdir -p /media/cdrom
#mount /dev/cdrom /media/cdrom
#vim /etc/yum.repos.d/rhel8.repo
[BaseOS]
name=BaseOS
baseurl=file:///media/cdrom/BaseOS
enabled=1
gpgcheck=0
[AppStream]
name=AppStream
baseurl=file:///media/cdrom/AppStream
enabled=1
gpgcheck=0
2.#yum install httpd
#dnf install httpd 推荐
3.#systemctl start httpd #启动
#systemctl enable httpd #添加到开机启动项
配置httpd服务文件参数
主要配置文件
服务目录 /etc/httpd
主配置文件 /etc/httpd/conf/httpd.conf 修改后重启服务后才能生效
网站数据目录/var/www/html
访问日志 /var/log/httpd/access_log
错误日志 /var/log/httpd/error_log
常用参数
服务目录 ServerRoot
管理员邮箱 ServerAdmin
运行服务的用户 User
运行服务的用户组 Group
网站服务器域名 ServerName
网站数据目录 DocumentRoot
监听IP和端口 Listen
默认索引页面 DirectorIndex
错误日志文件 ErrorLog
访问日志文件 CustomLog
网页超时时间 Timeout 默认300秒
#systemctl restart httpd 重启服务
#systemctl reload httpd 重新加载配置文件,小概率会加载失败
SELinux安全子系统
让程序只能做自己该做的事情
配置模式:
enforcing:强制,拦截不合法请求
permissive:温和,遇到不合法请求只发警告不拦截
diable:关闭
查看SELinux运行状态
#getenforce
#setenforce 0 禁用| 1 启用 临时有效,重启失效
查看SELinux安全上下文
#ls -Zd /var/www/html -Z 查看文件安全上下文 -d 查看对象为文件夹
管理
semanage:管理SELinux策略
格式:semanage [参数] [文件]
参数:
-l 查询
-a 添加
-m 修改
-d 删除
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*
#restorecon -Rv /home/wwwroot/ 使配置的SELinux安全上下文立即生效
个人用户主要功能
1.开启,httpd服务默认不开启个人用户主页功能
#vim /etc/httpd/conf.d/userdir.conf
17 UserDir disabled
24 UserDir public_html
2.在用户家目录中建立用于保存网站数据的目录及首页文件
#su - user
$mkdir public_html
$echo "This is user's website" > public_html/index.html
$chmod -R 755 /home/user
3.重启httpd
#systemctl restart httpd
#getsebool -a | grep http 过滤http协议相关的安全策略
#setsebool -P httpd_enable_homedirs=on 允许httpd_enable_homedirs策略,-P:永久且立即生效
密码功能
1.htpasswd生成密码数据库
#htpasswd -c /etc/httpd/passwd user -c:第一次生成
2.编辑个人用户功能配置文件
#vim /etc/httpd/conf.d/userdir.conf
31-37
<Directory "/home/*/public_html">
AllowOverride all
authuserfile "/etc.httpd/passwd" #之前生成的密码验证文件保存路径
authname "My privately website" #当用户访问网站时的提示信息
authtype basic #验证方式为密码模式
require user user #访问网站时需要验证的用户名称
#systemctl restart httpd
虚拟主机功能
Apache的虚拟主机功能是服务器基于用户请求的不同的IP地址、主机域名或端口号,提供多个网站同时为外部提供访问服务的技术。
1.基于IP地址
第一步:创建多个首页
#mkdir -p /home/wwwroot/10
#mkdir -p /home/wwwroot/20
#mkdir -p /home/wwwroot/30
echo "ip:192.168.1.10" > /home/wwwroot/10/index.html
echo "ip:192.168.1.20" > /home/wwwroot/20/index.html
echo "ip:192.168.1.30" > /home/wwwroot/30/index.html
第二步:修改配置文件
#vim /etc/httpd/conf/httpd.conf
132
<VirtualHost 192.168.1.10>
DocumentRoot /home/wwwroot/10
ServerName www.linuxprobe.com
<Directory /home/wwwroot/10>
AllowOverride None
Require all granted
</Dircrtory>
</VirtualHost>
<VirtualHost 192.168.1.20>
DocumentRoot /home/wwwroot/20
ServerName www.linuxcool.com
<Directory /home/wwwroot/20>
AllowOverride None
Require all granted
</Dircrtory>
</VirtualHost>
<VirtualHost 192.168.1.30>
DocumentRoot /home/wwwroot/30
ServerName www.linuxdown.com
<Directory /home/wwwroot/30>
AllowOverride None
Require all granted
</Dircrtory>
</VirtualHost>
#systemctl restart httpd
第三步:配置SELinux安全上下文
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10*
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20*
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30*
#restorecon -Rv /home/wwwroot
基于主机域名
第一步:手动定义ip地址和域名之间的对应关系,保存并退出后立即生效
#vim /etc/hosts
192.168.1.10 www.linuxprobe.com www.linuxcool.com www.linuxdown.com
第二步:创建多个首页
#mkdir -P /home/wwwroot/linuxprobe
#mkdir -P /home/wwwroot/linuxcool
#mkdir -P /home/wwwroot/linuxdown
#echo "www.linuxprobe.com" > /home/wwwroot/linuxprobe/index.html
#echo "www.linuxcool.com" > /home/wwwroot/linuxcool/index.html
#echo "www.linuxdown.com" > /home/wwwroot/linuxdown/index.html
第三步:修改httpd配置文件
#vim /etc/httpd/conf/httpd.conf
132
<VirtualHost 192.168.1.10>
Documentroot /home/wwwroot/linuxprobe
ServerName www.linuxprobe.com
<Directory /home/wwwroot/linuxprobe>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.10>
Documentroot /home/wwwroot/linuxcool
ServerName www.linuxcool.com
<Directory /home/wwwroot/linuxcool>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.10>
Documentroot /home/wwwroot/linuxdown
ServerName www.linuxdown.com
<Directory /home/wwwroot/linuxdown>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
#systemctl restart httpd
第四步:配置SELinu安全上下文
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxprobe
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxprobe/*
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxcool
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxcool/*
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxdown
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxdown/*
#restorecon -Rv /home/wwwroot
基于端口号
第一步:创建多个首页
#mkdir -P /home/wwwroot/61111
#mkdir -P /home/wwwroot/62222
#mkdir -P /home/wwwroot/63333
#echo "port:61111" > /home/wwwroot/61111/index.html
#echo "port:62222" > /home/wwwroot/62222/index.html
#echo "port:63333" > /home/wwwroot/63333/index.html
第二步:修改httpd配置文件,添加监听端口号
#vim /etc/httpd/conf/httpd.conf
46
Listen 61111
Listen 62222
Listen 63333
第三步:修改httpd配置文件,添加基于端口号的虚拟主机网站参数
#vim /etc/httpd/conf/httpd.conf
134
<VirtualHost 192.168.1.10:61111>
DocumentRoot /home/wwwroot/61111
ServerName www.linuxprobe.com
<Directory /home/wwwroot/61111>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.10:62222>
DocumentRoot /home/wwwroot/62222
ServerName www.linuxcool.com
<Directory /home/wwwroot/62222>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.10:63333>
DocumentRoot /home/wwwroot/63333
ServerName www.linuxdown.com
<Directory /home/wwwroot/63333>
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
第四步:配置SELinux安全上下文
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/61111
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/61111/*
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/62222
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/62222/*
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/63333
#semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/63333/*
#restorecon -Rv /home/wwwroot/
第五步:SELinux放行61111、62222、63333端口
#semanage port -a -t http_port_t -P tcp 61111
#semanage port -a -t http_port_t -P tcp 62222
#semanage port -a -t http_port_t -P tcp 63333
#semanage port -l | grep http
#systemctl restart httpd
Apache访问控制
第一步:新建一个目录
#mkdir /var/www/html/server
#echo "Successful" > /var/www/html/server/index.html
第二步:配置httpd配置文件
#vim /etc/httpd/conf/httpd.conf
161指定浏览器访问
<Directory "/var/www/html/server">
SetEnvIf User-Agent "Firefox" ff=1 #仅允许Firefox浏览器访问
Order allow,deny
Allow from env=ff
</Directory>
指定IP地址访问
<Directory "/var/www/html/server">
Order allow,deny
Allow from 192.168.1.10
</Directory>
#systemctl restart httpd
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程