前言
身为一个三年的运维工程师,从开发转测开再转运维,都是不断学习的过程,未必开发才是最优秀的,找到适合自己的职业不断深耕,你也会在自己的行业大放光彩,本系列依照《Linux就该这么学》系列随书学习练习操作,将一些课本上不顺畅的地方,全部以最简方式免费开源展示给大家,资源大家可以自行百度,也希望大家多关注刘遄老师的第二版关于centos8的丛书,学习最前沿的Linux相关技术。
常用命令汇总
网站服务程序
Apache 服务程序安装
yum install httpd
运行程序
systemctl enable httpd
开机自启动程序
systemctl enable httpd
然后把本机地址录入到随便一个网站上,就会有如下的画面
(如果访问不了就关闭防火墙和selinux,命令如下:
[root@bogon ~]# vim /etc/selinux/config
将文件内SELINUX=XX这行改为 SELINUX=disabled或者SELINUX=permissive,然后保存退出
[root@bogon ~]# setenforce 0
[root@bogon ~]# systemctl stop firewalld
[root@bogon ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.)
配置服务文件参数
linux的配置目录如下:
配置 httpd 服务程序时最常用的参数以及用途描述如下:
vim /etc/httpd/conf/httpd.conf
把网站数据存放到/var/www/html 目录中,首页面名称是 index.html
保存网站数据的目录修改为/home/wwwroot 目录步骤:
1.创建文件夹
[root@bogon ~]# mkdir /home/wwwroot
[root@bogon ~]# echo "The New Web Directory" > /home/wwwroot/index.html
2.修改配置文件
[root@bogon ~]# vim /etc/httpd/conf/httpd.conf
3.重启httpd
[root@bogon ~]# systemctl restart httpd
个人用户主页功能
httpd 服务程序提供的个人用户主页功能,以让系统内所有的用户在自 己的家目录中管理个人的网站
1.修改配置文件
vim /etc/httpd/conf.d/userdir.conf
2.子用户家目录配置相关文件(我的子用户是root1,你们的可以创建)
[root@bogon home]# su - root1
Last login: Tue Jun 13 18:41:18 PDT 2023 on :0
[root1@bogon ~]$ mkdir public_html
[root1@bogon ~]$ echo "This is root1 home" > public_html/index.html
[root1@bogon ~]$ chmod -Rf 755 /home/root1
最后一条命令要注意跟自己的用户名目录一致,别复制我的root1
3.重新启动 httpd 服务,打开子用户家目录
[root1@bogon ~]# systemctl restart httpd
在浏览器的地址栏中输入网址,其格式为“网址/~ 用户名
我这个是基于把selinux关闭之后的结果,如果开着selinux配的话需要加以下条件
[root@bogon ~]# setsebool -P httpd_enable_homedirs=off
通过身份验证加口令
1.生成验证码
[root@bogon ~]# htpasswd -c /etc/httpd/passwd root1
New password:
输入网页验证码
Re-type new password:
输入网页验证码
Adding password for user root1
2.编辑个人用户主页功能的配置文件
vim /etc/httpd/conf.d/userdir.conf
...
AllowOverride all
authuserfile "/etc/httpd/passwd"
authtype basic
require user root1
...
此处的用户名是上边设置的root1,密码是网页验证码,不是root1的用户密码
虚拟主机功能
利用虚拟主机功能,可以把一台处于运行状态的物理服务器分割成多个“虚拟的服 务器(现在都用docker)
基于IP地址划分
我们给一台服务器准备多套网卡,添加方式非常简单,如图所示:
添加完毕后查看一下相关的网络管理服务是否运行,然后用ifconfig查询一下
[root@bogon ~]# systemctl status NetworkManager
1.创建首页文件
[root@bogon ~]# mkdir -p /home/wwwroot/1
[root@bogon ~]# mkdir -p /home/wwwroot/2
[root@bogon ~]# echo "IP:192.168.227.130" > /home/wwwroot/1/index.html
[root@bogon ~]# echo "IP:192.168.227.132" > /home/wwwroot/2/index.html
2.配置httpd文件
[root@bogon ~]# vim /etc/httpd/conf/httpd.conf
添加信息如下
...
113
114 DocumentRoot /home/wwwroot/1
115 ServerName www.weihongbin1.com
116
117 AllowOverride None
118 Require all granted
119
120
121
122
123 DocumentRoot /home/wwwroot/2
124 ServerName www.weihongbin2.com
125
126 AllowOverride None
127 Require all granted
128
129
...
[root@bogon ~]# systemctl restart httpd.service
基于主机域名
1.修改主机ip域名
[root@bogon ~]# vim /etc/hosts
192.168.10.10 www.weihongbin1.com bbs.weihongbin.com abc.weihongbin.com
2.建目录文件
[root@bogon ~]# mkdir -p /home/wwwroot/www
[root@bogon ~]# mkdir -p /home/wwwroot/bbs
[root@bogon ~]# mkdir -p /home/wwwroot/abc
[root@bogon ~]# echo "www.weihongbin.com" > /home/wwwroot/www/index.html
[root@bogon ~]# echo "bbs.weihongbin.com" > /home/wwwroot/bbs/index.html
[root@bogon ~]# echo "abc.weihongbin.com" > /home/wwwroot/abc/index.html
3.改httpd配置文件
[root@bogon ~]# vim /etc/httpd/conf/httpd.conf
...
113
114 DocumentRoot /home/wwwroot/www
115 ServerName www.weihongbin.com
116
117 AllowOverride None
118 Require all granted
119
120
121
122 DocumentRoot /home/wwwroot/bbs
123 ServerName bbs.weihongbin.com
124
125 AllowOverride None
126 Require all granted
127
128
129
130 DocumentRoot /home/wwwroot/abc
131 ServerName abc.weihongbin.com
132
133 AllowOverride None
134 Require all granted
135
136
...
[root@bogon ~]# systemctl restart httpd.service
主机看的话加个hosts:
192.168.227.130 www.weihongbin1.com bbs.weihongbin.com abc.weihongbin.com
www的被占域名了,其他的展示效果如下:
基于端口号
1.创建文件
[root@bogon ~]# mkdir -p /home/wwwroot/6111
[root@bogon ~]# mkdir -p /home/wwwroot/6222
[root@bogon ~]# echo "port:6111" > /home/wwwroot/6111/index.html
[root@bogon ~]# echo "port:6222" > /home/wwwroot/6222/index.html
2.配置httpd文件
[root@bogon ~]# vim /etc/httpd/conf/httpd.conf
...
42 Listen 80
43 Listen 6111
44 Listen 6222
...
114
115 DocumentRoot "/home/wwwroot/6111"
116
117 AllowOverride None
118 Require all granted
119
120
121
122
123 DocumentRoot "/home/wwwroot/6222"
124
125 AllowOverride None
126 Require all granted
127
128
...
3.添加端口号(这两个端口不在范围内)
[root@bogon ~]# semanage port -a -t http_port_t -p tcp 6111
[root@bogon ~]# semanage port -a -t http_port_t -p tcp 6222
[root@bogon ~]# systemctl restart httpd.service
Apache 访问控制
指定相关浏览器及IP访问,其他的浏览器IP无法访问
1.建文件
[root@bogon ~]# mkdir -p /home/wwwroot/server
[root@bogon ~]# echo "Successful" > /home/wwwroot/server/index.html
2.配置httpd文件
[root@bogon ~]# vim /etc/httpd/conf/httpd.conf
...
114
115 SetEnvIf User-Agent "Firefox" ff=1
116 Order allow,deny
117 Allow from env=ff
118
...
[root@bogon ~]# systemctl restart httpd.service
火狐
加入第二段代码后
[root@bogon ~]# vim /etc/httpd/conf/httpd.conf
...
120
121 Order allow,deny
122 Allow from 192.168.227.137
123
...
[root@bogon ~]# systemctl restart httpd.service
其他非火狐浏览器均如下图:
结语
简问简答
1.什么是 Web 网络服务?
答:一种允许用户通过浏览器访问到互联网中各种资源的服务。
2.相较于 Nginx 服务程序,Apache 服务程序最大的优势是什么?
答:Apache 服务程序具备跨平台特性、安全性,而且拥有快速、可靠、简单的 API 扩展。
3.httpd 服务程序没有检查到首页文件,会提示报错信息吗?
答:不会,httpd 服务在未找到网站首页文件时,会向访客显示一个默认页面。
4.简述 Apache 服务主配置文件中全局配置参数、区域配置参数和注释信息的作用。
答:全局配置参数是一种全局性的配置参数,可作用于对所有的子站点;区域配置参数则 是单独针对于每个独立的子站点进行设置的;而注释信息一般是对服务程序的功能或某一 行参数进行介绍。
5. Apache 服务程序可以基于哪些资源来创建虚拟主机网站呢?
答:可以基于 IP 地址、主机名(域名)或者端口号创建虚拟主机网站。
6.相对于基于 IP 地址和基于主机名(域名)配置的虚拟主机网站来说,使用端口号配置虚 拟主机网站有哪些特点?
答:在使用端口号来配置虚拟主机网站时,必须要考虑到 SELinux 域对 httpd 服务程序所 用端口号的控制策略,还要在 httpd 服务程序的主配置文件中使用 Listen 参数来开启要监 听的端口号。