部署Apache网站服务以及访问控制的实现

栏目: 服务器 · Apache · 发布时间: 6年前

内容简介:WebServer常用的有Apache、IIS、nginx、Tomcat下载好源码包其中apr、apr-util软件包支持Apache上层应用跨平台,提供底层接口库

WebServer常用的有Apache、IIS、nginx、Tomcat

  • Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用服务器。Apache支持支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。
  • IIS是一种web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络上发送信息成为一件很容易的事。但IIS只能运行在Windows平台。
  • Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,而且支持负载均衡,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
  • Tomcat 是由 Apache开发的一个Servlet容器,实现了对Servlet 和 JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。可以认为是Apache的扩展,但是可以独立于Apache运行。 实际使用中Apache与Tomcat常常是整合使用。如果客户端请求的是静态页面,则只需要Apache服务器响应请求。 如果客户端请求动态页面,则是Tomcat服务器响应请求。 因为JSP是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。可以理解Tomcat为Apache的一种扩展。

以RedHat6为例

首先简单的部署一下Apache网站

  • 第一步: 源码编译及安装

下载好源码包 百度网盘 密码:0x96

  • apr-1.4.6.tar.gz
  • apr-util-1.4.1.tar.gz
  • http-2.4.2.tar.gz

其中apr、apr-util软件包支持Apache上层应用跨平台,提供底层接口库

1. 解压apr、apr-util、http软件包至/opt目录下

tar zxvf apr-1.4.6.tar.gz -C /opt
 tar zxvf apr-util-1.4.1.tar.gz -C /opt
 tar zxvf http-2.4.2.tar.gz

2. 将解压后的apr、apr-util软件包复制到http软件包的srclib目录下

cd /opt           //进入解压后的软件目录
cp -R  apr-1.4.6/ /opt/httpd-2.4.2/srclib/apr
cp -R  apr-util-1.4.1/ /opt/httpd-2.4.2/srclib/apr-util

3. 安装编译环境软件 包gcc 、 gcc-c++ 、 make 、 pcre、pcre-devel,pcre 是 一个 Perl 库,支持正则表达式(用yum仓库安装)

创建yum仓库的步骤详细步骤请参考 Linux下通过rdesktop远程登陆Windows系统

yum install gcc gcc-c++ make pcre pcre-devel -y

4. 根据服务器的实际需要,灵活设置不同的定制选项,如指定安装路径,启用字符集支持等。

cd  /opt/httpd-2.4.2
./configure \ --prefix=/usr/local/httpd \ --enable-so \ --enable-rewrite \ --enable-charset-lite \ --enable-cgi

上述的配置命令中,各选项的含义如下:

  • --prefix: 指定将httpd服务程序安装到哪个目录下。
  • --enable-so: 启用动态加载模块支持,使httpd具备进一步扩展功能的能力。
  • --enable-rewrite: 启用网页地址重写功能,用于网站优化及目录迁移维护。
  • --enable-charset-lite: 启用字符集支持,以便支持使用各种字符集编码的网页。
    ---enable-cgi: 启用CGI脚本程序支持,便于扩展网站的应用访问能力。

5. 编译及安装

完成配置以后,执行“make”命令进行编译,将源代码转换成可执行的程序,然后执行“make install”命令完成最后安装过程,其中make的过程可能需要较长的时间。

make
make install

6.确认安装结果

[root@RedHat6-1 ~]# ls /usr/local/httpd/
bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
  • /usr/local/httpd/bin: 存放httpd服务的各种可执行程序文件,包括主程序httpd、服务控制工具apachectl.
  • /usr/local/httpd/conf: 存放httpd服务的各种配置文件,包括主配置文件httpd.conf、增强配置子目录extra等。
  • /usr/local/httpd/htdocs: 存放网页文档,包括默认首页等。
  • /usr/local/httpd/logs: 存放httpd服务的日志文件。
  • /usr/local/httpd/modules: 存放httpd服务的各种模块文件。
  • /usr/local/httpd/cgi-bin: 存放各种CGI程序文件。

7.添加httpd系统服务

为了便于通过chkconfig进行管理httpd系统服务,需要建立可控的服务脚本。可以将apachectl脚本复制为/etc/init.d/httpd,并在文件的开头添加chkconfig识别配置。

grep -v "#" /usr/local/httpd/bin/apachectl > /etc/init.d/httpd
vim /etc/init.d/httpd    //在文件的开头添加
#!/bin/sh
    # chkconfig:2345 85 15
    # description:Apache is a World Wide Web server.
