自定义配置文件 /etc/httpd/conf.d
文章目录
- 一.基于IP地址的不同虚拟主机
- 1.1.查看自己的IP:
- 1.2.在 /etc/httpd/conf.d 下写配置文件:
- 1.3.添加IP
- 1.4.创建目录以及在该目录下写内容
- 1.5.在网页中访问192.168.111.130
- 1.6.对于1.5的排错
- 二.基于不同端口的虚拟主机
- 2.1基于一的实验,写配置文件
- 2.2 创建目录并写入内容
- 2.3 在配置文件中写监听端口
- 2.4 在防火墙中添加端口
- 2.5 在网页中查看
- 三.基于不同主机名的虚拟主机
- 3.1 基于上面的实验添加不同主机名到配置文件
- 3.2 创建目录以及写入内容
- 3.3查看防火墙状态关闭SELINUX
- 3.4查看httpd服务,如果没有开启需要开启
- 3.5在/etc/hosts文件中添加主机名
- 3.6 在网页中也可以访问自定义的主机名
- 四.基于用户认证的虚拟主机
- 4.1创建用户
- 4.2创建目录并且写入内容
- 4.3 写虚拟配置文件,重启服务
- 4.4在网页中查看结果
- 五.基于python的动态虚拟主机
- 5.1.安装python模块
- 5.2.写脚本内容
- 5.3.修改配置内容,重启服务
- 六.总结
- 七.附录
一.基于IP地址的不同虚拟主机
1.1.查看自己的IP:
1.2.在 /etc/httpd/conf.d 下写配置文件:
vhost是名字,.conf 是后缀名。名字可以任意取,后缀名不能改变
vim vhost.conf 内容:
/www/130和 /www/129 是我们自定义的两个目录
192.168.111.130 是我们之前1步骤查看到的IP
192.168.111.129 是我们添加的IP
写完配置之后,我们就可以发现多了一个vhost.conf 的文件,这个文件就是我们刚刚写的。
补充:
虚拟主机和虚拟机不是一回事
虚拟主机是:
<virtualhost 192.168.24.130:80>
servername 192.168.24.130
documentroot /www/130
</ virtualhost>
虚拟机是:
1.3.添加IP
[root@localhost ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.111.129/24
[root@localhost ~]# nmcli connection up ens160
添加的IP192.168.111.129是vhost中写的IP
看下图,可以发现,已经成功添加了IP192.168.111.129
[root@localhost ~]# systemctl restart httpd 重启一下配置
[root@localhost ~]# netstat -lntup | grep httpd 查看
1.4.创建目录以及在该目录下写内容
[root@localhost ~]# mkdir /www/130
[root@localhost ~]# mkdir /www/129
[root@localhost www]# echo welcome to 130 > /www/130/index.html
[root@localhost www]# echo welcome to 129 > /www/129/index.html
由上图我们可以看出,已经成功创建了/www/130和/www/129这俩个目录,这是步骤1.2中配置文件写的目录。
并且已经在相应的目录下的index.html 中写下了相应的内容
1.5.在网页中访问192.168.111.130
看网页是否会显示之前我们写的welcom to 130
可以看出没有显示,说明出了问题,现在来查看问题出在哪,如果没有问题的伙伴们,这个实验就成功了。
1.6.对于1.5的排错
[root@localhost 130]# systemctl status httpd 查看httpd服务状态
由图片可知,我们写的两个目录都不存在,这时我们重启一下httpd服务,再次查看状态
[root@localhost 130]# systemctl restart httpd
[root@localhost 130]# systemctl status httpd
发现报错没有了。但是在网页中查看,还是没有看到我们的内容welcome to 130,继续排错。
查看日志:
[root@localhost 130]# tail -f /var/log/httpd/access_log
输入这行命令之后,刷新网页,红色的部分就是刷新网页之后显示的,发现也没什么错误
查看另外的日志:
[root@localhost 130]# tail -f /var/log/httpd/error_log
这时我们就可以发现错误了,划红线的意思是在服务配置文件中拒绝了客户端,怎么拒绝的?就是没有给权限。所以需要我们去配置文件当中写上权限。
[root@localhost ~]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim vhost.conf
[root@localhost conf.d]# systemctl restart httpd 再次重启服务
可以看到刚刚的报错没有了。再次打开我们的网页。可以发现成功了
所以,在我们一开始写配置文件的时候就可以把权限写上了。
二.基于不同端口的虚拟主机
2.1基于一的实验,写配置文件
[root@localhost ~]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim vhost.conf
2.2 创建目录并写入内容
[root@localhost conf.d]# cd /www
[root@localhost www]# mkdir 8080
[root@localhost www]# mkdir 9090
[root@localhost www]# echo welcome to 8080 > 8080/index.html
[root@localhost www]# echo welcome to 9090 > 9090/index.html
[root@localhost 8080]# systemctl restart httpd 重启一下服务
[root@localhost 8080]# netstat -lntup | grep httpd 查看httpd端口发现没有8080和9090
2.3 在配置文件中写监听端口
因为配置文件中没有写监听8080和9090的端口,所以,查看端口发现没有8080和9090端口
[root@localhost 8080]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim vhost.conf
[root@localhost conf.d]# systemctl restart httpd 重启一下服务
2.4 在防火墙中添加端口
[root@localhost 8080]# firewall-cmd --permanent --add-port=8080/tcp
[root@localhost 8080]# firewall-cmd --permanent --add-port=9090/tcp
[root@localhost 8080]# firewall-cmd --reload
2.5 在网页中查看
所以,在写配置文件的时候,可以写完整,到这里基于不同端口虚拟主机的实验就做完了。
三.基于不同主机名的虚拟主机
3.1 基于上面的实验添加不同主机名到配置文件
[root@localhost ~]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim vhost.conf
3.2 创建目录以及写入内容
[root@localhost conf.d]# cd /www
[root@localhost www]# mkdir haha
[root@localhost www]# mkdir xm
[root@localhost www]# echo welcome to haha > haha/index.html
[root@localhost www]# echo welcome to xm > xm/index.html
3.3查看防火墙状态关闭SELINUX
[root@localhost haha]# firewall-cmd --list-all
[root@localhost haha]# setenforce 0
3.4查看httpd服务,如果没有开启需要开启
[root@localhost xixi]# systemctl status httpd
我的httpd状态是开启的。如果没有开启,就需要输入命令
[root@localhost www]# systemctl start httpd 进行启动
3.5在/etc/hosts文件中添加主机名
[root@localhost haha]# vim /etc/hosts
ping 我们自定义的主机名,ping的通且是自己的IP地址
还可以使用命令curl www.haha.com 查看内容
3.6 在网页中也可以访问自定义的主机名
根据下图路径选择用Notepda++的方式打开hosts文件,没有Notepad++的可以访问以下链接下载https://download.csdn.net/download/weixin_53308294/85049044
打开后,添加我们自定义的主机名,一定记得保存。
如果保存的时候遇到了以下图片的情况,点是。然后再保存
在网页中访问如下:
试试访问www.xm.com看是什么效果。
到这里基于不同主机名的虚拟主机实验的实验就做完了。
四.基于用户认证的虚拟主机
4.1创建用户
[root@localhost ~]# htpasswd -c /etc/httpd/zhanghao abc
[root@localhost ~]# htpasswd /etc/httpd/zhanghao tom 第二次不用-c
记住密码!!!!
查看 /etc/httpd/zhanghao
[root@localhost ~]# cat /etc/httpd/zhanghao
4.2创建目录并且写入内容
[root@localhost ~]# mkdir /usr/local/mysecret
[root@localhost ~]# echo this is mysecret > /usr/local/mysecret/index.html
4.3 写虚拟配置文件,重启服务
[root@localhost mysecret]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim vhost.conf
authtype 是认证类型 basic 是基本认证类型,也就是账号密码
authname 是认证名称也就是提示的内容
authuserfile 需要认证的目录
require user 需要的用户
写别名:
/mysecret 是路径别名
[root@localhost conf.d]# systemctl restart httpd 重启服务
4.4在网页中查看结果
由下图可以看到,访问www.xm.com/mysecret 的时候会有一个弹窗,需要我们输入用户和密码,把刚刚我们所创建的用户和密码输入,页面就会跳转到下面的第二幅图
五.基于python的动态虚拟主机
5.1.安装python模块
[root@localhost conf.d]# dnf install python3-mod_wsgi -y
5.2.写脚本内容
[root@localhost conf.d]# vim /var/www/cgi-bin/hello.wsgi
def application(environ, start_response):status = '200 OK'output = b'Hello World'response_headers = [('Content-type', 'text/plain'), ('Content-Length', str(len(output)))]start_response(status, response_headers)return [output]
5.3.修改配置内容,重启服务
[root@localhost conf.d]# vim vhost.conf
[root@localhost conf.d]# systemctl restart httpd
网页中查看:
六.总结
1.每次重新启动虚拟机,或者在xshell中重新连接之后,查看getenforce都是Enforcing,在开启httpd之前需要关闭,这样才能开启httpd服务。
如下图所示:
2.写自己自定义的域名的时候,尽量写互联网上没有的,否则,网页上可能没有反应。
一开始我写了一个www.xixi.com 的域名,在网页上没有效果,在互联网上有https://xixi.com这个网站。之后我换了一个www.xm.com的域名之后,在网页上就能看到效果了。
3.每次修改了配置都需要重启httpd服务,确保开启了httpd服务
到这里所有实验就完成了。
七.附录
配置文件中的内容:
listen 8080
listen 9090
<directory /www>allowoverride nonerequire all granted
</directory>
<directory /usr/local/mysecret>
authtype basic
authname "this is mysecret, please input password:"
authuserfile /etc/httpd/zhanghao
require user abc tom
</directory><virtualhost 192.168.111.128:80>servername 192.168.111.128documentroot /www/128
</virtualhost><virtualhost 192.168.111.129:80>servername 192.168.111.129documentroot /www/129
</virtualhost><virtualhost 192.168.111.128:8080>servername 192.168.111.128documentroot /www/8080
</virtualhost>
<virtualhost 192.168.111.128:9090>servername 192.168.111.128documentroot /www/9090
</virtualhost><virtualhost 192.168.111.128:80>servername www.haha.comdocumentroot /www/haha
</virtualhost>
<virtualhost 192.168.111.128:80>servername www.xm.comalias /mysecret /usr/local/mysecretwsgiscriptalias / /var/www/cgi-bin/hello.wsgi
</virtualhost>
自定义配置文件 /etc/httpd/conf.d相关推荐
- linux中httpd配置文件,linux httpd.conf文件配置详解
Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.conf来实现.下面让我们来看看httpd.conf的内容,它主要分成3大部 ...
- Apache主配置文件httpd.conf 详解
2019独角兽企业重金招聘Python工程师标准>>> Apache的主配置文件:/etc/httpd/conf/httpd.conf 默认站点主目录:/var/www/html/ ...
- linux apache 配置文件位置,Apache主配置文件httpd.conf 详解
Apache的主配置文件:/etc/httpd/conf/httpd.conf 默认站点主目录:/var/www/html/ Apache服务器的配置信息全部存储在主配置文件/etc/httpd/co ...
- Apache2 httpd.conf配置文件中文版详解
Apache2 httpd.conf配置文件中文版详解 # # 基于 NCSA 服务的配置文件. # #这是Apache服务器主要配置文件. #它包含服务器的影响服务器运行的配置指令. #参见< ...
- apache配置文件解析(httpd.conf)
详细图解看文章 https://www.cnblogs.com/hh1137054072/p/7612652.html apache httpd.conf配置文件详解(全文翻译) #这是Apache服 ...
- Apache服务器主配置文件 httpd.conf 中文版
Apache服务器主配置文件 httpd.conf 中文版 # 基于 NCSA 服务器的配置文件 由 Rob McCool 编写! # # Apache服务器主配置文件. 包括服务器指令的目录设置. ...
- 第七章httpd.conf主配置文件的详解
版本V1.0 时间2012-10-04 版权GPL 作者itnihao 邮箱 itnihao@qq.com 博客 http://itnihao.blog.51cto.com 如需重新发行,请注明以上信 ...
- apache服务器的配置文件httpd.conf中有很多内容,请解释如下配置项:
例子1: Apache服务器的配置文件httpd.conf中有很多内容,请解释如下配置项: (1)MaxKeepAliveRequests 200 (2)UserDir public_html (3) ...
- linux查看apache配置文件路径,linux 命令行下查看apache配置文件httpd.conf位置
如何用linux命令查看apache配置文件httpd.conf位置,说明如下 输入命令 httpd -V 输出结果 [root@MyServer ~]# httpd -V Server versio ...
- httpd 分页_更改 Apache httpd.conf 配置文件
提示:如果在虚拟主机商配置,请直接配置第三.四步,因为支持 .htaccess 的空间已经配置好了前面两步. 用编辑器打开 Apache 配置文件 httpd.conf(该文件位于 Apache 安装 ...
最新文章
- 格式化的盘要怎么寻回文件
- Exchange安装
- 想学好Java开发,你要做到这三点
- boost::intrusive::splay_set用法的测试程序
- 学院后勤报修系统php_如何有效提升医院医疗设备故障报修问题?
- 李秀计算机文化基础,计算机文化基础(李秀)绪论.pptx
- Python+django网页设计入门(12):使用Bootstrap和jQuery
- 同步类容器与并发类容器
- 【WPF】非UI线程操作UI
- 子空间方法——MUSIC算法
- KYLO的Java并发编程知识总结
- onBlur和onChange冲突解决方法
- 俄罗斯方块是java_俄罗斯方块(java版)
- Linux 中断管理之ARM GIC V3 初始化
- TOP100summit分享实录 | 如何构建一套全链路的故障追踪和故障自愈系统?
- win休眠模式+定时休眠
- 微机原理与接口技术——A.微型计算机基础(4)
- matlab函数merge_MATLAB数据合并方法
- OJ每日一练——点和正方形的关系
- 进出口贸易管理系统丨汇信
热门文章
- 搞定检索式对话系统的候选response检索--使用pysolr调用Solr
- 霍乱时期的爱情——简写(下)
- x20手机科学计算机,360手机N4 跑分遭泄露 Helio X20名不虚传
- 安装 office2021
- 【2019-2020春学期】数据库作业13:SQL练习8 - CHECK / CONSTRAINT / TRIGGER / PROCEDURE/ FUNCTION
- 爬虫第3课 -豆瓣TOP250电影爬取
- IOS开发之——TOM猫(19)
- 白泽六足机器人_ros_v1——单腿RVIZ仿真
- JavaScript中0.1 + 0.2 等于多少
- 共享个人整理的Python问题,有源码,分析过程,解决方案,还有时间戳做间隔