Ubuntu18.04 环境搭建——Apache

1. 安装部署

sudo apt-get install apache2  # 安装软件
apache2 -v                    # 查看版本

2. 常规配置

2.1 配置文件概述

/etc/apache2
      ├── apache2.conf                       // 主配置文件
      ├── ports.conf                         // 监听端口
      ├── mods-enabled                       // 第三方模块
              ├── *.load
              ├── *.conf
      ├── sites-enabled                      // 虚拟主机
              ├── *.conf
      └── conf-enabled                       // 其他配置
              ├── *.conf
  • apache2.conf 主配置文件,包含服务器全局配置,同时引用其它配置文件;
  • ports.conf 配置监听端口;
  • mods-available/ 配置第三方模块;
  • sites-available/ 配置虚拟主机。

mods-available/sites-available/ 是配置文件真实存储位置,但配置未必生效。只有在 mods-enabled/sites-enabled/ 中创建软链接的配置文件,才是有效的。这样,借助软链接的创建/删除,控制模块或虚拟主机的启用/停止,可以避免对配置文件的直接改动。相关命令包括:a2enmod、a2dismod、a2ensite、a2dissite、a2enconf、a2disconf。

2.2 监听端口

服务器启动时,自动绑定特定地址和端口,并等待请求传入。默认情况下,服务器监听所有地址和端口。ports.conf 指定待监听的端口或者端口与地址的组合,没有在 ports.conf 中添加的端口将不被监听。sites-enabled/*.conf 将特定端口与虚拟主机绑定,实现对不同地址和端口的响应。

Listen 配置待监听的端口或者端口与地址的组合。如果仅指定了端口,服务器监听所有地址(即网卡)上的特定端口。如果同时给出了地址和端口,服务器监听特定的地址和端口。使用多个 Listen 指定待监听的多个地址和端口,服务器监听来自所有列出的地址和端口的请求。

当增加一个虚拟主机时,一定要在 ports.conf 中添加对相关端口的监听。

2.3 虚拟主机

虚拟主机是在同一台机器上搭建属于不同域名或者基于不同地址的多个网站服务的技术,每个虚拟主机对应一个网络站点

000-default.conf 是默认 http 服务配置文件,default-ssl.conf 是 https 服务配置文件,新增虚拟主机的配置文件名必须与域名一致。

<VirtualHost *:80>
        ServerName www.moonspirit.cn
        ServerAdmin yefanbupt@gmail.com
        DocumentRoot /var/www/apache

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
sudo a2ensite www.example.com   # 启用虚拟主机
sudo a2dissite www.example.com  # 停用虚拟主机
sudo systemctl reload apache2   # 重新加载配置文件

3. 支持 https 访问

3.1 安装证书

分别将 *.crt 和 *.key 复制到 /etc/ssl/certs/etc/ssl/private 目录下,完成证书安装。

3.2 配置虚拟主机

编辑 /etc/apache2/sites-available/default-ssl.conf,添加证书存储路径。

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerAdmin yefanbupt@gmail.com
                DocumentRoot /var/www/apache

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLEngine on
                SSLCertificateFile      /etc/ssl/certs/2_www.moonspirit.cn_apache.crt  # 证书文件
                SSLCertificateKeyFile   /etc/ssl/private/3_www.moonspirit.cn_apache.key  # 私钥文件
                SSLCertificateChainFile	/etc/ssl/certs/1_root_bundle_apache.crt  # 证书链文件
        </VirtualHost>
</IfModule>

3.3 启动服务

sudo a2enmod ssl               # 启用 SSL 模块
sudo a2ensite default-ssl      # 启用 SSL 虚拟主机
sudo systemctl reload apache2  # 重新加载配置文件

4. 重定向到 https

4.1 配置虚拟主机

编辑 000-default.conf,配置重定向规则。

RewriteEngine on
RewriteCond   %{HTTPS} !=on
RewriteRule   ^(.*)  https://%{SERVER_NAME}$1 [L,R=301]

4.2 启用服务

sudo a2enmod rewrite           # 启用重定向模块
sudo systemctl reload apache2  # 重新加载配置文件
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值