Apache服务各功能实现方法

本文详细介绍了Apache服务的各种功能实现,包括目录别名设置以访问网页、用户认证保护后台、虚拟主机配置、域名跳转、HTTPS配置、日志切割、忽略特定文件类型日志、静态缓存设置以及禁止PHP解析等关键操作。

Apache服务各功能实现方法



一、Apache的目录别名(可用于使用别名访问网页)

1.编辑主配置文件:

# vim /usr/local/apache2/etc/httpd.conf
  Include etc/extra/httpd-autoindex.conf	 #去掉注释,开启调用子配置文件 

2.编辑子配置文件:

# vim /usr/local/apache2/etc/extra/httpd-autoindex.conf
  alias /icons/ "/usr/local/apache2/icons/"  #结构:别名 "真实目录"	
                                             #真实目录的结尾要有/,否则报错
  <Directory "/usr/local/apache2/icons">     #可以根据模板编写一个自己需要的目录别名
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
  </Directory>

二、Apache的用户认证(可用于保护后台登录界面)

1.编辑主配置文件:

# vim /usr/local/apache2/etc/httpd.conf
  <Directory "/usr/local/apache2/htdocs/typecho/admin"> #声明被保护目录
	Options Indexes FollowSymLinks
	AllowOverride All		                 #开启权限认证文件.htaccess
	Require all granted
  </Directory>

2.在指定目录下创建权限文件:

# cd /usr/local/apache2/htdocs/typecho/admin
# vim .htaccess
# AuthName "Welcome to kernel"               
#提示信息
# AuthType basic                             
#加密类型
# AuthUserFile /usr/local/apache2/htdocs/typecho/admin/apache.passwd
#密码文件,文件名自定义。(使用绝对路径)
# require valid-user                         
#允许密码文件中所有用户访问

3.建立密码文件,加入允许访问的用户:

# yum -y install httpd
# htpasswd -c /usr/local/apache2/htdocs/typecho/admin/apache.passwd 账户名1
#-c  建立密码文件,只有添加第一个用户时,才能-c
# htpasswd -m /usr/local/apache2/htdocs/typecho/admin/apache.passwd 账户名2
#-m  在添加更多用户时,使用-m 参数
▲注意: htpasswd 该命令是httpd的命令,需要绝对路径

三、虚拟主机

1.编辑主配置文件,开启文件关联:

# vim /usr/local/apache2/etc/httpd.conf
  Include etc/extra/httpd-vhosts.conf		 #此行取消注释,开启调用子配置文件

2.编辑子配置文件,编写虚拟主机标签:

# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
#删除原有,添加下方内容,有几个虚拟主机就写几组(添加之前先把原先存在的示例删除掉)

  <Directory "/usr/local/apache2/htdocs/sina">
	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted
  </Directory>	                                        #目录权限标签根据需要自行添加
  <VirtualHost 192.168.88.10:80>				        #虚拟主机标签(可以写本机IP或*)
	ServerAdmin webmaster@sina.com						#管理员邮箱
	DocumentRoot "/usr/local/apache2/htdocs/sina"		#网站主目录
	ServerName www.sina.com								#完整域名
	ErrorLog "logs/sina-error_log"						#错误日志
	CustomLog "logs/sina-access_log" common				#访问日志
  </VirtualHost>

四、域名跳转

1.编辑主配置文件,开启重写模块:

# vim /usr/local/apache2/etc/httpd.conf
  LoadModule rewrite_module modules/mod_rewrite.so		#取消注释

2.修改虚拟主机配置文件:

# vim */extra/httpd-vhosts.conf
  <Directory "/usr/local/apache2/htdocs/sohu">
		Options Indexes FollowSymLinks
		AllowOverride All                               #修改为All,开启sohu的.htaccess配置文件开关
		Require all granted
  </Directory>

3.在sohu网页目录下创建规则匹配文件:

# cd /usr/local/apache2/htdocs/sohu/
# vim */.htaccess
#在指定的网站目录下创建文件,并添加以下内容:
  RewriteEngine on                                               #开启rewrite功能
  RewriteCond %{HTTP_HOST} ^www.sohu.com                         #把以www.sohu.com开头的内容赋值给HTTP_HOST变量
  RewriteRule  ^(.*)$   http://www.sina.com/$1 [R=permanent,L]   # ^(.*)$ 指代客户端要访问的资源
                                                                 # $1.* 所指代的内容赋值到$1变量中
                                                                 # R=permanent 永久重定向 = 301
                                                                 # L 指定该规则为最后一条生效的规则,以后的不再生效

五、Apache+openssl实现https

1.编辑主配置文件,开启模块:

# vim /usr/local/apache2/etc/httpd.conf
  LoadModule ssl_module modules/mod_ssl.so		        #取消注释

2.CA证书申请:

