编译Apache服务部署静态网站
Apache是世界使用排名第一的Web服务器软件,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一.它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中.同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部.也是一个基金会的名称.
编译安装Apache
1.配置Yum仓库,安装Apache所依赖的包文件,以及编译器.
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo |
2.安装Apr-1.6.3,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库.
[root@localhost ~]# wget http://www-eu.apache.org/dist//apr/apr-1.6.3.tar.gz |
3.安装Apr-util-1.6.1,是包含了一些常用的开发组件,这些组件与apache的关系更加密切一些,比如存储段和存储段组,加密等.
[root@localhost ~]# wget http://www-eu.apache.org/dist//apr/apr-util-1.6.1.tar.gz |
4.安装Apache-2.4.33
[root@localhost ~]# wget http://www-eu.apache.org/dist//httpd/httpd-2.4.33.tar.gz |
配置Apache访问控制
Apache可以基于原主机名,原IP地址,或原主机上的浏览器特征,对网站上的资源进行访问控制,它通过Allow指令允许某个主机访问服务器上的网站资源,通过Deny指令实现禁止访问,还可以给指定的页面添加密码认证.
◆基于用户名密码的认证◆
作用:当我们打开指定网页时,会提示需要输入密码才能访问,这就是密码认证技术.
1.编辑Apache主配置文件,在相应的区域中加入以下标★语句.
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
2.在要添加认证的网页文件下创建 .htaccess 文件,并覆盖写入以下内容.
[root@localhost ~]# vim /usr/local/apache2/htdocs/.htaccess |
3.借助Apache的工具生成密码文件,此处的用户名密码就是访问网页时的号码.
[root@localhost ~]# /usr/local/apache2/bin/htpasswd -c /usr/local/apache2/htdocs/login.psd LyShark #创建认证用户(覆盖) |
4.重启Apache服务,并访问页面测试即可.
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart |
◆基于IP地址的身份认证◆
作用:当我们打开指定网页时,会判断您的IP地址是允许访问还是拒绝访问,这就是基于IP的认证技术
◆允许个别IP地址访问网页,拒绝所有◆
1.编辑Apache主配置文件,在相应的区域中加入以下标★语句,在
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
2.重启Apache服务
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart |
◆拒绝个别IP地址访问网页,允许所有◆
1.编辑Apache主配置文件,在相应的区域中加入以下标★语句,在
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
2.重启Apache服务
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart |
配置Apache目录别名
有时候一个网页目录过深,每次输入地址过长,此时我们可以使用别名的方式来减小目录深度.
1.编辑Apache主配置文件,在配置文件行尾,追加写入以下标★语句
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
2.重启Apache服务
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart |
配置Apache虚拟主机
利用虚拟主机功能,可以把一台处于运行状态的物理服务器分割成多个,虚拟服务器,出于各种考虑目前各种企业都在使用虚拟主机功能,Apache虚拟主机功能,是服务器基于用户的请求的不同Ip地址,主机域名或端口号,实现提供多个网站同时为外部提供访问服务的技术,用户取得的资源不同最后取得的页面也会不同.
◆基于IP的虚拟主机◆
如果一台服务器有多个IP地址,而且每个IP地址与服务器上部署的每个网站对应,这样当用户请求访问不同的IP时,会访问到不同网站的页面资源,而且每个网站都有一个独立的IP地址,以下实验将实现在一台服务器上配置多个IP,搭建多个网站,每个网站使用一个IP地址.
1.在eno16777728上配置一个网卡子接口
[root@localhost]# ifconfig eno16777728:0 192.168.1.13 netmask 255.255.255.0 |
2.编辑主配置文件,开启虚拟主机选项(取消注释),在相应的区域中取消以下标★注释
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
3.修改虚拟主机配置文件添加虚拟主机,在相应的区域中修改以下标★语句
[root@localhost ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf |
4.分别创建 vhost1 和 vhost2 目录,并放入两个index.html文件
[root@localhost ~]# mkdir /usr/local/apache2/htdocs/vhost1 |
5.重启Apache服务,测试效果,两个IP分别对应两个网站主页
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart |
◆基于端口的虚拟主机◆
基于端口的虚拟主机,可以让用户通过端口号,来访问服务器上的资源,在使用Apache配置虚拟网站时,基于端口的配置方式最为复杂,以下实验将实现在一台服务器上配置多个端口,搭建多个网站,每个网站使用一个端口.
1.编辑主配置文件,开启虚拟主机选项(取消注释),在相应的区域中取消以下标★注释
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
2.修改虚拟主机配置文件添加虚拟主机,在相应的区域中修改以下标★语句
[root@localhost ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf |
3.修改Apache主配置文件,添加两个端口监听
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
4.分别创建 vhost1 和 vhost2 目录,并放入两个index.html文件
[root@localhost ~]# mkdir /usr/local/apache2/htdocs/vhost1 |
5.重启Apache服务,测试效果,两个端口分别对应两个网站主页
[root@localhost ~]# usr/local/apache2/bin/apachectl restart |
◆基于域名的虚拟主机◆
当服务器无法为每一个网站分配一个独立的IP的时候,可以尝试让Apache自动识别用户请求的域名,从而根据不同的域名请求来传输不同的内容,这里我们为了验证实验要手动搭建一个DNS解析,以下实验将实现在一台服务器上多个域名,搭建多个网站,每个网站使用一个域名.
1.首先搭建DNS域名解析,模拟vhost1.com与vhost2.com两个网站域名.
[root@localhost ~]# yum install -y bind bind-chroot |
2.配置DNS解析,这里我们简单配置即可,有关DNS详细例子请查看其他相关文章.
[root@localhost ~]# vim /etc/named.conf |
3.拷贝配置文件,并修改成以下模样,并重启Bind
[root@localhost ~]# cp -a /var/named/named.localhost /var/named/vhost1.com.zone |
4.编辑Apache主配置文件,开启虚拟主机选项(取消注释),在相应的区域中取消以下标★注释
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
5.修改虚拟主机配置文件添加虚拟主机,在相应的区域中修改以下标★语句
[root@localhost ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf |
6.分别创建 vhost1 和 vhost2 目录,并放入两个index.html文件
[root@localhost ~]# mkdir /usr/local/apache2/htdocs/vhost1 |
7.重启Apache服务,测试效果,两个域名分别对应两个网站主页
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart |
配置Apache个人主页
如果想为每个系统独立的用户建立一个网站,通常情况先是基于虚拟主机的功能来部署多个网站,但是这样工作量实在太大,还好Apache为我们提供了个人主页功能,以下实验将实现给予不同的用户一个单独的网页空间,实现每个人可以有自己的空间,类似QQ空间.
1.编辑主配置文件,开启个人主页选项(取消注释),在相应的区域中取消以下标★注释.
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
2.创建用户并设置密码.
[root@localhost ~]# useradd lyshark |
3.进入lyshark用户家目录,创建相应文件,并赋予权限.
[root@localhost ~]# mkdir -p /home/lyshark/public_html #在用户家目录创建public_html |
4.重启Apache服务,并进入浏览器输入以下格式进行验证.
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart |
启用Apache地址跳转
在有些以后我们需要跳转一些页面,比如说今天搞活动我们要把以前的页面替换掉让其暂时跳转到活动页面上来,恰巧Apache提供这样的域名跳转的配置服务,下面实验将实现当用户访问 vhost1.com 时会自动跳转到 vhost2.com 网站上来.
1.首先搭建DNS域名解析,模拟vhost1.com与vhost2.com两个网站域名.
[root@localhost ~]# yum install -y bind bind-chroot |
2.配置DNS解析,这里我们简单配置即可,有关DNS详细例子请查看其他相关文章.
[root@localhost ~]# vim /etc/named.conf |
3.拷贝配置文件,并修改成以下模样,并重启Bind
[root@localhost ~]# cp -a /var/named/named.localhost /var/named/vhost1.com.zone |
4.编辑主配置文件开启相应功能(取消注释)
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
5.改写虚拟主机配置文件,在相应的区域中取消以下标★注释
[root@localhost ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf |
6.分别创建网页文件存储位置,和测试页
[root@localhost ~]# mkdir -p /usr/local/apache2/htdocs/vhost1 |
7.在要跳转的网页目录下创建 .htaccess 文件 (本例中应在vhost1目录下创建),覆盖写入以下内容即可
[root@localhost ~]# vim /usr/local/apache2/htdocs/vhost1/.htaccess |
8.重启Apache服务,重新加载配置,现在访问 vhost1.com 会跳转到 vhost2.com 目录下
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart |
启用 HTTPS SSL 加密
在生产环境中,我们需要让我们的网站更加的安全,多数情况下我们会开启https的加密认证,来保证数据传输的安全性,下面实验将实现启动SSL证书,也就是https认证,端口为443.
1.建立服务器私钥,过程中需要输入密码
[root@localhost ~]# openssl genrsa -des3 -out server.key 1024 |
2.建立证书,生成的csr文件交给CA签名后形成服务端自己的证书
[root@localhost ~]# openssl req -new -key server.key -out server.csr |
3.转化成证书,这一步由证书CA机构来做的,这里只是实验.
[root@localhost ~]# openssl x509 -req -days 365 -sha256 -in server.csr -signkey server.key -out servernew.crt |
4.配置服务器让其支持https
[root@localhost ~]# cp -a servernew.crt /usr/local/apache2/conf/server.crt #将证书复制到conf目录下 |
5.编辑主配置文件开启相应功能(取消注释)
[root@localhost ~]# vim /usr/local/apache2/conf/httpd.conf |
6.配置SSL模板文件
[root@localhost ~]# vim /usr/local/apache2/conf/extra/httpd-ssl.conf |
7.重启Apache服务,输入密码
[root@localhost ~]# /usr/local/apache2/bin/apachectl restart |
8.访问网站,这里注意要加上443端口,否则无法访问
[root@localhost ~]# https://127.0.0.1:443/index.html |