http服务可以让我们通过域名或者ip去访问不同的信息,在linux系统环境下如何实现http服务的基础搭建?
1.下载安装httpd服务软件:
yum install httpd -y
systemctl start httpd 启动httpd服务
下载安装httpd服务以后,系统中会出现/var/www/html/这个目录,这是httpd服务的默认发布目录,在这个目录下编辑的
文件,就是httpd服务默认发布文件,最开始这个目录下面是没有文件的:
我们可以到/etc/httpd/conf/httpd.conf这个配置文件中查看httpd默认发布文件的文件名,如图为index.html:
vim /var/www/html/index.html 运用vim编辑生成这个文件,自定义编辑内容:
然后保存退出, systemctl restart httpd 重启httpd服务,设置火墙允许http或者直接关闭火墙,然后在另一台ip为同网段的
主机输入本机ip就可以看到文件中编辑的内容:
2.默认发布目录和默认发布文件的更改:
mkdir /westso/html/ -p 新建目录, vim /westos/html/hk 并在新建目录下新建文件,自定义编辑内容:
然后输入ls -dZ /var/www/html/查看默认发布目录的安全上下文,ls -dZ /westos/html/ 查看新建目录安全上下文:
将新建目录及目录下的文件的安全上下文修改为默认发布目录的安全上下文,才能够被selinux通过:
vim /etc/httpd/conf/httpd.conf 编辑配置文件,将新建目录和文件信息编辑进去:
将新建文件名编辑到配置文件中:
systemctl restart httpd 重新启动httpd服务
在另一台ip为同网段的主机输入本机ip就可以看到新建文件中编辑的内容:
3.访问权限的限定与加密:
编辑/etc/httpd/conf/httpd.conf配置文件可以设定访问权限,下图设定为只有ip为172.25.254.121的本机可以访问:
然后重启httpd服务, systemctl restart httpd
然后本机可以访问:
ip和本机同网段的主机访问步时看不到文件中编辑内容:
设置加密访问:
cd /etc/httpd/conf/ 切换到/etc/httpd/conf目录下, 输入htpasswd -cm authfile harry(自定义) 创建用户并设置密码,
如果已经建立了用户,在建立新用户的时候要将‘-cm ’中的c去掉,不然会覆盖掉之前建立的用户
输入 cat authfile 可查看用户及经过加密处理的密码:
然后编辑配置文件 /etc/httpd/conf/httpd.conf ,编辑内容如下,并将 Require all granted 注释掉,不然加密无效:
然后重启httpd服务, systemctl restart httpd
访问本机ip,就会出现如下图所示的情况:
输入用户和密码,才可看到网页中的内容:
4.创建http的虚拟主机:可以让我们的一台服务器在被访问不同域名的时候显示
不同的主页
输入 ss -antlpe | grep httpd 查看httpd服务默认端口为80:
建立测试域名及文件:
创建下图中的目录和文件并编辑:
编辑hk.test.com下的文件index.html:
继续新建编辑文件 vim /var/www/test/mk.test.com/index.html :
然后切换到 /etc/httpd/conf.d/目录下:
新建并编辑: vim default.conf 内容如下图及如示,DocumentRoot 为查看文件路径,CustomLog 为日志路径,
combined 表示将日志类型整合到一起,没有指定的域名都默认会访问到/var/www/html下的默认文件内容:
然后新建编辑 vim hk.conf
继续新建编辑: vim mk.conf
然后在要访问的主机上编辑本地解析文件: vim /etc/hosts
然后访问文件中的三个域名,看到不同内容:
由于没有指定,所以只能访问到默认目录下默认文件内容: