【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]# 
相关推荐
wdxylb1 小时前
云原生俱乐部-shell知识点归纳(1)
linux·云原生
飞雪20072 小时前
Alibaba Cloud Linux 3 在 Apple M 芯片 Mac 的 VMware Fusion 上部署的完整密码重置教程(二)
linux·macos·阿里云·vmware·虚拟机·aliyun·alibaba cloud
路溪非溪2 小时前
关于Linux内核中头文件问题相关总结
linux
海绵不是宝宝8174 小时前
连接远程服务器上的 jupyter notebook,解放本地电脑
服务器·jupyter·github
Lovyk5 小时前
Linux 正则表达式
linux·运维
Fireworkitte6 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9006 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char6 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
繁星¹⁸⁹⁵8 小时前
通过update-alternatives可以实现cuda的多版本切换
服务器
淮北也生橘128 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习