1.前面提到:www服务是一种网页服务,但是网页服务也是需要软件来支撑的,通过软件的形式展示需要的网页,返回给浏览器。

www服务软件排名:http://w3techs.com/technologies/overview/web_server/all

说明:当前世界互联网主流web服务如上图所示:

静态服务软件:

1.apache:中小型企业静态web服务的主流,web服务器中的老大哥,份额逐年下降

2.nginx:大型企业新型网站静态web服务主流,框架逐渐成熟,份额直追apache。

动态服务器软件:

1.IIS:微软的web服务器

2.tomcat:中小型企业web服务器,互联网java容器主流

3.resin:(百度)大型企业动态web服务器,互联网java容器主流

2.安装apache有3种方式:

1)源码安装,只安装自己想要的参数    2)yum或rpm方式安装        3)高级安装  (自己制作rpm包,定制yum仓库)

3.什么是apache?

apache是web服务软件,任何平台都可以使用,在稳定性和安全性上比任何其他软件都好,是开源软件。但不可否认,nginx比apache在处理静态小文件并发上要好很多,占内存稍少,可做代理服务器或负载均衡来使用。

4.安装

4.1 这里选择源码安装,安装就三步:1)configure   2)make     3)make install

1)configure:. /configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 察看详细的说明帮助。

2)make:make是用来编译的,它从Makefile中读取指令,然后编译。这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码.

3)make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。make insatll,这条命令来进行安装(当然有些软件需要先运行 make check 或 make test 来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)。

4.2 查看有无安装历史rpm -qa httpd ,如果有可以卸载:rpm -e 软件版本

4.3将软件下载到指定的地方:/home/oldboy/tools

[root@djw3 tools]# ls -lh
total 7.2M
-rw-r--r--. 1 root root 7.2M Sep 29  2017 httpd-2.2.27.tar.gz

4.4解压软件:tar zxf  httpd-2.2.27.tar.gz

[root@djw3 tools]# ll
total 7348
drwxr-xr-x. 11  500  500    4096 Mar 14  2014 httpd-2.2.27
-rw-r--r--.  1 root root 7519677 Sep 29  2017 httpd-2.2.27.tar.gz

4.5 configure/make/make install 生成makefile文件

cd  httpd-2.2.27  && ll

一般编译安装一个新软件,不会的话,有两个文件要注意,一个是readme,一个是install

./configure --prefix=/application/apache2.2.27
--enable-deflate   #提供对类容的压缩传输编码支持,一般为html,js,css等站点,此参数会提高传输速度,apache调优重要选项之一
--enable-expires   #激活允许通过配置文件控制HTTP的Expires:和Cache-Control:头类容,即对网站图片,js,css等内容提供在客户端浏览器缓存的设置,apache调优重要选项之一
--enable-headers  #提供允许对HTTP请求头的控制
--enable-modules=most
--enable-so    # 激活apache服务的DSO(动态共享对象)支持,即在以后以DSO的方式编译安装共享模块,这模块本身不能用DSO方式编译
--with-mpm=worker  #worker模式是使用线程来处理请求 所以可以处理更多的并发请求,如果不指定此参数,默认以prefork进程模式, apache调优重要选项之一
--enable-rewrite   #URL重写功能 伪静态通过此模块实现
make
make install 这一步才会生成到指定的位置。

ln -s /application/apache2.2.27/  /application/apache   制作软链接

configure 错误提示:

checking whether to enable mod_deflate... configure: error:
mod_deflate has been requested but can not be built due to prerequisite
failures

zlib-devel 没装的原因

 4.6.启动:

/application/apache/bin/apachectl -t  ---->检查语法

[root@djw3 bin]# /application/apache/bin/apachectl -t 
httpd: apr_sockaddr_info_get() failed for djw3
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK

/application/apache/bin/apachectl start    ---->实际启动的是httpd服务,所以可以直接启动  httpd -k start

  [root@djw3 bin]# /application/apache/bin/apachectl start
httpd: apr_sockaddr_info_get() failed for djw3
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName 

lsof -i:80--->查看端口,确认开启

[root@djw3 bin]# lsof -i:80
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
httpd   29922   root    4u  IPv6  88921      0t0  TCP *:http (LISTEN)
httpd   29924 daemon    4u  IPv6  88921      0t0  TCP *:http (LISTEN)
httpd   29925 daemon    4u  IPv6  88921      0t0  TCP *:http (LISTEN)
httpd   29926 daemon    4u  IPv6  88921      0t0  TCP *:http (LISTEN)

ps  -ef |grep httpd---->确认进程,可以看到httpd -k start

[root@djw3 bin]# ps  -ef |grep httpd
root     29922     1  0 04:04 ?        00:00:00 /application/apache2.2.27/bin/httpd -k start
daemon   29923 29922  0 04:04 ?        00:00:00 /application/apache2.2.27/bin/httpd -k start
daemon   29924 29922  0 04:04 ?        00:00:00 /application/apache2.2.27/bin/httpd -k start
daemon   29925 29922  0 04:04 ?        00:00:00 /application/apache2.2.27/bin/httpd -k start
daemon   29926 29922  0 04:04 ?        00:00:00 /application/apache2.2.27/bin/httpd -k start
root     30014 23061  0 04:08 pts/2    00:00:00 grep http

