httpd服务
1:搭建个人网站
步骤:
1)修改个人网站的配置文件userdir.conf这个文件
2)创建个人网页文件
3)防火墙和selinux的放行
4)访问
操作:
1)修改个人网站的配置文件userdir.conf这个文件
1 2 | UserDir enabled 开启个人网页访问 UserDir public_html 个人网页存放文件 |
2)创建个人网页文件
1 2 3 4 5 6 7 8 9 10 | #权限要放开,允许其他用户访问 [root@controller q7] # ll -R .: total 0 drwx---r-x. 2 root root 24 Dec 23 21:24 public_html . /public_html : total 4 -rwx---r-x. 1 root root 11 Dec 23 21:24 index.html [root@controller q7] # |
3)防火墙和selinux的放行
1 2 3 4 5 6 7 8 9 10 11 | [root@controller q7] # firewall-cmd --permanent --add-service=http [root@controller q7] # firewall-cmd --reload #selinux [root@controller q7] # semanage boolean -l |grep home [root@controller q7] # setsebool -P httpd_enable_homedirs on 还有个人网页文件的selinux上下文类型,在创建时,就自动替换成那个httpd类型 [root@controller public_html] # ll -dZ drwx---r-x. 2 root root unconfined_u:object_r:httpd_user_content_t:s0 24 Dec 23 21:24 . |
4)访问
在浏览器中输入http://192.168.10.110/~q7就能显示网页内容
2:基于域名访问的虚拟主机
虚拟主机是一个技术,就是一个服务器可以虚拟出多个主机,每个主机有不同的域名
步骤:
1)修改主配置文件
2)域名解析
3)创建网页文件
4)防火墙和selinux的放行
5)访问
1)修改主配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #www.a.com的配置文件 [root@controller conf.d] # ls a.conf autoindex.conf php.conf README userdir.conf welcome.conf <virtualhost 192.168.10.110:80> documentroot /www/a servername www.a.com < /virtualhost > <directory /www/a > require all granted < /directory > #www.b.com的配置文件 <virtualhost 192.168.10.110:80> documentroot /www/b servername www.b.com < /virtualhost > <directory /www/b > require all granted < /directory > |
修改了配置文件,还要重启服务
2)域名解析
1 2 | 192.168.10.110 www.a.com 192.168.10.110 www.b.com |
3)创建网页文件
1 2 3 4 | [root@controller /] # mkdir -p /www/a [root@controller /] # mkdir -p /www/b [root@controller /] # echo "welcome www.a.com" >> /www/a/index.html [root@controller /] # echo "welcome www.b.com" >> /www/b/index.html |
4)防火墙和selinux的放行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #网页文件的上下文类型 [root@controller www] # semanage fcontext -a -t httpd_sys_content_t '/www(/.*)?' [root@controller www] # 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@controller www] # #防火墙 [root@controller conf.d] # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens160 ens192 sources: services: cockpit dhcpv6-client http samba ssh ports: protocols: masquerade: no forward-ports: source -ports: icmp-blocks: rich rules: [root@controller conf.d] # |
5)访问
在客户端上访问的话,要添加域名解析,才行
1 2 3 4 5 | [root@nodes1 ~] # curl www.a.com welcome www.a.com [root@nodes1 ~] # curl www.b.com welcome www.b.com [root@nodes1 ~] # |
windows中的话,要修改域名解析的配置文件,就可以实现访问
3:基于端口来访问虚拟主机+域名
就是用访问80,8088,8089端口显示不同的网页(域名也可以)
步骤:
1)修改httpd主配置文件和添加2个端口
2)创建端口访问的配置文件
3)创建网页文件
4)防火墙和selinux的放行
5)访问
1)修改httpd主配置文件和添加2个端口
如果不添加端口的话,就会报错
1 2 3 4 5 6 7 8 9 10 | #修改主配置文件 Listen 80 Listen 8088 Listen 8089 #添加端口和类型 [root@controller conf] # semanage port -a 8088 -t http_port_t -p tcp [root@controller conf] # semanage port -a 8089 -t http_port_t -p tcp [root@controller conf] # semanage port -l|grep 8088 http_port_t tcp 8089, 8088, 80, 81, 443, 488, 8008, 8009, 8443, 9000 [root@controller conf] # |
2)创建端口的配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 | <virtualhost 192.168.10.110:8088> documentroot /www/8088 < /virtualhost > <directory /www/8088 > require all granted < /directory > <virtualhost 192.168.10.110:8089> documentroot /www/8089 < /virtualhost > <directory /www/8089 > require all granted < /directory > |
重启httpd服务
3)创建网页配置文件
1 2 3 4 5 6 7 8 9 10 11 | [root@controller www] # mkdir 8088 [root@controller www] # mkdir 8089 [root@controller www] # echo "welcome 8088 port " > 8088/index.html [root@controller www] # echo "welcome 8089 port " > 8089/index.html [root@controller www] # ll -Z total 0 drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 24 Dec 24 14:35 8088 drwxr-xr-x. 2 root root unconfined_u:object_r:httpd_sys_content_t:s0 24 Dec 24 14:35 8089 drwxr-xr-x. 2 root root system_u:object_r:httpd_sys_content_t:s0 24 Dec 24 14:15 a drwxr-xr-x. 2 root root system_u:object_r:httpd_sys_content_t:s0 24 Dec 24 14:10 b [root@controller www] # |
4)防火墙和selinux的放行
之前就已经全部都放行了,就只剩下一个端口没有放行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [root@controller conf.d] # firewall-cmd --permanent --add-port=8088/tcp success [root@controller conf.d] # firewall-cmd --permanent --add-port=8089/tcp success [root@controller conf.d] # firewall-cmd --reload success [root@controller conf.d] # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: ens160 ens192 sources: services: cockpit dhcpv6-client http samba ssh ports: 8088 /tcp 8089 /tcp protocols: masquerade: no forward-ports: source -ports: icmp-blocks: rich rules: [root@controller conf.d] # |
5)访问
1 2 3 4 5 6 7 | [root@nodes1 ~] # curl www.a.com:80 welcome www.a.com [root@nodes1 ~] # curl www.a.com:8088 welcome 8088 port [root@nodes1 ~] # curl www.a.com:8089 welcome 8089 port [root@nodes1 ~] # |
ip也行,
4:加密访问+显示自定义的网页内容
加密比较的安全(443)
安全性:加密的访问通过SSL/TLS协议对传输的数据进行加密,使得数据在传输过程中无法被非法获取或窃取。而不加密的访问则没有这种保护,数据传输过程中存在被截获的风险。
传输数据:加密的访问在数据传输过程中,数据被加密,以密文的形式进行传输,可以防止数据在传输过程中被窃取或篡改。而不加密的访问则以明文形式传输数据,任何截获数据的人都可以直接读取其内容。
浏览器行为:对于加密的访问,大部分现代浏览器会在地址栏显示一个绿色的锁状图标,表示当前连接是安全的。而不加密的访问则不会显示这种标识,可能会让用户误以为连接不安全。
步骤:
1)安装加密的包
2)生成私钥
3)生成证书请求文件
4)生成证书(私钥+证书请求文件)
5)移动到存放私钥和证书文件的路径下和修改加密的文件
6)防护墙和selinux的设置
7)重启服务
1)安装加密的包
1 | [root@controller conf.d] # yum -y install mod_ssl |
2)生成私钥
1 2 | #genrsa 就是generate产生一个rsa的私钥 [root@controller ~] # openssl genrsa > tlsweb.key |
3)生成一个证书请求文件
1 2 3 4 5 6 | [root@controller ~] # openssl req -new -key tlsweb.key > tlsweb.csr req ---就是创建证书和管理证书的子命令 -new --就是创建一个新的csr -key 就是基于这个密钥来创建一个证书请求文件 |
4)生成一个证书文件
1 2 3 4 5 6 | [root@controller /] # openssl req -x509 -days 365 -in tlsweb.csr -key tlsweb.key > tlsweb.crt -x509 就是将请求文件转换成一个自签证书文件 -days 证书保存时间 - in 用到的证书请求文件 -key 用到的私钥文件 |
5)移动到存放私钥和证书的文件的路径和修改加密的文件
1 2 | [root@controller tls] # cp /root/tlsweb.key ./private/ [root@controller tls] # cp /root/tlsweb.crt certs/ |
修改加密文件
1 2 | SSLCertificateFile /etc/pki/tls/certs/tlsweb .crt SSLCertificateKeyFile /etc/pki/tls/private/tlsweb .key |
6)防护墙和selinux的放行
1 2 3 4 5 6 7 8 9 10 11 12 13 | [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这个目录下创建一个文件
1 2 3 4 5 6 7 8 9 | <virtualhost 192.168.10.110:443> documentroot /www/ssl SSLEngine on SSLCertificateFile /etc/pki/tls/certs/tlsweb .crt SSLCertificateKeyFile /etc/pki/tls/private/tlsweb .key < /virtualhost > <directory /www/ssl > require all granted < /directory > |
2)创建网页内容的文件
1 2 3 4 5 | [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)访问
就能显示加密后的网页内容了
总结:
httpd只管有没有执行的权限(就是能不能进入目录的权限),不管有没有读写的权限
就是都可以自定义网页内容文件,需要很多的参数(熟悉)
高级的操作:允许哪些网段来访问,不能访问
还需要去搜一下(高级的操作)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步