分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

apache

发布时间:2023-09-06 01:52责任编辑:熊小新关键词:apache

**********************************************************************************************************************
◆案例1◆源码安装Apache
**********************************************************************************************************************

**********************************************************
安装依赖
**********************************************************

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum -y install epel-release

yum install -y gcc openssl openssl-devel zlib zlib-devel pcre pcre-devel expat-devel libxml2-devel


**********************************************************
安装Apr -1.6.3
**********************************************************

wget http://www-eu.apache.org/dist//apr/apr-1.6.3.tar.gz

tar -xzvf apr-1.6.3.tar.gz

cd apr-1.6.3/

CC="gcc -m64" ./configure --prefix=/usr/local/apr

./configure --prefix=/usr/local/apr

make && make install

**********************************************************
安装Apr-util -1.6.1
**********************************************************

wget http://www-eu.apache.org/dist//apr/apr-util-1.6.1.tar.gz

tar -xzvf apr-util-1.6.1.tar.gz

cd apr-util-1.6.1/

./configure --prefix=/usr/local/apr-util \
--with-apr=/usr/local/apr

make && make install


**********************************************************
安装Apache -2.4.33
**********************************************************

wget http://www-eu.apache.org/dist//httpd/httpd-2.4.33.tar.gz

tar -xzvf httpd-2.4.33.tar.gz

cd httpd-2.4.33/

./configure --prefix=/usr/local/apache2 \
--enable-rewrite \
--enable-so \
--enable-headers \
--enable-expires \
--with-mpm=worker \
--enable-modules=most \
--enable-deflate \
--enable-ssl \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre=/usr/local/pcre


make && make install

**********************************************************************************************************************
◆案例2◆打开网页实现身份验证 -- 用户名密码认证
**********************************************************************************************************************


1.编辑主配置文件

vim ?/usr/local/apache2/conf/httpd.conf


2.查找修改关键位置

定位特征:# It can be "All", "None", or any combi偏移+3


查找AllowOverride none (约在235行)

修改为 AllowOverride all

3.在httpd配置文件目录 ?/usr/local/apache2/htdocs 下创建 .htaccess 并写入以下内容


vim /usr/local/apache2/htdocs/.htaccess

写入↓

authname ?"welcome to apache"#欢迎提示信息
authtype basic#认证类型
authuserfile /usr/local/apache2/htdocs/login.psd#认证文件存放位置
require valid-user#除认证用户其他用户不允许登陆

4.添加认证用户 -c 创建密码文件只能添加一个用户 –m 创建密码文件,是追加写入


添加<-c>认证用户,只能添加一个用户

/usr/local/apache2/bin/htpasswd ?-c ?/usr/local/apache2/htdocs/login.psd ??LyShark

添加<-m>认证用户LyShark,是追加写入,可以创建多个用户

/usr/local/apache2/bin/htpasswd ?-m ?/usr/local/apache2/htdocs/login.psd ??LyShark


**********************************************************************************************************************
◆案例3◆实现身份验证 ?– 客户端的验证
**********************************************************************************************************************

**********************************************************
允许个别IP地址访问网页,拒绝所有
**********************************************************

1.修改主配置文件

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


定位特征:# ??AllowOverride FileInfo AuthCon偏移+3


写入(约在236行)在<Directory>嵌套里写入以下下内容

<requireall>
???????require all granted
???????require ip 192.168.1.10#允许访问的IP地址
</requireall>

#Require all granted#此行必须注释掉


**********************************************************
拒绝个别IP地址访问,允许所有
**********************************************************

1.修改主配置文件

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


定位特征:# ??AllowOverride FileInfo AuthCon偏移+3


写入(大约在236行) 在<Directory>嵌套里写以下内容


<requireall>
???????require all granted
???????require ip 192.168.22.147#拒绝访问的IP地址
</requireall>

#Require all granted#此行必须注释掉

**********************************************************************************************************************
◆案例4◆目录别名 - 减小目录深度
**********************************************************************************************************************

1.打开主配置文件


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


2.在配置文件行尾,追加写入

alias "/lyshark""/user/local/apache2/htdocs/a/b/c/d"


含义:将访问路径由 http://IP地址/a/b/c/d 简化为 http://IP地址/lyshark


**********************************************************************************************************************
◆案例5◆配置虚拟主机(重点)
**********************************************************************************************************************

****************************************************************************
※基于IP的虚拟主机※>>>实现一台服务器多个IP地址,搭建多个网站<<<
****************************************************************************

