【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]# 
相关推荐
运维&陈同学39 分钟前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
旦沐已成舟1 小时前
DevOps-Jenkins-新手入门级
服务器
周末不下雨2 小时前
win11+ubuntu22.04双系统 | 联想 24 y7000p | ubuntu 22.04 | 把ubuntu系统装到1T的移动固态硬盘上!!!
linux·运维·ubuntu
软件技术员2 小时前
Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书
服务器·网络协议·ssl
哎呦喂-ll2 小时前
Linux进阶:环境变量
linux
Rverdoser2 小时前
Linux环境开启MongoDB的安全认证
linux·安全·mongodb
PigeonGuan2 小时前
【jupyter】linux服务器怎么使用jupyter
linux·ide·jupyter
一条晒干的咸魚3 小时前
【Web前端】创建我的第一个 Web 表单
服务器·前端·javascript·json·对象·表单
东华果汁哥3 小时前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器