# cd /usr/local/apache2/etc
# mkdir ssl

# cd /usr/local/apache2/etc/ssl
# openssl genrsa -out httpd.key 1024
# openssl req -new -key httpd.key -out httpd.csr
# openssl x509 -req -days 365 -sha256 -in httpd.csr -signkey httpd.key -out httpd.crt

3.修改配置文件:

# vim /usr/local/apache2/etc/httpd.conf
  LoadModule ssl_module modules/mod_ssl.so		                #取消注释
  Include etc/extra/httpd-ssl.conf					            #取消注释
  LoadModule socache_shmcb_module modules/mod_socache_shmcb.so  #取消注释

#添加以下内容:
  SSLProtocol all -SSLv2 -SSLv3                                            #添加SSL协议支持协议,去掉不安全的协议
  SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM  #添加加密套件
  SSLHonorCipherOrder on                                                   #添加是否启用证书加密模式,on:开启
  DocumentRoot "/usr/local/apache2/htdocs/sina"                            #首页目录
  ServerName www.sina.com:443                                              #域名:端口
  ServerAdmin sina@sina.com                                                #管理员
  ErrorLog "/usr/local/apache2/logs/sina-ssl-error_log"                    #错误日志
  TransferLog "/usr/local/apache2/logs/sina-ssl-access_log"                #访问日志

#修改下内容:
  SSLCertificateFile etc/ssl/httpd.crt                          #修改签字证书位置
  SSLCertificateKeyFile etc/ssl/httpd.key                       #修改秘钥位置

若要实现强制跳转,则要进行以下操作:

# vim /usr/local/apache2/etc/extra/httpd-vhosts.conf
  <Directory "/usr/local/apache2/htdocs/sina">                  #在http部分的目录权限标签中添加以下内容
    ……
    RewriteEngine on						                    #开启转发规则
    RewriteCond %{SERVER_PORT} !^443$		                    #检查访问端口只要目标不是443的
    RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [R=301,L]	    #全都使用https重新访问
  </Directory>

六、Apache日志切割

1.查看已经声明了的日志格式(之后调用格式时要调用此类格式):

# vim /usr/local/apache2/etc/httpd.conf

在这里插入图片描述

2.设置apache日志分割:

# vim /usr/local/apache2/etc/httpd.conf
  ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/error_%Y%m%d.log 86400"
  CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/access_%Y%m%d.log 86400" combined

七、不记录指定文件类型的日志

1.修改主配置文件:

# vim /usr/local/apache2/conf/httpd.conf
#添加或修改以下内容:
  SetEnvIf Request_URI ".*\.gif$" image-request         #SetEnvIf :声明
                                                        #image-request仅是声明的名字,类似于common,可随意设定
  SetEnvIf Request_URI ".*\.jpg$" image-request
  SetEnvIf Request_URI ".*\.png$" image-request
  SetEnvIf Request_URI ".*\.bmp$" image-request
  SetEnvIf Request_URI ".*\.swf$" image-request
  SetEnvIf Request_URI ".*\.js$"  image-request
  SetEnvIf Request_URI ".*\.css$" image-request
  CustomLog "|/usr/local ... _%Y%m%d.log 86400" combined env=!image-request
                                                        #env=!image-request :表示取反,除了这些image-request以外的才会记录

八、Apache配置静态缓存

1.修改主配置文件,配置静态缓存:

# vim /usr/local/apache2/etc/httpd.conf
  <IfModule mod_expires.c>		#在文件最尾部添加
    ExpiresActive on
    ExpiresByType image/gif "access plus 1 days"                       #gif类型图片缓存一天
    ExpiresByType image/jpeg "access plus 24 hours"                    #jpeg类型图片缓存一天
    ExpiresByType image/png "access plus 24 hours"                     #png类型图片缓存一天
    ExpiresByType text/css "now plus 2 hours"                          #css样式类型文件缓存2小时
    ExpiresByType application/x-javascript "now plus 2 hours"          #脚本类文件缓存2小时
    ExpiresByType application/javascript "now plus 2 hours"            #脚本类文件缓存2小时
    ExpiresByType application/x-shockwave-flash "now plus 2 hours"     #flash脚本类文件缓存2小时
    ExpiresDefault "now plus 0 min"                                    #其他的不缓存
  </IfModule>

九、禁止解析PHP

1.修改主配置文件,配置禁止解析php:

# vim /usr/local/apache2/etc/httpd.conf
  <Directory /usr/local/apache2/htdocs/data>  #声明某一目录,例如data目录的权限
    php_admin_flag engine off                 #关闭PHP解析功能
    <filesmatch "(.*)php">                    #只要是带php的文件都执行以下动作
      Order deny,allow                        #拒绝所有
      Deny from all                           #不论客户端来自于哪个IP,都不允许访问
    </filesmatch>
  </Directory>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值