天天看点

linux httpd服务 使用域名访问,Linux详细搭建httpd网站搭建服务(阿帕奇)

1.httpd简介

当今主流的开源Web服务器软件有httpd(Apache),lighttpd,nginx,thttpd等,而httpd是迄今为止使用量多的web服务器,据统计目前httpd的全球占有量是47%左右,虽然有所下降但是使用两仍然是最多的,统计web服务器使用率的网站是:http://news.netcraft.com/

httpd工作的原理:httpd是Apache超文本传输协议(HTTP)服务器的主程序,被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池。

通常httpd不应该被直接调用,而应该在类Unix系统中由apachectl调用,在Windows作为服务运行。

2.httpd的版本

httpd-1.3

httpd-2.0

httpd-2.2

httpd-2.4

目前为止最新的版本是httpd-2.4.6,但是这里我用的是系统自带的RPM包安装的httpd-2.2.15版本的,最新版本配置可能会有所不同

本文主要介绍httpd的两大版本,httpd-2.2和httpd-2.4。

CentOS6系统的版本默认提供的是httpd-2.2版本的rpm包

CentOS7系统的版本默认提供的是httpd-2.4版本的rpm包

3.httpd工作模型

高度模块化:DSO

MPM:Multipath Processing Module #多处理模块

prefork:一次一个进程响应一个请求

worker:一个进程生成多个线程,一个线程响应一个请求

event:基于事件驱动,一个进程响应多个请求

4.httpd自带的工具程序

工具

功能

htpasswd

basic认证于文件实现时,用到的账号密码生成工具

apachectl

httpd自带的服务控制脚本,支持start,stop,restart

apxs

由httpd-devel包提供的,扩展httpd使用第三方模块的工具

rotatelogs

日志滚动工具

suexec

访问某些有特殊权限配置的资源时,临时切换至用户运行的工具

ab

apache benchmark,httpd的压力测试工具

5.rpm包安装的httpd程序环境

文件/目录

对应的功能

/var/log/httpd/access.log

访问日志

/var/log/httpd/error_log

错误日志

/var/www/html/

站点文档目录

/usr/lib64/httpd/modules/

模块文件路径

/etc/httpd/conf/httpd.conf

主配置文件

/etc/httpd/conf.modules.d/*.conf

模块配置文件

/etc/httpd/conf.d/*.conf

辅助配置文件

6.httpd常用的 配置

#切换使用MPM(编辑/etc/httpd/conf.modules.d/00-mpm.conf文件)

//LoadModule mpm_NAME_module modules/mod_mpm_NAME.so

//NAME有三种,分别是:

prefork

event

worker

访问控制法则:

法则

功能

Require all granted

允许所有主机访问

Require all deny

拒绝所有主机访问

Require ip IPADDR

授权指定来源地址的主机访问

Require not ip IPADDR

拒绝指定来源地址的主机访问

Require host HOSTNAME

授权指定来源主机名的主机访问

Require not host HOSTNAME

T拒绝指定来源主机名的主机访问

注意:httpd-2.4版本默认是拒绝所有主机访问的,所以安装以后必须做显示授权访问

示例:

Require not ip 192.168.1.20

Require all granted

虚拟主机有三类:

1.相同IP不同端口

2.不同IP相同端口

3.相同Ip相同端口不同域名

7.编译安装httpd-2.4(以下实例是编译安装,相同IP相同端口不同域名)

httpd依赖于apr-1.4+,apr-util-1.4+,[apr-icon]

//安装开发环境

[[email protected] ~]# yum groups mark install "Development Tools"

[[email protected] ~]# groupadd -r apache

[[email protected] ~]# useradd -M -s /sbin/nologin -g apache apache

[[email protected] ~]# yum -y install openssl-devel pcre-devel expat-devel libt ool

//下载并安装apr-1.4+和apr-util-1.4+

[[email protected] ~]# cd /usr/src/

[[email protected] ~]# wget http://mirrors.shu.edu.cn/apache//apr/apr-1.6.3.tar.bz2

[[email protected] ~]# wget http://mirrors.shu.edu.cn/apache//apr/apr-util-1.6.1.tar.bz2

[[email protected] ~]# tar xf apr-1.6.3.tar.bz2

[[email protected] ~]# tar xf apr-util-1.6.1.tar.bz2

[[email protected] ~]# cd apr-1.6.3

[[email protected] ~]# vim configure

# $RM "$cfgfile" // 将此行加上注释,或者删除此行

[[email protected] ~]# ./configure --prefix=/usr/local/apr

配置过程略过…

[[email protected] ~]# make && make install

编译安装过程略…

[[email protected] ~]# cd /usr/src/apr-util-1.6.1

[[email protected] ~]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

[[email protected] ~]# make && make install

//编译安装httpd

[[email protected] ~]# cd

[[email protected] ~]# wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.34.tar.bz2

[[email protected] ~]# tar xf httpd-2.4.34.tar.bz2

[[email protected] ~]# cd httpd-2.4.34

[[email protected] ~]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modules=most --enable-mpms-shared=all --with-mpm=worker

[[email protected] ~]# make && make install

编译安装过程略…

//设置主机名

[[email protected] ~]# vim /etc/httpd24/httpd.conf

#ServerName www.example.com:80 //取消#号

//在最后一行加上一下内容,下面是配置相同IP相同端口不同域名,直接访问域名

[[email protected] ~]# vim /etc/httpd24/httpd.conf

ServerName www.wangqing.com

DocumentRoot "/usr/local/apache/htdocs/lan"

ErrorLog "logs/lan/error_log"

CustomLog "logs/lan/access_log" combined

Require all granted

ServerName www.lanzhiyong.com

DocumentRoot "/usr/local/apache/htdocs/yong"

ErrorLog "logs/yong/error_log"

CustomLog "logs/yong/access_log" combined

Require all granted

//创建相应网页的日志目录

[[email protected] ~]# mkdir /usr/local/apache/logs/{lan,yong}

[r[email protected] ~]# chown -R apache.apache /usr/local/apache/logs

//创建网页目录并修改属主属组

[[email protected] ~]# cd /usr/local/apache/htdocs/

[[email protected] htdocs]# mkdir lan yong

[[email protected] htdocs]# chown -R apache.apache lan

[[email protected] htdocs]# chown -R apache.apache yong

//创建网页

[[email protected] htdocs]# pwd

/usr/local/apache/htdocs

[[email protected] htdocs]# echo 'hello welcome to visit lan' > lan/index.html

[[email protected] htdocs]# echo 'hello welcome to visit yong' > yong/index.html

//启动httpd服务 80端口

[[email protected] ]# cd /usr/local/apache/bin

[[email protected] bin]# ./apachectl start

//查看 80端口是否启动

[[email protected] bin]# ss -antl

//在浏览器上验证

******输入www.wangqing.com*********

linux httpd服务 使用域名访问,Linux详细搭建httpd网站搭建服务(阿帕奇)

*******输入www.lanzhiyong.com********

linux httpd服务 使用域名访问,Linux详细搭建httpd网站搭建服务(阿帕奇)