【Liunx】部署WEB服务:Apache

【Liunx】部署WEB服务:Apache

概述

  • HTTP协议,全称HyperText Transfer Protocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。HTTP的重要应用之一是WWW服务。设计HTTP协议最初目的就是提供一种发布和接收HTML(一种页面标记语言)页面的方法(请求返回)。
  • HTTP协议是互联网上常用的通信协议之一。它有很多的应用,但最流行的就是用于Web浏览器和Web服务器之间的通信,即WWW应用或称Web应用。
  • WWW,全称World Wide Web,常称为Web,中文译为"万维网"。它是目前互联网上最受用户欢迎的信息服务形式。HTTP协议的WWW服务应用的默认端口为80(端口的概念),另外的一个加密的WWW服务应用https的默认端口为443,主要用于网银,支付等和钱相关的业务。当今,HTTP服务,WWW服务,Web服务三者的概念已经混淆了,都是指当下最常见的网站服务应用。

Apache

1.介绍

  • Apache是世界使用排名第一的Web服务器软件。它可以运行在凡乎所有广泛使用的计算机平台上。
  • Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自"a patchy server"的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

2.Apache文件路径

  • 软件包名: httpd
  • 默认Web目录: /var/www/html
  • 配置文件主目录: /etc/httpd/
  • 主配置文件: /etc/httpd/conf/httpd.conf

3.Apache详解

(1)安装Apache

bash 复制代码
yum install -y httpd

(2)启动Apache

bash 复制代码
systemctl start httpd

显示如图:证明 Apache已正常启动

(3)配置文件

