当前位置: 首页 > news >正文

apache详细配置

一、apache服务实验

1、基于域名访问的虚拟主机

  • 就是同一个ip地址,2个域名

  • 就是访问a.com返回一个页面,访问b.com返回另外一个页面

[root@master conf.d]# pwd
/etc/httpd/conf.d
[root@master conf.d]# cat a.conf 
<virtualhost 192.168.50.10:80> # 定义的虚拟主机documentroot /www/a  # 定义的网页文件目录servername www.a.com  # 定义的域名
</virtualhost><directory /www/a>  # 定义关于这个目录的内容require all granted
</directory><virtualhost 192.168.50.10:80>documentroot /www/bservername www.b.com
</virtualhost><directory /www/b>require all granted
</directory>
  • 创建文件和防火墙放行和selinux

mkdir /www/a -p
mkdir -p /www/becho a > a/index.html
echo b > b/index.html[root@master /]# semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?'
[root@master /]# restorecon -RFv /www
Relabeled /www from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
Relabeled /www/a from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
Relabeled /www/a/index.html from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
Relabeled /www/b from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0
Relabeled /www/b/index.html from unconfined_u:object_r:default_t:s0 to system_u:object_r:httpd_sys_content_t:s0[root@master /]# firewall-cmd --permanent --add-service=http
success
[root@master /]# firewall-cmd --reload
success# 重启httpd服务
[root@master conf.d]# systemctl restart httpd
[root@master conf.d]# systemctl enable httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
  • 客户端访问
# 客户端域名解析
[root@node1 ~]# echo "192.168.50.10 www.a.com" >> /etc/hosts
[root@node1 ~]# echo "192.168.50.10 www.b.com" >> /etc/hosts
[root@node1 ~]# curl www.a.com
a
[root@node1 ~]# curl www.b.com
b

2、基于端口和域名访问的虚拟主机

  • 就是根据不同的端口访问得到不同的页面
[root@master conf.d]# cat a.conf 
Listen 8080  # 定义一个端口
<virtualhost 192.168.50.10:8080> # 相当于是这个主机发布的一个网站documentroot /www/aservername www.a.com
</virtualhost><directory /www/a>require all granted
</directory>Listen 8081
<virtualhost 192.168.50.10:8081>documentroot /www/bservername www.b.com
</virtualhost><directory /www/b>require all granted
</directory>
  • 添加2个端口,标签类型为httpd
# 添加2个端口
[root@master conf.d]# semanage port -a 8080 -t http_port_t -p tcp
Port tcp/8080 already defined, modifying instead
[root@master conf.d]# netstat -pant|grep 8080
[root@master conf.d]# semanage port -a 8081 -t http_port_t -p tcp
Port tcp/8081 already defined, modifying instead# 防火墙放行
[root@master conf.d]# firewall-cmd --permanent --add-port=8080/tcp
success
[root@master conf.d]# firewall-cmd --permanent --add-port=8081/tcp
success
[root@master conf.d]# firewall-cmd --reload 
success
  • 客户端访问
[root@node1 ~]# curl www.a.com:8080
a
[root@node1 ~]# curl www.a.com:8081
b
[root@node1 ~]# curl www.b.com:8081
b

3、搭建个人网站

  • 个人网站配置文件
[root@master conf.d]# vim userdir.conf UserDir enabledUserDir public_html
  • 创建用户网页文件
# 创建这个目录,标签会自动的改变
[root@master devops]# ll public_html/ -dZ
drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_user_content_t:s0 24 Sep  9 20:58 public_html/# 其他用户要有权限访问才行
[root@master devops]# ll -d 
drwx-----x. 6 devops devops 177 Sep  9 20:58 .
  • selinux放行
semanage boolean -l | grep homesetsebool -P httpd_enable_homedirs on
  • 客户端访问
http://192.168.50.10/~devops

4、加密访问+显示自定义网页内容

  • 也就是通过443端口访问

1)安装加密的包

[root@controller conf.d]# yum -y install mod_ssl

2)生成私钥

#genrsa 就是generate产生一个rsa的私钥
[root@controller ~]# openssl genrsa > tlsweb.key

3)生成一个证书请求文件

[root@controller ~]# openssl req -new -key tlsweb.key > tlsweb.csr
req ---就是创建证书和管理证书的子命令-new --就是创建一个新的csr-key 就是基于这个密钥来创建一个证书请求文件

