其他分享
首页 > 其他分享> > Apache各功能搭建详细教程

Apache各功能搭建详细教程

作者:互联网

文章目录

Apache访问控制

实验环境:
关闭防火墙关闭selinux
搭建好lamp
服务器zcy01(17216.1.10)
测试机:本地win10华为浏览器
httpd版本为2.4.47

一、用户访问功能搭建

指定目录下(WordPress)创建权限文件,访问WordPress时需要权限验证,其他目录则不需要

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

在这里插入图片描述
在这里插入图片描述

touch /usr/local/apache2/htdocs/apache.passwd
#创建指定的密码文件、添加允许访问的用户(与系统用户无关)
#注:-c创建密码文件和添加第一个用户、-m添加更多用户;
#注:htpasswd是httpd的命令,若没有安装httpd-tools软件包
yum install httpd-tools -y
htpasswd -c  /usr/local/apache2/htdocs/apache.passwd admin
htpasswd -m  /usr/local/apache2/htdocs/apache.passwd zcy


在这里插入图片描述

#编辑配置文件,在需要登录认证的目录标签中添加:

声明被保护目录,只要在对应的权限控制目录下创建.htaccess文件即可

vim /usr/local/apache2/conf/httpd.conf
	<Directory "/usr/local/apache2/htdocs"> 
	
		Options Indexes FollowSymLinks
		 #开启权限认证文件.htaccess
		AllowOverride All		     
		Require all granted
	</Directory>

在这里插入图片描述

重启服务、验证(访问其他界面正常,访问wordpress界面后输入用户名和密码才能看到内容)

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

在这里插入图片描述
在这里插入图片描述
输入正确可以访问
在这里插入图片描述

输入错误,重复提示登陆
在这里插入图片描述

取消则报错
在这里插入图片描述

二、虚拟主机功能搭建(基于域名)

主配置文件开启虚拟主机模块的关联配置文件

vim /usr/local/apache2/conf/httpd.conf
	Include conf/extra/httpd-vhosts.conf    #取消注释

在这里插入图片描述
编辑虚拟主机配置文件、添加相应的标签

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

有几个虚拟机主机添加几组下面的标签

<VirtualHost *: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>
  	#设置sina虚拟主机的权限,若与主配置文件中配置相同、可省略
  	<Directory "/usr/local/apache2/htdocs/sina">
  		Options Indexes FollowSymLinks
  		AllowOverride All
  		Require all granted
  	</Directory>

我这里有两个分别是zcy.vip和qy.vip 配置如下
在这里插入图片描述

重启服务、验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

客户端配置
更改hosts文件,添加服务器IP 指定的域名
在这里插入图片描述
在这里插入图片描述
浏览器访问测试
在这里插入图片描述
在这里插入图片描述

三、地址跳转(基于域名的虚拟主机基础上,zcy.vip–>qy.vip)

主配置文件开启重定向模块

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

在需要进行跳转的目录下添加权限文件
地址跳转的可用参数,参考:http://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewriterule

cd /usr/local/apache2/htdocs/zcy
vim .htaccess
	RewriteEngine on
	RewriteCond %{HTTP_HOST} www.zcy.vip 
	RewriteRule .* http://www.qy.vip/$1 [R=permanent,L]

在这里插入图片描述

检查下主配置文件AllowOverride All是打开的
在这里插入图片描述

重启服务、验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

浏览器访问测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
字符终端测试
在这里插入图片描述

四、结合openssl实现https

在地址跳转的基础上继续实验
前提:安装apache的时候需要添加选项(–enable-ssl)、安装了基础依赖(openssl、openssl-devel)
修改主配置文件开启ssl模块、开启加载ssl关联的配置文件

vim /usr/local/apache2/conf/httpd.conf
	LoadModule ssl_module modules/mod_ssl.so  #取消注释
	Include conf/extra/httpd-ssl.conf         #取消注释
	#加载缓存模块
	LoadModule socache_shmcb_modulemodules/mod_socache_shmcb.so

修改ssl关联的配置文件(改域名、关缓存)

vim /usr/local/apache2/conf/extra/httpd-ssl.conf
	<VirtualHost _default_:443>
        #改域名
        DocumentRoot "/usr/local/apache2/htdocs/qy"
        ServerName  www.qy.vip:443
        ServerAdmin qy@example.com
        ErrorLog "logs/sina-https-error_log"
        CustomLog "logs/sina-https-access_log" common
	</VirtualHost>
	

在这里插入图片描述
创建证书,配置文件指定默认在配置文件所在目录

$ cd /usr/local/apache2/conf  
$ openssl genrsa -out server.key 1024	  	
$ openssl req -new -key server.key -out server.csr     
$ openssl x509 -req -days 365 -sha256 -in server.csr -signkey server.key -out server.crt 	

重启服务、验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

客户端访问
浏览器地址栏输入:https://www.qy.vip - 高级-继续访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、地址跳转(端口跳转,www.qy.com的80 --> 443)

在四的基础上继续实验
主配置文件开启重定向模块

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

在需要进行跳转的目录下添加权限文件

cd /usr/local/apache2/htdocs/qy
vim .htaccess
RewriteEngine on          
#判断站点访问端口,不是443的时候,进行处理;HTTP_PORT是80
RewriteCond %{SERVER_PORT} !443                  
RewriteRule .* https://www.qy.vip/$1 [R=permanent,L]

在这里插入图片描述
重启服务、验证

/usr/local/apache2/bin/apachectl -t
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

浏览器测试
访问www.qy.vip自动跳转到https://www.qy.vip
在这里插入图片描述
在这里插入图片描述
同时访问www.zcy.vip也会跳转到https://www.qy.vip
在这里插入图片描述
在这里插入图片描述

六、配置缓存

在五的基础上继续试验

vim /usr/local/apache2/conf/httpd.conf
LoadModule expires_module modules/mod_expires.so	#启用模块
    <IfModule mod_expires.c>		
        ExpiresActive on
        ExpiresByType image/gif "access plus 1 days"
        ExpiresByType image/jpeg "access plus 4 hours"
        ExpiresByType image/png "access plus 24 hours"
        ExpiresByType text/css "now plus 2 hours"
        ExpiresByType application/x-javascript "now plus 2 hours"
        ExpiresByType application/javascript "now plus 2 hours"
        ExpiresByType application/x-shockwave-flash "now plus 2 hours"
        ExpiresDefault "now plus 0 min"
    </IfModule>

在这里插入图片描述
重启测试

/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

在这里插入图片描述

在这里插入图片描述

七、http2

在六的基础上继续试验

环境要求:
1.httpd软件包在2.4.17以上,否则不支持mod_http2
2.需要依赖nghttp2在1.2.1以上
3.openssl软件包在1.0.2以上,否则不支持HTTP/2.0
4.需要在configure时指定–enable-http2选项

vim /usr/local/apache2/conf/httpd.conf
	#开启HTTP/2.0模块、SSL模块
	LoadModule http2_module modules/mod_http2.so
	设置域名、协议
	ServerName www.linuxlc.com:80
	Protocols h2 http/1.1

在这里插入图片描述

重启服务
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start

客户端测试;
https://IP
http://IP/xx.html – 跳转到https,查看开发者工具,右键勾选Protocol,看到h2
在这里插入图片描述

标签:bin,教程,apache2,apachectl,usr,conf,Apache,local,搭建
来源: https://blog.csdn.net/zcyygyl/article/details/120392795