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查看

完毕!

相关推荐
A小辣椒2 天前
TShark:Wireshark CLI 功能
linux
A小辣椒2 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao3 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334663 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪3 天前
linux 拷贝文件或目录到指定的位置
linux
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush44 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5204 天前
Linux 11 动态监控指令top
linux