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

完毕!

相关推荐
dsywws1 小时前
Linux学习笔记之vim入门
linux·笔记·学习
幺零九零零2 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
free3 小时前
netstat中sendq/recvq用于排查发送端发送数据的问题
服务器
小林熬夜学编程3 小时前
【Linux系统编程】第四十一弹---线程深度解析:从地址空间到多线程实践
linux·c语言·开发语言·c++·算法
力姆泰克3 小时前
看电动缸是如何提高农机的自动化水平
大数据·运维·服务器·数据库·人工智能·自动化·1024程序员节
力姆泰克3 小时前
力姆泰克电动缸助力农业机械装备,提高农机的自动化水平
大数据·服务器·数据库·人工智能·1024程序员节
程思扬4 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节
sun0077004 小时前
拷贝 cp -rdp 和 cp -a
linux·运维·服务器
wowocpp4 小时前
ubuntu 22.04 server 安装 anaconda3
linux·运维·ubuntu
乡村农夫4 小时前
cuda 环境搭建
linux