1.在eth0网卡添加一个子接口 eth0:0

ifconfig eth0:0 192.168.22.148 ?netmask 255.255.255.0


2.编辑主配置文件,开启虚拟主机选项(取消注释)


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

定位特征:# Local access to the Apache HTTP S偏移-2

搜索关键字 ?Virtual hosts(约在463行)

Include conf/extra/httpd-vhosts.conf#取消此行注释


3.修改主配置文件添加虚拟主机


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

<VirtualHost 192.168.22.147:80>
???DocumentRoot "/usr/local/apache2/htdocs/vhost1"
???ServerName dummy-host.example.com
</VirtualHost>

<VirtualHost 192.168.22.148:80>
???DocumentRoot "/usr/local/apache2/htdocs/vhost2"
???ServerName dummy-host2.example.com
</VirtualHost>

4.分别创建vhost1 和vhost2目录,并放入两个index.html文件

mkdir /usr/local/apache2/htdocs/vhost1
mkdir /usr/local/apache2/htdocs/vhost2

echo "vhost1 test page">/usr/local/apache2/htdocs/vhost1/index.html
echo "vhost2 test page">/usr/local/apache2/htdocs/vhost2/index.html


5.重启服务,测试效果

/usr/local/apache2/bin/apachectl restart


****************************************************************************
※基于端口的虚拟主机※>>>实现一台服务器多个端口,搭建多个网站<<<
****************************************************************************


1.编辑主配置文件,开启虚拟主机选项(取消注释)

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


定位特征:# Local access to the Apache HTTP S偏移-2

搜索关键字Virtual hosts(大约在463行)


Include conf/extra/httpd-vhosts.conf#取消此行注释

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

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


<VirtualHost 192.168.22.147:80>
???DocumentRoot "/usr/local/apache2/htdocs/vhost1"
???ServerName dummy-host.example.com
</VirtualHost>

<VirtualHost 192.168.22.147:8080>
???DocumentRoot "/usr/local/apache2/htdocs/vhost2"
???ServerName dummy-host2.example.com
</VirtualHost>


3.分别创建vhost1 和vhost2目录,并放入两个index.html文件

mkdir /usr/local/apache2/htdocs/vhost1
mkdir /usr/local/apache2/htdocs/vhost2

echo "vhost1 test page">/usr/local/apache2/htdocs/vhost1/index.html
echo "vhost2 test page">/usr/local/apache2/htdocs/vhost2/index.html


4.重启服务,测试

/usr/local/apache2/bin/apachectl restart

****************************************************************************
※基于域名的虚拟主机※>>>实现一台服务器多个域名,搭建多个网站<<<
****************************************************************************

1.搭建dns服务器,实现正向解析,将解析地址指向同一个ip

2.打开主配置文件开启虚拟主机

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


定位特征:# Local access to the Apache HTTP S偏移-2

搜索关键字:Virtual hosts (大约在463行)

Include conf/extra/httpd-vhosts.conf#取消注释开启功能


3.进入虚拟主机配置文件

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


<VirtualHost *:80>
???DocumentRoot "/usr/local/apache2/htdocs/vhost1"
???ServerName www.wang.com#wang.com解析到vhost1目录录下
</VirtualHost>
<VirtualHost *:80>
???DocumentRoot "/usr/local/apache2/htdocs/vhost2"
???ServerName www.rui.com#rui.com解析到vhost2目录下
</VirtualHost>


4.在网页保存位置创建两个相应目录,并放入网站index.html


mkdir /usr/local/apache2/htdocs/vhost1
mkdir /usr/local/apache2/htdocs/vhost2

echo "vhost1 test page">/usr/local/apache2/htdocs/vhost1/index.html#创建测试页
echo "vhost2 test page">/usr/local/apache2/htdocs/vhost2/index.html

5.重启服务生效

/usr/local/apache2/bin/apachectl restart

**********************************************************************************************************************
◆案例6◆开启个人主页功能
**********************************************************************************************************************

----------------------------------------------------------------------------
实验要求:给予每个用户都有一个单独的网页空间
----------------------------------------------------------------------------

1.开启相应的模块

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

LoadModule userdir_module modules/mod_userdir.so#取消注释(大约在146行)


定位特征:# User home directories

Include conf/extra/httpd-userdir.conf#取消注释(大约在458行)


2.进入配置文件,不做修改退出

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


