Apache服务的搭建与配置,虚拟主机(基于域名 基于端口 基于Ip)

1.目前最主流的三个Web服务器是Apache、Nginx、 IIS。

  1. WEB 服务应用层使用HTTP协议。

3.web服务器:apache nginx IIS #端口全部为80!https为443端口

4.Apache是世界使用排名第一的Web服务器软件

5.Apache的主程序名叫httpd。

安装apache

# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
关闭防火墙与selinux    老生常谈的事了

# yum install -y httpd   ----通过域名下载安装httpd
# systemctl start httpd   ----运行httpd

# netstat -lntp | grep 80 #查看apache端口
tcp6       0      0 :::80                   :::*                    LISTEN      2776/httpd
#端口80.可以改
查看端口说明httpd运行起来了,也可以用命令 systemctl status httpd  查看状态

http的默认发布网站的页面是 : /var/www/html

同时这个默认也可以改,下面解释完http的主配置文件里内容,会讲解如何改

apache的主配置文件在 /etc/httpd/conf/httpd.conf

次配置文件在 /etc/httpd/conf.d/test.conf

apache目录介绍

apache的工作目录:

conf 存储配置文件

conf.d 存储配置子文件

logs 存储日志

modules 存储模块

run 存储Pid文件,存放的pid号码。是主进程号

认识主配置文件

[root@localhost ~]# cd /etc/httpd/conf
[root@localhost conf]# ls
httpd.conf  httpd.conf.back  httpd.conf.rpmsave  magic
[root@localhost conf]# vim httpd.conf

进入以后会有很多注释 空格 影响观看,可以输入下面命令 清楚文件里面的注释与空格

 # sed -i.back '/#.*/d' httpd.conf
 # sed -i '/^$/d' httpd.conf

主配置文件内容

