• 【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
    
    • 1

    (2)启动Apache

    systemctl start httpd
    
    • 1

    在这里插入图片描述

    显示如图:证明 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文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    b.基于主机头的虚拟主机
    <VirtualHost *:自定义端口>	
    ServerName www.circle.com #在ServerName后加上你的网站名称
    ServerAdmin admin@circle.com #在ServerAdmin后加上网站管理员的电子邮件地址,方便别人有问题是可以联络网站管理员
    DocumentRoot /var/www/html #在DocumentRoot后加上存放网站内容的目录路径(用户的个人目录)
    </VirtualHost>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    (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  82 14:12 exam
    drwxr-xr-x 2 root root   6 1114 06:34 web1
    drwxr-xr-x 2 root root   6 1114 06:34 web2
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    d.重启服务
    systemctl restart httpd
    
    • 1
    e.为了解析出circle.com本地域名:需要修改named配置文件
    vi /etc/named.conf
    
    • 1

    修改后的文件内容如下

    [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";
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    [root@server1 named]# cp -p uos.com.db circle.com.db
    [root@server1 named]# ls -l
    总用量 28
    -rw-r----- 1 root  named  246 1113 16:29 circle.com.db
    drwxrwx--- 2 named named    6 1012  2022 data
    drwxrwx--- 2 named named    6 1012  2022 dynamic
    -rw-r----- 1 root  named 2253 1012  2022 named.ca
    -rw-r----- 1 root  named  152 1012  2022 named.empty
    -rw-r----- 1 root  named  152 1012  2022 named.localhost
    -rw-r----- 1 root  named  168 1012  2022 named.loopback
    drwxrwx--- 2 named named    6 1012  2022 slaves
    -rw-r----- 1 root  named  246 1113 16:29 uos.com.db
    -rw-r----- 1 root  named  238 1113 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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    f.访问我们定义的域名:结果如下
    [root@server1 named]# curl www.circle.com
    this is web1;
    [root@server1 named]# curl admin.circle.com
    this is web2;
    [root@server1 named]# 
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    SpringSecurity + jwt + vue2 实现权限管理 , 前端Cookie.set() 设置jwt token无效问题(已解决)
    人工智能驱动的自然语言处理:解锁文本数据的价值
    vue window.print()打印多页页面指定内容 纯前端
    在JavaScript中,什么是尾递归优化(tail call optimization)?
    MySQL的`count(expr)`函数选择指南
    浙江大学百人计划研究员申文博:容器场景下的内核安全
    外卖系统源码,搭建同城点餐配送服务平台
    【Head First Java 笔记】引用变量
    Keil 5 或者Keil 4自定义主题颜色100%成功
    继承day01
  • 原文地址:https://blog.csdn.net/sinat_36528886/article/details/134399132