欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

httpd服务

程序员文章站 2022-06-12 13:30:06
...

httpd服务

httpd简介

  • httpd是Apache超文本传输协议(HTTP)服务器的主程序。被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。
  • 通常,httpd不应该被直接调用,而应该在类Unix系统中由apachectl调用,在Windows中作为服务运行,也就是说httpd服务可以跨平台使用。
    • 网站的实现方式
      • 在Linux中可以用httpd、nginx、tengin(nginx的升级版)、tomcat等来搭建网站服务
      • 在Windows中可用IIS来实现网站的搭建

httpd版本

httpd的两大经典版本,httpd-2.2和httpd-2.4。

  • Redhat6系列的版本默认提供的是httpd-2.2版本的rpm包
  • Redhat7系列的版本默认提供的是httpd-2.4版本的rpm包

httpd的特性

httpd有很多特性,下面主要介绍httpd-2.2版本和httpd-2.4版本各自的特性。

注:2.4版本包含2.2版本的所有特性

版本 特性
2.2 事先创建进程
按需维持适当的进程
模块化设计,核心比较小,各种功能通过模块添加(包括PHP),支持运行时配置,支持单独编译模块
支持多种方式的虚拟主机配置,如基于ip的虚拟主机,基于端口的虚拟主机,基于域名的虚拟主机等
支持https协议(通过mod_ssl模块实现)
支持用户认证
支持基于IP或域名的ACL访问控制机制
支持每目录的访问控制(用户访问默认主页时不需要提供用户名和密码,但是用户访问某特定目录时需要提供用户名和密码)
支持URL重写
支持MPM(Multi Path Modules,多处理模块)。用于定义httpd的工作模型(单进程、单进程多线程、多进程、多进程单线程、多进程多线程)
2.4 httpd-2.4的新特性:
MPM支持运行DSO机制(Dynamic Share Object,模块的动态装/卸载机制),以模块形式按需加载
支持event MPM,eventMPM模块生产环境可用,event MPM(事件模块)
支持异步读写
支持每个模块及每个目录分别使用各自的日志级别
每个请求相关的专业配置,使用来配置
增强版的表达式分析器
支持毫秒级的keepalive timeout(长连接超时)
基于FQDN的虚拟主机不再需要NameVirtualHost指令
支持用户自定义变量
支持新的指令(AllowOverrideList)
降低对内存的消耗
  • keepalive:长连接,连接建立后会等一段时间然后自动断开,而短连接是建立连接后立即传输数据然后断开连接
工作模型 工作方式
prefork 多进程模型,预先生成进程,一个请求用一个进程响应,一个主进程负责生成n个子进程,子进程也称为工作进程,每个子进程处理一个用户请求,即使没有用户请求,也会预先生成多个空闲进程,随时等待请求到达,最大不会超过1024个
worker 基于线程工作,一个请求用一个线程响应(启动多个进程,每个进程生成多个线程)
event 基于事件的驱动,一个进程处理多个请求

httpd-2.4新增的模块

httpd-2.4在之前的版本基础上新增了几大模块

模块 功能
mod_proxy_fcgi 反向代理时支持apache服务器后端协议的模块
mod_ratelimit 提供速率限制功能的模块
mod_remoteip 基于ip的访问控制机制被改变,不再支持使用Order,Deny,Allow来做基于IP的访问控制

fcgi:fastcgi,通用网关协议,前端和后端进行联系的一种协议


httpd基础

httpd自带的工具程序

工具 功能
htpasswd basic认证基于文件实现时,用到的帐号密码生成工具
apachectl httpd自带的服务控制脚本,支持start,stop,restart
apxs 由httpd-devel包提供的,扩展httpd使用第三方模块的工具
rotatelogs 日志滚动工具
suexec 访问某些有特殊权限配置的资源时,临时切换至指定用户运行的工具
ab apache benchmark,httpd的压力测试工具
  • 日志滚动
    • 按天生成日志
    • 按大小生产日志
  • 压力测试
    • 模拟多人同时访问服务器,测试服务器的最多能够支持多少人同时在线

