Apache的基本配置

简要概述

我对Apache进行了各种调查,只是简单地做了一下笔记。
我会写一些关于安装、配置和模块的内容。
由于我的知识还不够充分,如果有错误,请指正。

安装

安装有以下两种方法。
1. 从源代码编译安装。
2. 使用软件包进行安装。

从源代码进行编译

配置→编译→安装

例)
$ ./configure --prefix=/usr/local/apache --enable-module=ssl

以下是对上述内容的中文本地化解释:

–prefix=通过指定路径来设置安装目录。
–enable-module=ssl在编译中包含了一个名为ssl的标准模块。

详细信息请查看此处,Apache HTTP 服务器版本 2.0 的编译和安装。

使用包装

红帽公司的系列产品

# yum install httpd

Debian家族

# apt-get install apache2

Apache的配置

我主要会写关于设置文件和设置方法的内容。

设定文件

从源代码进行编译

这是主要的配置文件。还有其他的配置文件。
/usr/local/apache2/conf/httpd.conf

红帽公司

主要配置文件
/etc/httpd/conf/httpd.conf
包含辅助配置文件的目录
/etc/httpd/conf.d

Debian系统

主要配置文件
/etc/apache2/apache2.conf
辅助配置文件目录
/etc/apache2/
端口配置
/etc/apache2/ports.conf

设置步骤

书本的格式

以下是以以下形式进行描述的。
设定项目

ディレクティブ名 設定値

适用范围

<Files ファイル名> ... </Files>
<Directory ディレクトリ名> ... </Directory>
<Location URL> ... </Location>

由于设置指令非常冗长,建议参考此链接进行设置:
httpd.conf文件的设置
httpd.conf文件的设置指令

阿帕奇的控制

关于CLI系统控制方法。

SysVinit 系统。

# /etc/init.d/httpd start      //Debianではapache2

systemd系统

# systemctl start httpd.service    //Debianではapache2

apachectl 可执行控制 Apache HTTP 服务器

# apachectl start

以下是 apachectl 的子命令:
・start:启动
・stop:停止
・restart:重新启动
・graceful:安全重启
・reload:重新加载配置文件
・configtest:配置文件语法检查

模块

我正在编写关于模块集成、显示等方面的内容。

模块列表

非常多,所以可以参考外部网站。
模块列表 – Apache HTTP 服务器版本 2.4

模块将被安装在/usr/lib/httpd/modules等位置。
要加载模块,请在httpd.conf中使用LoadModule指令进行指定。

例)
LoadModule ssl_module modules/mod_ssl.so

正在加载ssl模块。

嵌入方式 ɡrù ɡshì)

在安装Apache后,要将模块集成进去,可以使用apxs命令。
以下是将mod_hoge模块作为DSO编译并安装的步骤。
有关apxs命令的选项,请参考此链接。

$ sudo apxs -i -a -c mod_hoge.c

随后,在httpd.conf中添加LoadModule指令。

LoadModule hoge_module modules/mod_hoge.so

在编译Apache时,也可以通过使用–configure选项将模块静态地集成。

显示模块

已嵌入模块

# httpd -l           //RedHat

$ sudo apache2 -l    //Debian

有效无效 – wú

# httpd -M    // 組み込みモジュールとDSOモジュールの一覧。設定ファイルの文法チェック

$ sudo a2enmod  //利用可能なモジュールを表示し、対話的にモジュールを有効化する
$ sudo a2dismod //モジュールの無効化

需要重新启动Apache才能应用更改。

访问认证

可以使用基本认证(BASIC认证)和摘要认证,还可以通过IP地址和主机名进行访问控制。

基本认证

<Directory "/var/www/html/hoge">
    AuthType Basic
    AuthName "ダイアログに出力されるメッセージ"
    AuthUserFile /etc/httpd/conf/htpasswd
    Require valid-user
</Directory>

当指定为 require valid-user 时,所有列在密码文件中的用户都将被允许访问。
当列出用户名时,仅指定用户将被允许访问。

要设置用户名和密码,请使用htpasswd命令。
手册页:htpasswd

另外,也可以进行团队认证。

摘要认证

<Directory "/var/www/html/digest-hoge">
    AuthType Digest
    AuthName "digest-hoge"
    AuthUserFile /etc/httpd/conf/htdigestfile
    Require valid-user
</Directory>

※AuthName用于指定验证领域。如果这个不正确,就无法进行验证。
使用htdigest命令来设置摘要认证的用户名和密码。

htdigest – 管理摘要认证的用户文件

基于主机的访问

使用Require指令进行访问控制。
由authz_host_module模块提供。
※通过Order、Allow和Deny进行访问控制已不再推荐使用。

文件格式

Require エンティティ [値...]

由于易于阅读,虽然不是Apache官方的推荐,但可以参考此Require指令。

虚拟主机

通过使用虚拟主机,可以在一台服务器上管理多个网站。
有基于名称和基于 IP 的虚拟主机。

基于名称的虚拟主机

设置一个IP地址和多个域名。

//1つ目
<VirtualHost *:80>
    ServerName web.hoge.jp
    ServerAdmin web@web.hoge.jp
    DocumentRoot /var/www/hoge
</VirtualHost>

//2つ目
<VirtualHost *:80>
    ServerName www.example.net
    ServerAdmin web@example.net
    DocumentRoot /var/www/example
</VirtualHost>

基於IP的虛擬主機

設置多個IP位址和多個域名。
在Listen指令中指定IP位址。

Listen 192.168.1.10:80
Listen 192.168.1.11:80

===省略===

//1つ目
<VirtualHost 192.168.1.10:80>
    ServerName web.hoge.jp
    ServerAdmin web@web.hoge.jp
    DocumentRoot /var/www/hoge
</VirtualHost>

//2つ目
<VirtualHost 192.168.1.11:80>
    ServerName www.example.net
    ServerAdmin web@example.net
    DocumentRoot /var/www/example
</VirtualHost>

其他

SSL/TLS 可以被理解为“安全套接层/传输层安全协议”。

SSL/TLS强加密
搭建Apache2.4以进行HTTPS通信的环境配置步骤和注意事项

代理服务器

尝试将Squid用作反向代理

广告
将在 10 秒后关闭
bannerAds