1、配置文件
RerverRoot 主目录
Listen 监听端口
LoadModule 动态模块
<IFModule 模块名>
</IFModule> 对模块进行配置
ServerAdmin 管理员邮箱
ServerName 服务器域名
<Directory 目录路径>
</Directory> 对目录进行配置
Options 目录选项
Indexes 当没有主页面时,是否列出目录内容
FollowSymLinks 是否允许首页文件为软连接文件
allowoverride 是否启用.htaccess权限文件(只对directory声明的目录生效)
all 启用
none 不启用
vim .htaccess .htaccess权限文件必须放在directory声明的目录下
authname 提示信息
authtype 认证类型
authuserfile 用户名密码文件
require valid-user 授权
htpasswd -[c|m] [authuserfile声明的用户名密码文件] [用户名] 创建用户(密文)-c是创建,-m是添加
require all granted 允许所有人访问
require all denied 拒绝所有人访问
允许个别,拒绝所有
<requireall>
require all granted
require not ip地址
</requireall>
拒绝个别,允许所有
<requireall>
require all granted
require ip ip地址
</requireall>
DocumentRoot 指定网站首页文件及应用位置
DirectoryIndex 默认打开的首页文件
</Files> 文件配置区域
ErrorLog 错误日志
LogLevel 要记录的日志级别
LogFormat 日志记录格式
CustomLog 访问日志
ScriptAlias 别名文件
TypesConfig 后缀名解析文件。如果后面跟的文件里没有要解析的后缀名,需要手动添加AddType application/x-[文件类型] [扩展名]
Include 额外的配置文件,如果想启用某个配置文件,就去掉注释。
Include etc/extra/proxy-html.conf 启用代理的模板配置文件
SSLRandomSeed 加密模块要用到的配置
2、目录别名
Alisa "/别名目录" "/实际目录"
对实际目录给权限
<directory "/usr/local/apache2/htdocs/a/b/c">
options indexes followsymlinks
allowoverride none
require all granted
</directory>
3、虚拟主机
a、基于IP地址
<VirtualHost *:80> 将*改成要监听的地址
b、基于端口
Listen 声明监听的端口
<VirtualHost *:80> 将80改成要监听的端口
c、基于域名
Include etc//extra/httpd-vhosts.conf 主配置文件打开虚拟主机加载文件选项
创建首页网站目录及首页文件
mkdir /var/web/www /var/web/jd
创建首页文件
配置虚机主机
<VirtualHost *:80> *表示监听服务器上的所有IP
DocumentRoot "/var/web/baidu" 网站根目录
ServerName www.baidu.com 域名
<directory "/var/web/baidu"> 给网站目录赋权限
options indexes followsymlinks
allowoverride none
require all granted
</directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/var/web/jd"
ServerName www.jd.com
<directory "/var/web/jd">
options indexes followsymlinks
allowoverride none
require all granted
</directory>
</VirtualHost>
注:RPM安装的网站服务器,配置虚拟主机时,必须要开启NameVirtualHost *:80选项
4、个人主页
Include etc/extra/httpd-userdir.conf 主配置文件启用个人主页配置文件
编辑个人主页配置文件(默认不用修改,主要是确认主页名)
UserDir public_html 主页目录名
<Directory "/home/*/public_html"> 权限设置
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
Require method GET POST OPTIONS
</Directory>
创建主页存放目录及个人主页
mkdir /home/zhangsan/public_html /home/lisi/public_html 需要跟配置文件的主页目录名一致
chmod o+x /home/zhangsan/ /home/lisi/ 对家目录给执行权限,确保daemon用户能进去。
LoadModule userdir_module modules/mod_userdir.so 主配置文件打开userdir动态模块
动态库:
--enable-so
启用DSO(动态共享目标,就是动态模块)支持的核心模块
apache运行时加载模块扩展功能。
静态:
启动时就已经加载,可随时使用<IFmodule>
动态:
启动时不加载,而是提供.so文件。使用loadmodule选项加载并配置
5、地址重定向
www.360buy.com ---> www.jd.com
a、添加rewrite模块
LoadModule rewrite_module modules/mod_rewrite.so 主配置文件打开模块
b、虚拟主机目录选项开启使用权限文件
allowoverride all
c、在主目录增加权限文件
vim .htaccess 写在需要重定向的网站下。
rewriteengine on 开启重定向引擎
rewritecond %{HTTP_HOST} www.360buy.com 将老域名赋值到变量
rewriterule .* http://www.jd.com 定义规则将所有定向到新域名
6、HTTPS
网站服务端:
安装加密相关的模块
yum install -y mod_ssl openssl openssl-devel
重新编译安装apache,加上--enable-ssl选项
./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc/ --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite --enable-ssl
mkdir /usr/local/apache2/ssl 创建一个证书存放目录
(umask 077;openssl genrsa 1024 > httpd.key) 在目录下生成加密文件
openssl req -new -key httpd.key -out httpd.crq 用加密文件生成证书申请文件
CA服务器端:
cd /etc/pki/CA/ 进入CA目录
(umask 077;openssl genrsa -out private/cakey.pem 2048)
设置反掩码077;openssl用genrsa算法在private子目录生成一个cakey.pem文件,大小2048
vim /etc/pki/tls/openssl.cnf 编辑证书模板配置文件
countryName_default = CN 默认国家名称
stateOrProvinceName_default = HN 默认省份名称
localityName_default = ZZ 默认城市名称
0.organizationName_default = FZDZ 默认公司名称
organizationalUnitName_default = CLOUD 默认组织名称
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3655 加密文件写的时相对路径所以需要在CA目录下执行
-new生成一个新的文件;-x509格式;-key后跟加密文件; -out后跟生成的证书文件名; -days后跟证书有效期
原文:https://www.cnblogs.com/lingshu/p/10369723.html