查看网站,出现IT works表示正常,这里如果可以ping通,但是连接不上,telnet不行,可能是防火墙策略,记得关闭防火墙

同理:也可以通过wget和curl测试服务是否正常,如下:

[root@djw3 ~]# wget 192.168.0.103
--2019-05-23 04:27:08--  http://192.168.0.103/
Connecting to 192.168.0.103:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 44 [text/html]
Saving to: “index.html”
100%[========================================================================================>] 44          --.-K/s   in 0s     
2019-05-23 04:27:08 (976 KB/s) - “index.html” saved [44/44]
 [root@djw3 ~] curl -i 192.168.0.103
HTTP/1.1 200 OK
Date: Wed, 22 May 2019 20:28:13 GMT
Server: Apache/2.2.27 (Unix) DAV/2
Last-Modified: Sat, 20 Nov 2004 20:16:24 GMT
ETag: "22d23-2c-3e9564c23b600"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html
<html><body><h1>It works!</h1></body></html>

5.部署一个简单节点:

知道就可以了  , apachectrl -l  激活的模块       apachectrl -M  都有哪些是静态模块

几乎每一个软件都有如下目录:bin    conf  logs

主配置文件如下:apache/conf/httpd.conf

网站的根目录:grep  -i   drcumentroot  httpd.conf

找到对应的文件,可以修改访问:

[root@djw3 htdocs]# vim  index.html
<html><body><h1>长得丑,活得久!!!</h1></body></html>

一般情况下,不修改配置文件,只是改静态程序是不需要重启机器的。

6.默认文件的配置路径和修改。

htdocs这是编译安装时apache的默认站点目录,当指定了默认站点后,通过DirectoryIndex  index.html来指定首页文件,一般在程序中,我们也是通过index.html、index.php、index.jsp、index.htm等指定首页文件。

如下:修改配置文件,增加一个dangjingwei.html,首先找的首页一定是dangjingwei.html当没有的时候,就会找index.html

因为修改配置文件,所以需要平滑重启 ../bin/apachectl  graceful

 [root@djw3 htdocs]# /application/apache/bin/apachectl -t
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK
[root@djw3 htdocs]# /application/apache/bin/apachectl graceful
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

7.配置文件中的一段如下:

对于directory需要说明的是,如果有站点,就要进行配置,才能让用户使用!!!

DocumentRoot "/applications/apache2.2.27/htdocs" apache默认的站点目录,路径结尾不要添加斜线
<Directory /> 根目录(以下是对根目录的限制,软件访问后,禁止对根目录访问,这是不允许求改,知道就好,我们不进行配置,无需理解)
Options FollowSymLinks FollowSymLinks表示允许符号链接,没加选项表示禁止,如不允许目录浏览等
AllowOverride None 表示禁止用户对目录配置文件(.htaccess进行修改)重载,普通站点目录此项建议不开启
Order deny,allow 允许未被明确拒绝的 (从后往前读)
Deny from all 拒绝所有访问
</Directory>
<Directory "/applications/apache2.2.31/htdocs"> 站点目录(以下为默认站点目录的限制,如果读者私自配置了站点目录而没有配置这里就会出现 403错误)
对于403报错:
1)软件有bug 情况:   没有首页,而且禁止目录结构就会报403
2)  软件正常情况:   如果权限不足,许可不足,也会报403
Options Indexes FollowSymLinks FollowSymLinks表示允许符号链接,indexes表示允许目录浏览,如允许目录浏览,允许符号链接
这里很危险,应禁止目录浏览 应更改为 Options FollowSymLinks或Options -Indexes FollowSymLinks(apache的第一个优化点)
AllowOverride None 表示禁止用户对目录配置文件(.htaccess进行修改)重载 尽量不开启.htaccess 安全隐患大,规则多了网站访问性能低
Order allow,deny 拒绝未被明确允许的 (从后往前读)
Allow from all 所有人都能访问
</Directory>
根据上面的修改后,测试如下,为正常情况:

8.从配置文件extra的一些简介

[root@djw3 extra]# ll
-rw-r--r--. 1 root root  2859 May 23 03:52 httpd-autoindex.conf
-rw-r--r--. 1 root root  1753 May 23 03:52 httpd-dav.conf
-rw-r--r--. 1 root root  2344 May 23 03:52 httpd-default.conf
-rw-r--r--. 1 root root  1103 May 23 03:52 httpd-info.conf
-rw-r--r--. 1 root root  5078 May 23 03:52 httpd-languages.conf
-rw-r--r--. 1 root root   949 May 23 03:52 httpd-manual.conf
-rw-r--r--. 1 root root  3789 May 23 03:52 httpd-mpm.conf
-rw-r--r--. 1 root root  2207 May 23 03:52 httpd-multilang-errordoc.conf
-rw-r--r--. 1 root root 11530 May 23 03:52 httpd-ssl.conf
-rw-r--r--. 1 root root   817 May 23 03:52 httpd-userdir.conf
-rw-r--r--. 1 root root  1507 May 23 03:52 httpd-vhosts.conf