rpm包安装的httpd程序环境

文件/目录 对应的功能
/var/log/httpd/access_log 访问日志
/var/log/httpd/error_log 错误日志
/var/www/html/ 站点(网站)文档目录
/usr/lib64/httpd/modules/ 模块文件路径
/etc/httpd/conf/httpd.conf 主配置文件
/etc/httpd/conf.modules.d/*.conf 模块配置文件
/etc/httpd/conf.d/*.conf 辅助配置文件
  • MPM:以DSO(动态加载)机制提供,配置文件为/etc/httpd/conf.modules.d/00-mpm.conf,以.so结尾的文件就是模块
  • 如果/var/www/html/目录下没有文件,则会显示默认首页,如果显示其他页面,要在目录下面新建一个目录,然后把想要显示的的网页的移到到这个目录里面并且改名为index.html即可
[aaa@qq.com ~]# cd /var/www/html/
[aaa@qq.com html]# mkdir test
[aaa@qq.com html]# cd test/
[aaa@qq.com test]# vim index.html 
This is a test page

httpd服务

  • 如果在httpd安装完毕后想要添加其他功能,编译完所需的模块后应该把模块放到/usr/lib64/httpd/modules/目录下面

web相关命令

curl命令

curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议。

  • curl支持的功能
    • https认证
    • http的POST/PUT等方法
    • ftp上传
    • kerberos认证
    • http上传
    • 代理服务器
    • cookies
    • 用户名/密码认证
    • 下载文件断点续传(常用)
    • socks5代理服务器
    • 通过http代理服务器上传文件到ftp服务器

语法:curl [options] [URL …]

  • 常用选项
    • -A/–user-agent < string > #设置用户代理发送给服务器
    • -basic #使用Http基本认证
    • –tcp-nodelay #使用TCP_NODELAY选项
    • -e/–referer < URL > #来源网址
    • –cacert < file > #CA证书(SSL)
    • –compressed #要求返回时压缩的格式
    • -H/–header < line > #自定义请求首部信息传递给服务器
    • -I/–head #只显示响应报文首部信息
    • –limit-rate < rate > #设置传输速度
    • -u/–user < user[:password] > #设置服务器的用户和密码
    • -0/–http1 #使用http 1.0版本,默认使用1.1版本。这个选项是数字0而不是 字母o
    • -o/–output #把输出写到文件中
    • -#/–progress-bar #进度条显示当前的传送状态
//通过curl下载文件
[aaa@qq.com ~]# curl -o wget-1.19.5-8.el8_1.1.x86_64.rpm  http://mirror.centos.org/centos/8/AppStream/x86_64/os/Packages/wget-1.19.5-8.el8_1.1.x86_64.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  7  734k    7 54810    0     0   4094      0  0:03:03  0:00:13  0:02:50  2028
  
  
//通过curl访问网站
[aaa@qq.com ~]# curl https://www.baidu.com

httpd命令

语法:httpd [options]

  • 常用选项

    • -l #查看静态编译的模块,列出核心中编译了哪些模块,它不会列出使用LoadModule指令动态加载的模块,静态模块就是在编译的时候就指定编译的模块,动态模块就是编译安装完后又编译安装的模块
    [aaa@qq.com ~]# httpd -l
    Compiled in modules:
      core.c
      mod_so.c
      http_core.c
    
    • -M #输出一个已经启用的模块列表,包括静态编译在服务器中的模块和作为DSO动态加载的模块
    [aaa@qq.com ~]# httpd -M
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::20c:29ff:fe34:c82. Set the 'ServerName' directive globally to suppress this message
    Loaded Modules:
     core_module (static)           //静态模块
     so_module (static)
     http_module (static)
     access_compat_module (shared)         //动态模块
     actions_module (shared)
     ...
    
    • -v #显示httpd的版本,然后退出
    [aaa@qq.com ~]# httpd -v
    Server version: Apache/2.4.37 (centos)
    Server built:   Jun  8 2020 20:14:33
    
    • -V #显示httpd和apr/apr-util的版本和编译参数,然后退出
    [aaa@qq.com ~]# httpd -V
    Server version: Apache/2.4.37 (centos)
    Server built:   Jun  8 2020 20:14:33
    Server's Module Magic Number: 20120211:83
    Server loaded:  APR 1.6.3, APR-UTIL 1.6.1
    Compiled using: APR 1.6.3, APR-UTIL 1.6.1
    Architecture:   64-bit
    Server MPM:     event
      threaded:     yes (fixed thread count)
        forked:     yes (variable process count)
    Server compiled with....
     -D APR_HAS_SENDFILE
     -D APR_HAS_MMAP
     -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
     -D APR_USE_SYSVSEM_SERIALIZE
     -D APR_USE_PTHREAD_SERIALIZE
     -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
     -D APR_HAS_OTHER_CHILD
     -D AP_HAVE_RELIABLE_PIPED_LOGS
     -D DYNAMIC_MODULE_LIMIT=256
     -D HTTPD_ROOT="/etc/httpd"
     -D SUEXEC_BIN="/usr/sbin/suexec"
     -D DEFAULT_PIDLOG="run/httpd.pid"
     -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
     -D DEFAULT_ERRORLOG="logs/error_log"
     -D AP_TYPES_CONFIG_FILE="conf/mime.types"
     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    
    • -X #以调试模式运行httpd。仅启动一个工作进程,并且服务器不与控制台脱离
    • -t #检查配置文件是否有语法错误,不能检测文件的内容是否有问题
    [aaa@qq.com ~]# httpd -t
    Syntax OK
    

安装httpd

[aaa@qq.com ~]# dnf -y install httpd

//安装完毕后关闭防火墙
[aaa@qq.com ~]# systemctl stop firewalld

//启动httpd服务
[aaa@qq.com ~]# systemctl start httpd
[aaa@qq.com ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-08-25 08:41:15 CST; 15s ago
     Docs: man:httpd.service(8)
 Main PID: 6097 (httpd)
   Status: "Running, listening on: port 80"
    Tasks: 213 (limit: 24854)
   Memory: 35.8M
   CGroup: /system.slice/httpd.service
           ├─6097 /usr/sbin/httpd -DFOREGROUND
           ├─6101 /usr/sbin/httpd -DFOREGROUND
           ├─6102 /usr/sbin/httpd -DFOREGROUND
           ├─6103 /usr/sbin/httpd -DFOREGROUND
           └─6123 /usr/sbin/httpd -DFOREGROUND

Aug 25 08:41:15 cwt systemd[1]: Starting The Apache HTTP Server...
Aug 25 08:41:15 cwt systemd[1]: Started The Apache HTTP Server.
Aug 25 08:41:15 cwt httpd[6097]: Server configured, listening on: port 80

//测试服务是否启动正常,打开浏览器在地址栏输入虚拟机IP地址,虚拟机的IP地址用 ip a命令查看

httpd服务


httpd常用配置

切换使用MPM编辑,/etc/httpd/conf.modules.d/00-mpm.conf文件

LoadModule mpm_NAME_module modules/mod_mpm_NAME.so
NAME有三种:
    prefork
    event
    worker

//只需要把对于的# 号去掉并重启服务就可以了,需要注意的是只能同时只能启用一种工作模式
[aaa@qq.com ~]# vim /etc/httpd/conf.modules.d/00-
00-base.conf      00-lua.conf       00-optional.conf  00-systemd.conf
00-dav.conf       00-mpm.conf       00-proxy.conf     
[aaa@qq.com ~]# vim /etc/httpd/conf.modules.d/00-mpm.conf 
# Select the MPM module which should be used by uncommenting exactly
# one of the following LoadModule lines.  See the httpd.conf(5) man
# page for more information on changing the MPM.

# prefork MPM: Implements a non-threaded, pre-forking web server
# See: http://httpd.apache.org/docs/2.4/mod/prefork.html
#
# NOTE: If enabling prefork, the httpd_graceful_shutdown SELinux
# boolean should be enabled, to allow graceful stop/shutdown.
#
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

# worker MPM: Multi-Processing Module implementing a hybrid
# multi-threaded multi-process web server
# See: http://httpd.apache.org/docs/2.4/mod/worker.html
#
#LoadModule mpm_worker_module modules/mod_mpm_worker.so

# event MPM: A variant of the worker MPM with the goal of consuming
# threads only for connections with active processing
# See: http://httpd.apache.org/docs/2.4/mod/event.html
#
LoadModule mpm_event_module modules/mod_mpm_event.so

访问控制法制

法则 功能
Require all granted 允许所有主机访问
Require all deny 拒绝所有主机访问
Require ip IPADDR 授权指定来源地址的主机访问
Require not ip IPADDR 拒绝指定来源地址的主机访问
Require host HOSTNAME 授权指定来源主机名的主机访问
Require not host HOSTNAME 拒绝指定来源主机名的主机访问
IPADDR的类型 HOSTNAME的类型
IP:192.168.1.1
Network/mask:192.168.1.0/255.255.255.0
Network/Length:192.168.1.0/24
FQDN:特定主机的全名
DOMAIN:指定域内的所有主机

注意:httpd-2.4版本默认是拒绝所有主机访问的,所以安装以后必须做显示授权访问

[aaa@qq.com ~]# ls /var/www/html/
test  xxx

//通过查看日志查看IP地址
[aaa@qq.com ~]# tail /var/log/httpd/access_log 
192.168.86.1 - - [25/Aug/2020:09:23:05 +0800] "GET / HTTP/1.1" 403 4006 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36 Edg/84.0.522.63"

//修改配置文件
[aaa@qq.com ~]# vim /etc/httpd/conf.modules.d/00-mpm.conf 
<Directory "/var/www/html/test">
        <RequireALL>
                Require not ip 192.168.86.1
                Require all granted
        </RequireALL>
</Directory>

//修改之后,重新启动服务
[aaa@qq.com ~]# systemctl restart httpd

httpd服务


虚拟主机:

虚拟机主机分类:

  • 相同IP不同端口
  • 不同IP相同端口
  • 相同IP相同端口不同域名

例:

  • 相同IP不同端口
[aaa@qq.com ~]# vim /etc/httpd/conf/httpd.conf 
ServerName www.example.com:80           //取消这一行的注释信息

//把/usr/share/doc/httpd/httpd-vhosts.conf这个文件复制一份到/etc/httpd/conf.d/下面
[aaa@qq.com conf.d]# cp /usr/share/doc/httpd/httpd-vhosts.conf .
[aaa@qq.com conf.d]# ls
README  autoindex.conf  httpd-vhosts.conf  userdir.conf  welcome.conf

[aaa@qq.com conf.d]# vim httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/var/www/html/test"
    ServerName test.example.com
    ErrorLog "/var/log/httpd/test.example.com-error_log"
    CustomLog "/var/log/httpd/test.example.com-access_log" common
</VirtualHost>

Listen 81                         //81端口默认没有监听,需要手动监听
<VirtualHost *:81>
    DocumentRoot "/var/www/html/xxx"
    ServerName xxx.example.com
    ErrorLog "/var/log/httpd/xxx.example.com-error_log"
    CustomLog "/var/log/httpd/xxx.example.com-access_log" common
</VirtualHost>

//重启服务
[aaa@qq.com conf.d]# systemctl restart httpd

//查看端口是否正常监听
[aaa@qq.com conf.d]# ss -antl
State     Recv-Q     Send-Q          Local Address:Port          Peer Address:Port     
LISTEN    0          128                   0.0.0.0:22                 0.0.0.0:*        
LISTEN    0          128                         *:80                       *:*        
LISTEN    0          128                         *:81                       *:*        
LISTEN    0          128                      [::]:22                    [::]:*        

//创建网页目录并修改属主和属组
[aaa@qq.com html]# mkdir test 
[aaa@qq.com html]# mkdir xxx
[aaa@qq.com html]# chown -R apache.apache test
[aaa@qq.com html]# chown -R apache.apache xxx
[aaa@qq.com test]# echo 'This is a test page' > index.html
[aaa@qq.com xxx]# echo 'hello 123' > index.html

//在浏览器上打开网页测试

httpd服务
httpd服务


  • 不同IP相同端口
[aaa@qq.com ~]# vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost 192.168.86.129:80>
    DocumentRoot "/var/www/html/test"
    ServerName test.example.com
    ErrorLog "/var/log/httpd/test.example.com-error_log"
    CustomLog "/var/log/httpd/test.example.com-access_log" common
</VirtualHost>

<VirtualHost 192.168.86.110:80>
    DocumentRoot "/var/www/html/xxx"
    ServerName xxx.example.com
    ErrorLog "/var/log/httpd/xxx.example.com-error_log"
    CustomLog "/var/log/httpd/xxx.example.com-access_log" common
</VirtualHost>

//修改完后保存配置文件然后重启服务
[aaa@qq.com ~]# systemctl restart httpd

//添加192.168.86.110IP地址
[aaa@qq.com ~]# ip addr add 192.168.86.110/24 dev eth0
[aaa@qq.com ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:34:0c:82 brd ff:ff:ff:ff:ff:ff
    inet 192.168.86.129/24 brd 192.168.86.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 192.168.86.110/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe34:c82/64 scope link 
       valid_lft forever preferred_lft forever
       
//打开浏览器测试

httpd服务

httpd服务


  • 相同IP相同端口不同域名
[aaa@qq.com ~]# vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/var/www/html/test"
    ServerName test.example.com
    ErrorLog "/var/log/httpd/test.example.com-error_log"
    CustomLog "/var/log/httpd/test.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/var/www/html/xxx"
    ServerName xxx.example.com
    ErrorLog "/var/log/httpd/xxx.example.com-error_log"
    CustomLog "/var/log/httpd/xxx.example.com-access_log" common
</VirtualHost>

//修改完毕后保存配置文件,然后重启服务
[aaa@qq.com ~]# systemctl restart httpd

//因为配置文件中的域名不存在,也没有DNS服务器所以无法解析,所以我们需要模拟这杨一个环境,DNS服务器在解析域名的时候,会查看hosts文件里面的映射关系,所以我们需要去修改这个配置文件,注意是修改物理机的hosts的文件而不是虚拟机

在Windows中hosts文件的位置在:C:\Windows\System32\drivers\etc
在MAC中hosts的文件位置在:/etc/hosts
在hosts中添加两行内容:
192.168.86.129        test.example.com
192.168.86.110        xxx.example.com

//打开浏览器测试

httpd服务

httpd服务


SSL证书:

SSL证书需要购买,因为是虚拟环境,所以我们可以自己生成一个证书

  • 启用模块:编辑/etc/httpd/conf.modules.d/00-ssl.conf文件,添加下面这行,如果已经有了但是注释了,则取消注释即可,这个模块默认没有安装,需要先安装
[aaa@qq.com ~]# yum -y install mod_ssl

LoadModule ssl_module modules/mod_ssl.so
  • openssl实现私有CA,CA的配置文件:/etc/pki/tls/openssl.cnf

    • CA生成一对**
    [aaa@qq.com ~]# cd /etc/pki/CA/             //在Redhat8上CA目录没有需要手动创建
    [aaa@qq.com CA]# mkdir private
    [aaa@qq.com CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048)     //生成**,括号必须要
    [aaa@qq.com CA]# openssl rsa -in private/cakey.pem -pubout          //提取公钥,这步可以跳过
    
    • CA生成自签署证书
    [aaa@qq.com CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365[aaa@qq.com CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:CN                     //国家的名字,简写
    State or Province Name (full name) []:HB                  //省份的名字
    Locality Name (eg, city) [Default City]:WH                //城市的名字
    Organization Name (eg, company) [Default Company Ltd]:test.example.com                //公司的域名
    Organizational Unit Name (eg, section) []:test.example.com    //单位的名字
    Common Name (eg, your name or your server's hostname) []:test.example.com    //主机的名字
    Email Address []:aaa@qq.com       //邮箱
    
    [aaa@qq.com CA]# openssl x509 -text -in cacert.pem        //查看证书的内容,这步可以跳过
    

    注意:在真实的环境中,签署证书的时候要按照真是的环境填写证书的内容

    • 在CA目录下创建certs newcerts crl目录,并生成***
    [aaa@qq.com CA]# mkdir certs newcerts crl
    [aaa@qq.com CA]# touch index.txt && echo 01 > serial
    
    
    • 客户端(例如httpd服务器)生成**
    [aaa@qq.com CA]# cd /etc/httpd && mkdir ssl && cd ssl
    [aaa@qq.com ssl]# (umask 077;openssl genrsa -out httpd.key 2048)
    
    • 客户端生成证书签署请求
    [aaa@qq.com ssl]# openssl req -new -key httpd.key -days 365 -out httpd.csr
    Ignoring -days; not generating a certificate
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:HB
    Locality Name (eg, city) [Default City]:WH
    Organization Name (eg, company) [Default Company Ltd]:test.example.com
    Organizational Unit Name (eg, section) []:test.example.com
    Common Name (eg, your name or your server's hostname) []:test.example.com
    Email Address []:aaa@qq.com
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:                         //是否需要给证书设置密码,可以直接回车跳过
    An optional company name []:
    
    • 客户端把证书签署请求文件发送给CA
    scp httpd.csr aaa@qq.com端IP:/root      //因为我们现在的环境是在本地,所以这一步可以不用做
    
    • CA签署客户端提交上来的证书
    [aaa@qq.com ssl]# openssl ca -in ./httpd.csr -out httpd.crt -days 365
    
    • CA把签署好的证书httpd.crt发给客户端
    scp httpd.crt aaa@qq.com客户端IP:/etc/httpd/ssl/
    

配置httpd步骤:

  • 生成证书,上面的步骤已经做了
  • 修改httpd.conf配置文件,取消以下内容的注释
    LoadModule ssl_module modules/mod_ssl.so
    Include /etc/httpd24/extra/httpd-vhosts.conf
    Include /etc/httpd24/extra/httpd-ssl.conf
  • 在httpd-vhosts.conf中配置虚拟主机
  • 在httpd-ssl.conf中配置证书的位置
[aaa@qq.com ~]# cd /etc/httpd/conf.d/
[aaa@qq.com conf.d]# ls
README  autoindex.conf  httpd-vhosts.conf  ssl.conf  userdir.conf  welcome.conf
[aaa@qq.com conf.d]# vim ssl.conf 

DocumentRoot "/var/www/html/test"
ServerName test.example.com:443           //取消这两行的注释,并修改对应的位置

SSLCertificateFile /etc/httpd/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key     //修改证书和**的位置,使用绝对路径
  • 检查配置文件是否有语法错误

  • 重启服务

  • 设置hosts以便域名访问(实际工作中无需做此步)

  • 打开浏览器测试

.so
Include /etc/httpd24/extra/httpd-vhosts.conf
Include /etc/httpd24/extra/httpd-ssl.conf


- 在httpd-vhosts.conf中配置虚拟主机
- 在httpd-ssl.conf中配置证书的位置

```bash
[aaa@qq.com ~]# cd /etc/httpd/conf.d/
[aaa@qq.com conf.d]# ls
README  autoindex.conf  httpd-vhosts.conf  ssl.conf  userdir.conf  welcome.conf
[aaa@qq.com conf.d]# vim ssl.conf 

DocumentRoot "/var/www/html/test"
ServerName test.example.com:443           //取消这两行的注释,并修改对应的位置

SSLCertificateFile /etc/httpd/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key     //修改证书和**的位置,使用绝对路径
  • 检查配置文件是否有语法错误

  • 重启服务

  • 设置hosts以便域名访问(实际工作中无需做此步)

  • 打开浏览器测试

httpd服务

相关标签: Linux服务