当前位置: 首页 > news >正文

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自带的工具程序

工具功能
htpasswdbasic认证于文件实现时,用到的账号密码生成工具
apachectlhttpd自带的服务控制脚本,支持start,stop,restart
apxs由httpd-devel包提供的,扩展httpd使用第三方模块的工具
rotatelogs日志滚动工具
suexec访问某些有特殊权限配置的资源时,临时切换至用户运行的工具
abapache 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 HOSTNAMET拒绝指定来源主机名的主机访问

注意:httpd-2.4版本默认是拒绝所有主机访问的,所以安装以后必须做显示授权访问
示例:
<RequireAll>
Require not ip 192.168.1.20
Require all granted
</RequireAll>

虚拟主机有三类:
1.相同IP不同端口
2.不同IP相同端口
3.相同Ip相同端口不同域名


7.编译安装httpd-2.4(以下实例是编译安装,相同IP相同端口不同域名)
httpd依赖于apr-1.4+,apr-util-1.4+,[apr-icon]

 //安装开发环境
 [root@lanzhiyong ~]# yum groups mark install "Development Tools" 
 [root@lanzhiyong ~]# groupadd -r apache
 [root@lanzhiyong ~]# useradd -M  -s /sbin/nologin  -g apache apache
 [root@lanzhiyong ~]# yum -y install openssl-devel pcre-devel expat-devel libt ool

     //下载并安装apr-1.4+和apr-util-1.4+
 [root@lanzhiyong ~]# cd /usr/src/
 [root@lanzhiyong ~]# wget http://mirrors.shu.edu.cn/apache//apr/apr-1.6.3.tar.bz2
 [root@lanzhiyong ~]# wget http://mirrors.shu.edu.cn/apache//apr/apr-util-1.6.1.tar.bz2
 [root@lanzhiyong ~]# tar xf apr-1.6.3.tar.bz2 
 [root@lanzhiyong ~]# tar xf apr-util-1.6.1.tar.bz2 
 [root@lanzhiyong ~]# cd apr-1.6.3
 [root@lanzhiyong ~]# vim configure                      
     # $RM "$cfgfile" // 将此行加上注释,或者删除此行

  [root@lanzhiyong ~]# ./configure --prefix=/usr/local/apr
        配置过程略过…
  [root@lanzhiyong ~]# make && make install   
        编译安装过程略…
  [root@lanzhiyong ~]# cd /usr/src/apr-util-1.6.1 
  [root@lanzhiyong ~]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
  [root@lanzhiyong ~]# make && make install

 //编译安装httpd
  [root@lanzhiyong ~]# cd
  [root@lanzhiyong ~]# wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.34.tar.bz2
  [root@lanzhiyong ~]# tar xf httpd-2.4.34.tar.bz2 
  [root@lanzhiyong ~]# cd httpd-2.4.34   
  [root@lanzhiyong ~]# ./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
  [root@lanzhiyong ~]# make && make install
        编译安装过程略…

        //设置主机名
   [root@lanzhiyong ~]# vim /etc/httpd24/httpd.conf 
#ServerName www.example.com:80 //取消#号

    //在最后一行加上一下内容,下面是配置相同IP相同端口不同域名,直接访问域名
    [root@lanzhiyong ~]# vim /etc/httpd24/httpd.conf 
    <VirtualHost 192.168.209.12:80>
    ServerName www.wangqing.com
    DocumentRoot "/usr/local/apache/htdocs/lan"
    ErrorLog "logs/lan/error_log"
    CustomLog "logs/lan/access_log" combined
 <Directory "/usr/local/apache/htdocs/lan">
     <RequireAll>
      Require all granted
     </RequireAll>
     </Directory>
     </VirtualHost>

    <VirtualHost 192.168.209.12:80>
     ServerName www.lanzhiyong.com
     DocumentRoot "/usr/local/apache/htdocs/yong"
     ErrorLog "logs/yong/error_log"
     CustomLog "logs/yong/access_log" combined
    <Directory "/usr/local/apache/htdocs/yong">
    <RequireAll>
        Require all granted
       </RequireAll>
       </Directory>
       </VirtualHost>

    //创建相应网页的日志目录
     [root@lanzhiyong ~]# mkdir /usr/local/apache/logs/{lan,yong}
     [root@lanzhiyong ~]# chown -R apache.apache /usr/local/apache/logs

    //创建网页目录并修改属主属组
    [root@lanzhiyong ~]# cd /usr/local/apache/htdocs/
    [root@lanzhiyong htdocs]# mkdir lan yong
    [root@localhost htdocs]# chown -R apache.apache lan
    [root@localhost htdocs]# chown -R apache.apache yong

     //创建网页 
     [root@localhost htdocs]# pwd
     /usr/local/apache/htdocs 
     [root@localhost htdocs]# echo 'hello welcome to visit lan' > lan/index.html
     [root@localhost htdocs]# echo 'hello welcome to visit yong' > yong/index.html 

     //启动httpd服务 80端口
     [root@lanzhiyong ]# cd /usr/local/apache/bin
     [root@lanzhiyong bin]# ./apachectl start 

     //查看 80端口是否启动
     [root@lanzhiyong bin]# ss -antl

      //在浏览器上验证
                 ******输入www.wangqing.com*********

Linux详细搭建httpd网站搭建服务(阿帕奇)

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

Linux详细搭建httpd网站搭建服务(阿帕奇)

转载于:https://blog.51cto.com/13833047/2158455

相关文章:

  • 集群负载均衡LVS
  • Julia 1.0 正式发布,这是新出炉的一份简单中文教程
  • 这就是生活
  • 面试宝典系列-MySQL缓存详解
  • proto3语法
  • JavaScript变量作用域(Variable Scope)和闭包(closure)的基础知识
  • Spring Data Redis—Pub/Sub(附Web项目源码)
  • 用面对对象方式定tab标签
  • Android 开发小知识点收集(随时更新)
  • 第二阶段冲刺8
  • 用shell脚本写的一个9*9乘法表
  • 导入项目后遇到页面报错如何解决
  • Ubuntu: how to md5sum (适用macOS)
  • Linux 磁盘配额 quota
  • crontab笔记
  • codis proxy处理流程
  • Django 博客开发教程 8 - 博客文章详情页
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • ES6系列(二)变量的解构赋值
  • export和import的用法总结
  • Java|序列化异常StreamCorruptedException的解决方法
  • Javascripit类型转换比较那点事儿,双等号(==)
  • Java-详解HashMap
  • java中的hashCode
  • SQLServer插入数据
  • 阿里云应用高可用服务公测发布
  • 试着探索高并发下的系统架构面貌
  • 小程序测试方案初探
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 如何在招聘中考核.NET架构师
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • $forceUpdate()函数
  • (2)STL算法之元素计数
  • (C语言)二分查找 超详细
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (三)模仿学习-Action数据的模仿
  • (算法设计与分析)第一章算法概述-习题
  • (一)认识微服务
  • (转)socket Aio demo
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .Net core 6.0 升8.0
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Core 版本不支持的问题
  • .NET gRPC 和RESTful简单对比
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET 中创建支持集合初始化器的类型
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • [C++][基础]1_变量、常量和基本类型
  • [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-controller-manager失败
  • [IDF]摩斯密码
  • [IE编程] 如何编程清除IE缓存
  • [Leetcode] Permutations II