在从配置文件中,这里先要注意这三个文件:

httpd-vhosts.conf  多个域名跑在一台服务器上使用的文件

httpd-mpm.conf apache有两种模式:worker和prefork模式,在安装./configure 的时候指定为worker模式,如果不指定的话,默认是prefork模式,   --with-mpm=worker

httpd-default.conf 一些常见的配置参数都在这个文件中。

三十三、www服务apache软件的更多相关文章

  1. 跟我学SpringCloud | 第三篇:服务的提供与Feign调用

    跟我学SpringCloud | 第三篇:服务的提供与Feign调用 上一篇,我们介绍了注册中心的搭建,包括集群环境吓注册中心的搭建,这篇文章介绍一下如何使用注册中心,创建一个服务的提供者,使用一个简 ...

  2. 常见的三种Web服务架构

    常见的三种Web服务架构 转自http://www.cnblogs.com/bvbook/archive/2008/12/24/1360942.html 相互竞争的服务架构 The Competing ...

  3. WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇]

    原文:WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制[下篇] 在[第2篇]中,我们深入剖析了单调(PerCall)模式下WCF对服务实例生命周期的控制,现在我们来 ...

  4. JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录

    JAVA之旅(三十三)--TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录 我们继续网络编程 一.TCP 说完UDP,我们就来说下我们应该重点掌握的TCP了 TCP传输 Soc ...

  5. Java进阶(三十一) Web服务调用

    Java进阶(三十一) Web服务调用 前言 有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下: https://www.evernote.com/shard/s744/sh/c37cd5 ...

  6. Docker 入门 第三部分: 服务

    目录 Docker 入门 第三部分: 服务 先决条件 介绍 你的第一个 docker-compose.yml 文件 docker-compose.yml 运行你新建的负载均衡应用 扩展应用程序 卸载应 ...

  7. Centos 6.5 yum 安装Apache软件

    首先在系统上面查询一下是否已经安装了apache 软件[Apache软件在linux系统里的名字是httpd] rpm    -qa    httpd 如果有返回的信息,则会显示已经安装的软件.如果没 ...

  8. Web服务(Apache、Nginx、Tomcat、Jetty)与应用(LAMP、CMS-WordPress&Ghost、Jenkins、Gitlab)

    Web服务和应用是目前信息技术领域的热门技术.如何使用Docker来运行常见的Web服务器(包括Apache.Nginx.Tomcat等),以及一些常用应用(LAMP.CMS等).包括具体的镜像构建方 ...

  9. CentOS6安装各种大数据软件 第三章:Linux基础软件的安装

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

随机推荐

  1. Linux 正则表达式与文本处理器 三剑客

    Linux 正则表达式与文本处理器 三剑客 一.正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在linu ...

  2. 吴裕雄--天生自然 JAVASCRIPT开发学习:for 循环

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. cf1200 D White Lines(二维差分)

    题目大意 有一个大小为n的矩阵,每个1*1的单位为黑或白,我们可以用一个(只有一个)大小为k*k的白色矩阵覆盖,问:最多的时候有几条白线(横的全为白 或竖的全为白 即为白线). 思路 要想把一条线(以 ...

  4. js动态删除行错误

    Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'. js ...

  5. hook鼠标键盘记录和回放

    unit Unit1; // download by http://www.codefans.net interface uses Windows, Messages, SysUtils, Class ...

  6. ES6 之 第七种数据类型Symbol

    概述 为了减少对象的属性名冲突,ES6引入新的原始数据类型Symbol,JS的第七种数据类型. Symbol 能够保证每个属性的名字都是独一无二,这样就能从根本上防止属性名冲突. Symbol 值能够 ...

  7. one_day_one_linuxCmd---tar命令

    <坚持每天学习一个 linux 命令,今天我们来学习 tar 命令> 摘要:tar 命令是一个 Linux 下的打包程序,通常在 Linux 下,打包和压缩是不同的程序,打包通过 tar ...

  8. vSphere 6.7 新特性 — 基于虚拟化的安全 (VBS)

    https://blogs.vmware.com/china/2018/07/27/vsphere-6-7-%E6%96%B0%E7%89%B9%E6%80%A7-%E5%9F%BA%E4%BA%8E ...

  9. jboss的JVMroute记录

    jboss5的nodename是在 /usr/local/jboss-5.1.0.GA/server/dms/deploy/jbossweb.sar/server.xml   这里的  jvmrout ...

  10. Python—数据结构——链表

    数据结构——链表 一.简介 链表是一种物理存储上非连续,数据元素的逻辑顺序通过链表中的指针链接次序,实现的一种线性存储结构.由一系列节点组成的元素集合.每个节点包含两部分,数据域item和指向下一个节 ...