chkconfig --add httpd
chkconfig --list httpd
chkconfig --level 35 httpd on
  • 第二步: 配置并启动httpd服务

    1. 建立软链接方便管理配置文件

ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
vim /etc/httpd.conf
  ServerName  www.benet.com  //设置网站名称
  Listen 192.168.10.10:80   //监听web服务器本机的IPV4地址
  #Listen 80 //不监听本机IPV6地址

2.检查配置文件的语法

使用带“-t”选项的apachectl命令对配置内容进行语法检查,显示“Syntax OK”说明没有语法错误。

[root@RedHat6-1 ~]# cd /usr/local/httpd/bin/
[root@RedHat6-1 bin]# ./apachectl -t
Syntax OK

3.启动httpd服务

正常启动httpd服务以后,默认将监听tcp协议的80端口。

[root@RedHat6-1 ~]# service httpd start
[root@RedHat6-1 ~]# netstat -ntap | grep httpd
tcp        0      0 192.168.10.10:80            0.0.0.0:*                   LISTEN      2164/httpd
  • 第三步:测试Apache网站

    关闭Apache服务器的防火墙

    service iptables stop

    部署Apache网站服务以及访问控制的实现

接下来对Apache网站实现访问控制

为了更好地控制对网站资源的访问,可以为特定的网站目录添加访问授权。

  • 客户机地址限制

    通过配置项Order、Deny from 、Allow from,可以根据客户机的主机名或ip地址决定是否允许客户端访问。其中Order配置项用于设置限制顺序,Deny from和Allow from配置项用于设置具体限制内容。

vim /etc/httpd.conf
  <Directory "/usr/local/httpd/htdocs">
      ........     //省略部分内容
      Order deny,allow
      Deny from 192.168.10.0/24
  </Directory>
service httpd restart   //重启httpd服务

用客户机ip地址是192.168.10.0网段测试

部署Apache网站服务以及访问控制的实现
  • 用户授权限制

基于用户的访问控制包含认证和授权两个过程,认证是识别用户身份的过程,授权是允许特定用户访问特定目录区域的过程。下面以基本认证方式为例,添加用户授权限制。

1. 创建虚拟网站目录(/opt/test)

[root@RedHat6-1 ~]# mkdir /opt/test
[root@RedHat6-1 ~]# echo "this is test" > /opt/test/index.html

2. 创建用户数据认证文件

使用专门的htpasswd工具创建授权用户数据文件,必须指定用户数据文件的位置。

[root@RedHat6-1 ~]# htpasswd -c /etc/httpd/user zhangsan
New password:       //根据提示设置密码
Re-type new password: 
Adding password for user zhangsan
[root@RedHat6-1 ~]# cat /etc/httpd/user  //确认用户数据文件
zhangsan:4PzLKuWXoIm4A

3. 添加用户授权配置

有了授权账号以后,还需要加载一个独立的配置文件,使其能在特定的目录区域中添加授权配置,以启用基本认证等。

[root@RedHat6-1 ~]# cd /usr/local/httpd/conf/extra/
[root@RedHat6-1 extra]# vim vdir.conf 
  Alias /test "/opt/test/"           //声明

<Directory "/opt/test/">                     //网站目录区域
    Options Indexes MultiViews FollowSymLinks //允许使用符号链接
    AllowOverride None               //不允许隐含控制文件中的覆盖配置
    AuthName "hello"                //定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示 
    authtype basic                 //设置认证的类型是基本认证
    authuserfile /etc/httpd/user  //设置用于保存账号、密码的认证文件路径
#  authgroupfile /etc/httpd/group
    require valid-user           //认证文件中的合法用户才能访问
#  require user test
#  require group admin
</Directory>
service httpd restart   //重启服务使配置生效

4.客户机测试

部署Apache网站服务以及访问控制的实现 部署Apache网站服务以及访问控制的实现


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Agile Web Development with Rails, Third Edition

Agile Web Development with Rails, Third Edition

Sam Ruby、Dave Thomas、David Heinemeier Hansson / Pragmatic Bookshelf / 2009-03-17 / USD 43.95

Rails just keeps on changing. Rails 2, released in 2008, brings hundreds of improvements, including new support for RESTful applications, new generator options, and so on. And, as importantly, we’ve a......一起来看看 《Agile Web Development with Rails, Third Edition》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码