a.Apache主配置文件:vim /etc/httpd/conf/httpd.conf信息:
bash 复制代码
ServerRoot "/etc/httpd" //服务器安装的路径
Listen 80 //监听端口
Include conf.modules.d/*.conf //引用 conf.modules.d下的.conf模块配置文件
User apache //运行用户apache
Group apache //运行用户组
ServerAdmin root@localhost //如果Apache运行出错发送的邮箱地址
<Directory /> //项目根目录,访问根目录拒绝
    AllowOverride none
    Require all denied 
</Directory>
DocumentRoot "/var/www/html" //网站主目录
<Directory "/var/www"> // /var/www 允许访问
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>
<Directory "/var/www/html">
	Options Indexes FollowSymLinks //运行使用连接等方式
    AllowOverride None
    Require all granted
</Directory>
<IfModule dir_module>
    DirectoryIndex index.html //默认访问页面index.html
</IfModule>
<Files ".ht*">
    Require all denied //禁用
</Files>
ErrorLog "logs/error_log" //错误日志
LogLevel warn //警告等级
<IfModule log_config_module> //日志格式
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" combined
</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>
<IfModule mime_module> //运行文件类型
    TypesConfig /etc/mime.type
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8 //默认编码

<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf //引入conf.d/的所有.conf文件
b.基于主机头的虚拟主机
bash 复制代码
<VirtualHost *:自定义端口>	
ServerName www.circle.com #在ServerName后加上你的网站名称
ServerAdmin admin@circle.com #在ServerAdmin后加上网站管理员的电子邮件地址,方便别人有问题是可以联络网站管理员
DocumentRoot /var/www/html #在DocumentRoot后加上存放网站内容的目录路径(用户的个人目录)
</VirtualHost>

(4)开始演示:

a.新建两个网站根目录
bash 复制代码
[root@server1 conf.d]# mkdir /var/www/html/web{1,2}
[root@server1 conf.d]# cd /var/www/html/
[root@server1 html]# ls -l
总用量 0
drwxr-xr-x 2 root root 101  8月  2 14:12 exam
drwxr-xr-x 2 root root   6 11月 14 06:34 web1
drwxr-xr-x 2 root root   6 11月 14 06:34 web2
b.分别在两个网站根目录新建两个index.html
bash 复制代码
[root@server1 html]# vi web1/index.html
[root@server1 html]# vi web2/index.html
[root@server1 html]# ls web1
index.html
[root@server1 html]# ls web2
index.html
c. 新建虚拟机的配置文件
bash 复制代码
[root@server1 html]# cd /etc/httpd/conf.d/
[root@server1 conf.d]# vi web1.conf
[root@server1 conf.d]# vi web2.conf
[root@server1 conf.d]# cat web1.conf 
<VirtualHost 192.168.122.1:80>
	ServerName www.circle.com
	ServerAdmin admin@circle.com
	DocumentRoot /var/www/html/web1
</VirtualHost>
[root@server1 conf.d]# cat web2.conf 
<VirtualHost 192.168.122.1:80>
        ServerName admin.circle.com
        ServerAdmin admin@circle.com
        DocumentRoot /var/www/html/web2
</VirtualHost>
d.重启服务
bash 复制代码
systemctl restart httpd
e.为了解析出circle.com本地域名:需要修改named配置文件
bash 复制代码
vi /etc/named.conf

修改后的文件内容如下

bash 复制代码
[root@server1 named]# cat /etc/named.conf 
options {
	listen-on port 53 { 192.168.122.1; };
	directory "/var/named";
	allow-query { any; };
};

zone "uos.com" IN {
	type	master;
	file	"uos.com.db";
};

zone "circle.com" IN {
        type    master;
        file    "circle.com.db";
};

zone	"."	IN {
	type	hint;
	file	"named.ca";
};
bash 复制代码
[root@server1 named]# cp -p uos.com.db circle.com.db
[root@server1 named]# ls -l
总用量 28
-rw-r----- 1 root  named  246 11月 13 16:29 circle.com.db
drwxrwx--- 2 named named    6 10月 12  2022 data
drwxrwx--- 2 named named    6 10月 12  2022 dynamic
-rw-r----- 1 root  named 2253 10月 12  2022 named.ca
-rw-r----- 1 root  named  152 10月 12  2022 named.empty
-rw-r----- 1 root  named  152 10月 12  2022 named.localhost
-rw-r----- 1 root  named  168 10月 12  2022 named.loopback
drwxrwx--- 2 named named    6 10月 12  2022 slaves
-rw-r----- 1 root  named  246 11月 13 16:29 uos.com.db
-rw-r----- 1 root  named  238 11月 13 16:07 uos.com.files
[root@server1 named]# vi circle.com.db 
[root@server1 named]# cat circle.com.db 
$TTL 1D
@	IN SOA	ns.circle.com root.ns.circle.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
	IN	NS	ns.circle.com.
ns	IN	A	192.168.122.1
www	IN	A	192.168.122.1
admin	IN	A	192.168.122.1
oa	IN	A	192.168.122.1
[root@server1 named]# systemctl restart named
f.访问我们定义的域名:结果如下
bash 复制代码
[root@server1 named]# curl www.circle.com
this is web1;
[root@server1 named]# curl admin.circle.com
this is web2;
[root@server1 named]# 
相关推荐
王哲晓26 分钟前
Linux通过yum安装Docker
java·linux·docker
gopher951139 分钟前
linux驱动开发-中断子系统
linux·运维·驱动开发
码哝小鱼1 小时前
firewalld封禁IP或IP段
linux·网络
鼠鼠龙年发大财1 小时前
【x**3专享】安装SSH、XFTP、XShell、ARM Linux
linux·arm开发·ssh
nfgo1 小时前
快速体验Linux发行版:DistroSea详解与操作指南
linux·ubuntu·centos
河南宽信李工1503806 16861 小时前
测绘航空摄影专项资质在洛阳市的获取流程
服务器
Rookie_explorers2 小时前
Linux下go环境安装、环境配置并执行第一个go程序
linux·运维·golang
学习向前冲2 小时前
AD域控服务器
运维·服务器
weixin_424215842 小时前
shell运算实战案例-KFC点餐系统
linux·centos
青柠视频云2 小时前
青柠视频云——视频丢包(卡顿、花屏、绿屏)排查
服务器·网络·音视频