ServerRoot "/etc/httpd"       #定义工作目录
Listen 80                     #监听端口
Include conf.modules.d/*.conf
User apache                   # 子进程用户,有可能被人改称www账户
Group apache                  # 子进程的组
ServerAdmin root@localhost    # 设置管理员邮件地址
<Directory /> 
    AllowOverride none
    Require all denied
</Directory>

DocumentRoot "/web"   ##### 发布网站的默认目录,想改改这里。
<Directory "/var/www">   # 网站容器开始标识
    AllowOverride None
    Require all granted
</Directory>
<Directory "/web">
    Options Indexes FollowSymLinks   #找不到主页时,链接到网站目录以外,如测试页面
    AllowOverride None  # 对网站设置特殊属性:none不设置特殊属性,all允许
<RequireAll>
Require not  ip 10.36.192.35
Require all granted    # granted表示允许所有人访问,denied表示拒绝所有人访问

</RequireAll>
</Directory>  	# 容器结束
<IfModule dir_module>
    DirectoryIndex index.html  	# 定义主页文件,会自动访问该文件。

访问控制

准备测试:

在默认发布页面

# echo test1 > /var/www/html/index.html #编写测试文件

测试:

可以直接编辑apache的主配置文件,允许所有主机访问

# vim /etc/httpd/conf/httpd.conf

重启服务:

# systemctl restart httpd

设置IP可以查看,那些拒绝查看

<RequireAl1>
Require all granted      ----所有ip都可以查看
</RequireA11>

<RequireAl1>
Require all  denied      -----所有ip都不能查看
</RequireA11>

<RequireAl1>
Requier not ip 10.36.192.** ----禁止此ip查看,其他ip都可以查看
Require all granted
</RequireA11>

<RequireAl1>
Require  ip 10.36.192.*    -----只有这个ip可以查看
</RequireA11>

记得重启服务:

# systemctl restart httpd

修改默认网站发布目录:

 # vim /etc/httpd/conf/httpd.conf   ---主配置文件
119  DocumentRoot "/web"           	# 修改网站根目录为/web
131  <Directory "/web">              # 把这个也对应的修改为/web

# mkdir /web    #创建定义的网站发布目录
   
# echo "这是新修改的网站根目录/web" > /web/index.html #创建测试页面

# systemctl restart httpd      #重启服务

虚拟主机

1.基于端口

也即是改变端口,域名与ip不变,域名也可以之间删除

首先改主配置文件里的端口号

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf    ----进入主配置文件


ServerRoot "/etc/httpd"
Listen 81    ----改端口
Listen 82
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost

保存退出

到次配置文件里面修改

[root@localhost ~]# vim /etc/httpd/conf.d/test.conf 


<VirtualHost *:81>    ----之前是80改成81,修改端口
  DocumentRoot /web   ----新的默认发布页面
<Directory "/web/">    发布页面下的文件有index.html
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:82>    ----之前是80改成82,修改端口
  DocumentRoot /web2   ----新的默认发布页面
<Directory "/web2/">     
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>

[root@localhost web]# ls
index.html
[root@localhost web]# cd /web2
[root@localhost web2]# ls
index.html

重启服务

[root@localhost ~]# systemctl restart httpd

访问: 10.36.192.65:81

访问10.36.192.65:82

2.基于ip

也就是改变ip,端口和域名不变,域名可以删除不写

进入主配置文件修改改回端口

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf   ---进入主配置文件,将端口号改成80

获取第二个ip

语法: ip a a 新ip dev ens33

删除获取的新ip语法: ip a d 新ip dev ens33

[root@localhost ~]# ip a a 10.36.192.226/24 dev ens33
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:9b:1b:e2 brd ff:ff:ff:ff:ff:ff
    inet 10.36.192.65/24 brd 10.36.192.255 scope global noprefixroute dynamic ens33
       valid_lft 255369sec preferred_lft 255369sec
    inet 10.36.192.226/24 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::9213:ce82:fc94:fb11/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

进入次配置文件

[root@localhost ~]# vim /etc/httpd/conf.d/test.conf 

<VirtualHost 10.36.192.65>  ----这样修改结果是ip为65可以访问web的页面
  DocumentRoot /web
<Directory "/web/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>

<VirtualHost 10.36.192.226>   ----这样修改时ip为226可以访问web2页面
  DocumentRoot /web2
<Directory "/web2/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>

重启服务

[root@localhost ~]# systemctl restart httpd

ip 10.36.192.65查看


ip10.36.192.226查看

3.基于域名

改变域名 ,端口及ip不变

进入次配置文件修改

[root@localhost ~]# vim /etc/httpd/conf.d/test.conf 

<VirtualHost *:80>
  DocumentRoot /web
ServerName www.zyq.com  ----输入域名www.zyq.com可以查看web的页面
<Directory "/web/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot /web2   
ServerName www.yq.com    ----输入域名www.yq.com可以查看web2的页面
<Directory "/web2/">
  AllowOverride None
  Require all granted
</Directory>
</VirtualHost>

重启服务:

[root@localhost ~]# systemctl restart httpd

配置域名解析

在wind电脑上面打开C:\Windows\System32\drivers\etc\hosts文件。可以用管理员身份打开

用www.zyq.com查看

用www.yq.com查看

完毕!

相关推荐
木子Linux28 分钟前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
mit6.82433 分钟前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
鹏大师运维35 分钟前
聊聊开源的虚拟化平台--PVE
linux·开源·虚拟化·虚拟机·pve·存储·nfs
watermelonoops42 分钟前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin
不惑_1 小时前
小白入门 · 腾讯云轻量服务器部署 Hadoop 3.3.6
服务器·hadoop·腾讯云
阿甘知识库1 小时前
宝塔面板跨服务器数据同步教程:双机备份零停机
android·运维·服务器·备份·同步·宝塔面板·建站
滴水之功2 小时前
VMware OpenWrt怎么桥接模式联网
linux·openwrt
ldinvicible2 小时前
How to run Flutter on an Embedded Device
linux
YRr YRr3 小时前
解决Ubuntu 20.04上编译OpenCV 3.2时遇到的stdlib.h缺失错误
linux·opencv·ubuntu
认真学习的小雅兰.3 小时前
如何在Ubuntu上利用Docker和Cpolar实现Excalidraw公网访问高效绘图——“cpolar内网穿透”
linux·ubuntu·docker