ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Apache各功能搭建详细教程

2021-09-21 19:58:40  阅读:276  来源: 互联网

标签:bin 教程 apache2 apachectl usr conf Apache local 搭建


文章目录

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有