跳转至

Apache相关配置

配置文件一般情况下位于/etc/httpd/

配置文件解析

  1. Listen:这个指令指定了Apache服务器监听的IP地址和端口号,例如Listen 80表示监听80端口。

  2. ServerRoot:指定Apache服务器根目录的路径,例如ServerRoot "/usr/local/apache2"。

  3. DocumentRoot:指定Apache服务器的默认页面路径,例如DocumentRoot "/var/www/html"。

  4. Directory:这个指令用于配置目录的属性,例如Directory /var/www/html,可以指定目录/var/www/html下的属性。

  5. DirectoryIndex:这个指令用于指定目录索引页面的文件名,例如DirectoryIndex index.html index.htm default.html。

  6. ErrorLog:指定Apache服务器错误日志文件的路径,例如ErrorLog "/var/log/httpd/error_log"。

  7. CustomLog:指定Apache服务器访问日志文件的路径,例如CustomLog "/var/log/httpd/access_log" combined。

  8. User和Group:这两个指令用于指定Apache服务器运行时的用户和组,例如User apache和Group apache。

  9. VirtualHost:这个指令用于配置虚拟主机,例如VirtualHost 10.10.10.1:80,可以配置一个监听IP为10.10.10.1,端口号为80的虚拟主机。

实际案例:使用LDAP限制用户访问网站

安装并启用ldap模块

sudo apt-get install libapache2-mod-authnz-ldap ldap-utils

sudo a2enmod authnz_ldap

sudo service apache2 restart

配置文件案例

<VirtualHost *:80>
    ServerName www.sdskills.com
    DocumentRoot /data/share/htdocs/skills

    <Directory /data/share/htdocs/skills>
        Options Indexes FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        AuthType Basic
        AuthName "LDAP Authentication"
        AuthBasicProvider ldap
        AuthLDAPURL "ldap://ldap.example.com:389/ou=people,dc=example,dc=com?uid"
        AuthLDAPBindDN "cn=admin,dc=example,dc=com"
        AuthLDAPBindPassword "admin_password"
        Require ldap-group cn=webusers,ou=groups,dc=example,dc=com
    </Directory>

    # Other directives and configurations
    User webuser 
    Group webuser
</VirtualHost>

实际案例:使用SSL加密

创建一个私钥

openssl genpkey -algorithm RSA -out /CA/private.key

生成证书请求

openssl req -new -key /path/to/private/key -out server.csr

签发证书

openssl x509 -req -in server.csr -CA /path/to/ca.crt -CAkey /path/to/ca.key -CAcreateserial -out server.crt -days 365

命令解析: - openssl x509:使用openssl工具操作X.509证书 - -req:表示输入的证书是证书签署请求(CSR) - -in server.csr:输入的CSR证书请求文件路径 - -CA /path/to/ca.crt:CA证书文件路径 - -CAkey /path/to/ca.key:CA证书对应的私钥文件路径 - -CAcreateserial:在签署证书时,生成唯一的证书序列号 - -out server.crt:签署后生成的SSL证书的输出路径 - -days 365:生成的SSL证书的有效期限,这里设置为365天。

安装ssl模块

sudo apt-get install libapache2-mod-ssl

编辑配置文件

配置文件为/etc/apache2/sites-available/default-ssl.conf

填写好证书路径

SSLCertificateFile      /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile   /etc/ssl/private/apache-selfsigned.key

取消注释

#SSLOptions +FakeBasicAuth
#<FilesMatch "\.(cgi|shtml|phtml|php)$">
#SSLOptions +StdEnvVars
#</FilesMatch>