4)生成一个证书文件

[root@controller /]# openssl req -x509 -days 365 -in tlsweb.csr -key tlsweb.key > tlsweb.crt-x509 就是将请求文件转换成一个自签证书文件
-days 证书保存时间
-in 用到的证书请求文件
-key 用到的私钥文件

5)移动到存放私钥和证书的文件的路径和修改加密的文件

[root@controller tls]# cp /root/tlsweb.key ./private/
[root@controller tls]# cp /root/tlsweb.crt certs/ 
修改加密文件SSLCertificateFile /etc/pki/tls/certs/tlsweb.crt
SSLCertificateKeyFile /etc/pki/tls/private/tlsweb.key

6)防护墙和selinux的放行

[root@controller /]# firewall-cmd --permanent --add-port=443/tcp
[root@controller /]# firewall-cmd --reload#证书的selinux类型一致
[root@controller tls]# ll -Z
total 16
lrwxrwxrwx. 1 root root system_u:object_r:cert_t:s0    49 Jun 23  2020 cert.pem -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
drwxr-xr-x. 2 root root system_u:object_r:cert_t:s0    72 Dec 24 15:09 certs
-rw-r--r--. 1 root root system_u:object_r:cert_t:s0   412 Mar 26  2021 ct_log_list.cnf
drwxr-xr-x. 2 root root system_u:object_r:cert_t:s0     6 Mar 26  2021 misc
-rw-r--r--. 1 root root system_u:object_r:cert_t:s0 11225 Mar 26  2021 openssl.cnf
drwxr-xr-x. 2 root root system_u:object_r:cert_t:s0    24 Dec 24 15:09 private
[root@controller tls]#

7)重启httpd服务

8)访问

出现了不能连接的话,就是防护墙的问题https://192.168.10.110点击高级选项,接受,显示的就是红帽官网的内容

自定义网页内容的文件

1)就是在conf.d这个目录下创建一个文件

<virtualhost 192.168.10.110:443>documentroot /www/sslSSLEngine on  # 开启ssl功能SSLCertificateFile /etc/pki/tls/certs/tlsweb.crt  # 请求文件SSLCertificateKeyFile /etc/pki/tls/private/tlsweb.key  # 私钥文件路径
</virtualhost>
<directory /www/ssl>require all granted
</directory>

2)创建网页内容的文件

[root@controller www]# mkdir ssl
[root@controller www]# ls
8088  8089  a  b  sss
[root@controller www]# echo "welcome ssl" >> ssl/index.html
[root@controller www]#

3)访问

就能显示加密后的网页内容了  

http://www.hskmm.com/?act=detail&tid=338

相关文章:

  • 9.8总结
  • 相似了
  • 在 AlmaLinux 9 使用 Podman 部署 Redis 7.4.5 并优化内核参数
  • 抖音批量视频下载工具源码C#源码|自动提取DY视频的软件工具
  • AI 检测:精准攻克米饭盒质检难题,赋能食品生产
  • 2025年9月北京中学集训随笔
  • 最新可用Docker镜像加速站点
  • 第一周作业
  • 基于调度场算法将中缀表达式转换为后缀表达式
  • 来此加密实现SSL证书自动申请+自动部署
  • lc1022-从根到叶的二进制数之和
  • 2025.9.9——1橙
  • SIM /api/function/execute 代码执行漏洞
  • C#/.NET/.NET Core技术前沿周刊 | 第 53 期(2025年9.1-9.7)
  • 3
  • linux下安装pycharm时,中文无法显示的问题
  • 学习
  • Docker,Containerd配置私有Harbor仓库和Notary服务器
  • Ubuntu安装notary
  • Ubuntu安装containerd
  • 你的错误处理一团糟-是时候修复它了-️
  • TRVCOST - Travelling cost 题解
  • 我重新制作动画系统的思路
  • 第一次作业:自我介绍+软工5问
  • 第一篇练习博客
  • 原型设计实用干货!3款热门AI生成原型图软件横向测评
  • Python Flask框架入门_3.通过token认证验证API的访问权限(数据库版本)
  • 港科 Tower A 宿舍凝水之谜
  • Transformer 模型(能理解“句子顺序”和“上下文”的神经网络架构)
  • 题解:P3546 [POI 2012] PRE-Prefixuffix