3.创建用户并设置密码

useradd ?lyshark

passwd ?lyshark


4.进入用户家目录,创建相应文件,并赋予权限

mkdir -p /home/lyshark/public_html#在用户家目录创建public_html

echo “这是lyshark 的网页空间” >>/home/lyshark/public_html/index.html ?#创建测试页

chmod 755 /home/lyshark/public_html/index.html#赋予执行权限

chmod 755 /home/lyshark#赋予执行权限


5.通过浏览器访问测试

格式为:http://192.168.22.147/~lyshark


**********************************************************************************************************************
◆案例7◆启用地址跳转(重点)
**********************************************************************************************************************
----------------------------------------------------------------------------
实验要求:实现域名跳转www.xdl.com跳转到www.baidu.com
----------------------------------------------------------------------------
1.搭建dns服务器,实现正向解析,将解析地址指向同一个ip


2.编辑主配置文件开启相应功能(取消注释)


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

LoadModule vhost_alias_module modules/mod_vhost_alias.so #开启虚拟主机(约在141行)
LoadModule rewrite_module modules/mod_rewrite.so#开启网页重写(约在148行)
Include conf/extra/httpd-vhosts.conf#加载模块(约在464行)


3.改写虚拟主机配置文件

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

写入:

<VirtualHost *:80>
DocumentRoot "/usr/local/apache2/htdocs/xdl"
ServerName www.xdl.com
</VirtualHost>

<Directory "/usr/local/apache2/htdocs/xdl">
Options indexes followsymlinks
Allowoverride all
Require all granted
</Directory>

<VirtualHost *:80>
DocumentRoot "/usr/local/apache2/htdocs/baidu"
ServerName www.baidu.com
</VirtualHost>

4.分别创建网页文件存储位置,和测试页

mkdir -p /usr/local/apache2/htdocs/xdl
mkdir -p /usr/local/apache2/htdocs/baidu

echo “XDL com” > /usr/local/apache2/htdocs/xdl/index.html
echo “BAIDU com” > /usr/local/apache2/htdocs/baidu/index.html


5.在要跳转的网页目录下创建. htaccess文件

写入

rewriteengine on#开启跳转功能
rewritecond %{HTTP_HOST} www.xdl.com#将www.xdl.com
rewriterule .* http://www.baidu.com#跳转到www.baidu.com


**********************************************************************************************************************
◆案例8◆启用HTTPS生成SSL证书
**********************************************************************************************************************


1.建立服务器私钥,过程中需要输入密码

openssl genrsa -des3 -out server.key 1024

----------------------------------------------------------------------------
注释:
Genrsa –des3#加密类型
-outserver.key#输出文件
-1024#加密长度
----------------------------------------------------------------------------


2.建立证书,生成的csr文件交给CA签名后形成服务端自己的证书

openssl req -new -key server.key -out server.csr

----------------------------------------------------------------------------
注释:
req -new #新建证书
-key server.key#私钥文件
-out server.csr#输出文件

注:依次输入:国家 省 市 组织 机构 全称 EMAIL 是否要改变密码 是否改名称
----------------------------------------------------------------------------


3.转化成证书,这一步由证书CA机构来做的,这里只是实验.

openssl x509 -req -days 365 -sha256 -in server.csr -signkey server.key -out servernew.crt

4.配置服务器让其支持https

cp servernew.crt /usr/local/apache2/conf/server.crt#将证书复制到conf目录下
cp server.key /usr/local/apache2/conf/server.key#私钥也要放入conf目录下


vim /usr/local/apache2/conf/httpd.conf#打开http主配置文件


LoadModule ssl_module modules/mod_ssl.so#开启ssl功能(大约在129行)
Include conf/extra/httpd-ssl.conf #开启ssl模板,搜索SSLRandomSeed(大约在481行)


vim /usr/local/apache2/conf/extra/httpd-ssl.conf#打开ssl配置文件


定位特征码:# ??to use and second the expiring
搜索SSLSessionCache #将缓存设置注释掉(约在76行)

注释掉:
SSLSessionCache ????????"dbm:/usr/local/apache2/logs/ssl_scache"
SSLSessionCache ???????"shmcb:/usr/local/apache2/logs/ssl_scache(512000)"
SSLSessionCacheTimeout ?300


5.重启服务,输入密码

/usr/local/apache2/bin/apachectl restart

apache

原文地址:https://www.cnblogs.com/LyShark/p/8983839.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved