【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
yum install -y httpd
(2)启动Apache
systemctl start httpd
显示如图:证明 Apache已正常启动
(3)配置文件
a.Apache主配置文件:vim /etc/httpd/conf/httpd.conf信息:
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.基于主机头的虚拟主机
<VirtualHost *:自定义端口>
ServerName www.circle.com #在ServerName后加上你的网站名称
ServerAdmin admin@circle.com #在ServerAdmin后加上网站管理员的电子邮件地址,方便别人有问题是可以联络网站管理员
DocumentRoot /var/www/html #在DocumentRoot后加上存放网站内容的目录路径(用户的个人目录)
</VirtualHost>
(4)开始演示:
a.新建两个网站根目录
[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
[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. 新建虚拟机的配置文件
[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.重启服务
systemctl restart httpd
e.为了解析出circle.com本地域名:需要修改named配置文件
vi /etc/named.conf
修改后的文件内容如下
[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";
};
[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.访问我们定义的域名:结果如下
[root@server1 named]# curl www.circle.com
this is web1;
[root@server1 named]# curl admin.circle.com
this is web2;
[root@server1 named]#