web网站服务(一)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: web网站服务(一)

Apache简介

       Apache HTTP Server 是开源软件项目的杰出代表,基于标准的HTTP网络协议提供网页浏览服务,在Web服务器领域中长期保持着超过半数的份额。Apache服务器可以运行在linux,UNIX,windows等多种操作系统平台中。

主要特点:

       开放源代码、跨平台应用,支持多种网页编程语言 ,模块化设计 、运行稳定、良好的安全性。

软件版本:

       1.X 目前最高版本是1.3,运行稳定 向下兼容性较好,但缺乏一些较新的功能 。

       2.X 目前最高版本是2.4 具有更多的功能特性 与1.X相比,配置管理风格存在较大差异。

编译安装的优点

       具有较大的自由度,功能可定制 可及时获得最新的软件版本 普遍适用于大多数Linux版本,便于移植使用。

httpd服务的主要目录和文件

服务目录:/usr/local/httpd/

主配置文件:/usr/local/httpd/conf/httpd.conf

网页目录:/usr/local/httpd/htdocs/

服务脚本:/usr/local/httpd/bin/apachectl

执行程序:/usr/local/httpd/bin/httpd

访问日志: /usr/local/httpd/log/access_log

错误日志: /usr/local/httpd/log/error_log

安装步骤

       准备工作:为了避免发生端口冲突,程序冲突等现象,建议卸载使用RPM方式安装的httpd。

[root@www ~]# rpm -e httpd --nodeps

安装源码包

       apache的配置及运行需要apr,pcre等软件包的支持,因此需要先安装这些软件及开发包,以便提供相应的库和头文件,确保Apache的安装顺利完成。

注:挂载系统盘进Packages安装。

1. [root@localhost ~]# mount /dev/cdrom /media/
2. mount: /dev/sr0 写保护,将以只读方式挂载
3. [root@localhost ~]# cd /media/Packages/
4. [root@localhost Packages]#
1. rpm -ivh apr-1.4.8-3.el7.x86_64.rpm
2. rpm -ivh apr-devel-1.4.8-3.el7.x86_64.rpm
3. rpm -ivh cyrus-sasl-devel-2.1.26-20.el7_2.x86_64.rpm
4. rpm -ivh expat-devel-2.1.0-8.el7.x86_64.rpm 
5. rpm -ivh libdb-devel-5.3.21-19.el7.x86_64.rpm
6. rpm -ivh openldap-devel-2.4.40-13.el7.x86_64.rpm
7. rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm
8. rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
9. rpm -ivh pcre-devel-8.32-15.el7_2.1.x86_64.rpm
10. rpm -ivh pcre-8.32-15.el7_2.1.x86_64.rpm

源码编译及安装

       源码编译安装httpd服务主要的过程主要包含解包,配置,编译及安装。

  • 解包

挂载httpd资源包到/media

1. [root@localhost ~]# eject
2. [root@localhost ~]# mount /dev/cdrom /media
3. mount: /dev/sr0 写保护,将以只读方式挂载

进入到挂载点下执行

1. [root@localhost ~]# cd /media/
2. [root@localhost media]# tar zxf httpd-2.4.25.tar.gz -C /usr/src
3. [root@localhost media]# cd /usr/src/httpd-2.4.25/
4. [root@localhost httpd-2.4.25]#
  • 配置

       ./configure --help命令可以查看各种配置选项及含义,./代表当前目录。

[root@localhost httpd-2.4.25]#./configure   --prefix=/usr/local/httpd    --enable-so    --enable-rewrite    --enable-charset-lite   --enable-cgi

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

--prefix 指定将httpd服务程序安装到哪个目录下,如/usr/local/httpd。

--enable-so 启用动态加载模块支持,使httpd具备进一步扩展功能的能力。

--enable-rewrite 启用网页地址重写功能,用于网站优化及目录迁移维护。

--enable-charset-lite 启动字符集支持,以便支持使用各种字符集编码的网页。

--enable-cgi 启用CGI脚本程序支持,便于扩展网站的应用访问能力。

  • 编译及安装

       配置完成以后,执行make命令进行编译,将源代码转换成可执行的程序。

       然后执行make install完成最后的编译安装。可以用&&连接命令!

1.  [root@localhost httpd-2.4.25]# make
2.  [root@localhost httpd-2.4.25]# make install

确认安装结果

1. [root@localhost ~]# ls /usr/local/httpd
2. bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules
3. [root@localhost ~]# /usr/local/httpd/bin/apachectl start
4. AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
5. [root@localhost ~]# netstat -anpt | grep httpd
6. tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      21569/httpd

       安装后的/usr/local/httpd 目录下,主要子目录的用途如下:

/usr/local/httpd/bin : 存放httpd服务的各种执行程序文件,包括主程序httpd,服务控制工具apachectl等。

/usr/local/httpd/cgi-bin : 存放各种CGI程序文件。

/usr/local/httpd/logs : 存放httpd服务的日志文件。

/usr/local/httpd/conf : 存放httpd服务的各种配置文件,包括主配置文件httpd.conf,增强配置子目录extra等。

/usr/local/httpd/htdocs : 存放网页文档,包括默认首页文件index.html等。

/usr/local/httpd/modules : 存放httpd服务的各种模块文件。

优化执行路径

       通过源码编译安装的httpd服务,程序路径并不在默认的搜索路径中,为了使该服务在使用时更便捷,可以为相关程序添加符号链接(软链接),这样就不用输入冗长的路径了。

1.  [root@localhost ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin
2.  [root@localhost ~]# ll /usr/local/bin/httpd /usr/local/bin/apachectl

       例如,当执行“httpd -v”命令时,相当于执行“/usr/local/httpd/bin/httpd -v”。

添加httpd系统服务

       CentOS7系统下,将编译安装的程序添加为系统服务方式有两种。1.通过chkconfig命令添加为系统服务,然后由systemctl进行管理。2.在/bin/systemd/system/目录下,手动编写.service结尾的单元(unit)配置文件。

  • 使用chkconfig添加系统服务
1. [root@localhost ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
2. [root@localhost ~]# vim /etc/init.d/httpd

进入文件中修改下列

1. #!/bin/bash
2. # chkconfig: 35 85 21                  服务识别参数,在级别3,5中启动;启动和关闭。顺序分别为85,21
3. # description: Apache http server      服务描述信息

将httpd添加为系统服务

[root@localhost ~]# chkconfig --add httpd
  • 建立【service】.service配置文件

       在/bin/systemd/system/ 目录下,建立一个以.service 结尾的单元(unit)配置文件,用于控制由systemd控制或监控的httpd服务。配置文件主要分为三个部分,控制单元[unit]的定义,服务[service]的定义以及安装部分[install],具体内容如下所示。

[root@localhost ~]# vim /lib/systemd/system/httpd.service
1. [Unit]
2. Description=The apache http server
3. After=network.target
4. 
5. [Service]
6. Type=forking
7. PIDFile=/usr/local/httpd/logs/httpd.pid
8. ExecStart=/usr/local/bin/apachectl $OPTIONS
9. ExecReload=/bin/kill  -HUP  $MAINPID
10. KillMode=process
11. Restart=on-failure
12. RestartSec=42s
13. 
14. [Install]
15. WantedBy=graphical.target

       httpd.service文件编写完成后,执行如下命令设置httpd服务开机启动。

1.  [root@localhost ~]# systemctl enable httpd.service 
2.  [root@localhost ~]# systemctl is-enabled httpd.service

httpd基本配置

  1. web站点的部署过程
  2. 确定网站名称,IP地址
  3. 配置并启动httpd服务

       服务器设置为192.168.1.100,客户机192.168.1.10,用浏览器访问http://192.168.1.100,会出现一个默认网页“ It works”

配置httpd服务

       编辑httpd服务的主配置文件httpd.conf,查找配置项“ServerName”,在附近添加一行内容“ServerName www.123.com”,用于设置网站名称。

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf

         文本下查找ServerName并修改网站名称

#ServerName www.123.com:80

       修改httpd.conf文件的配置后,建议进行语法检查。

1.  [root@localhost ~]# apachectl -t
2.  或
3.  [root@localhost ~]#httpd -t
1. [root@localhost ~]# httpd -t
2. AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
3. Syntax OK

       启动httpd服务并查看端口

1.  [root@localhost ~]# systemctl start httpd
2.  [root@localhost ~]# netstat -anpt | grep httpd
  • 部署网页文档

       对于新编译安装的httpd服务,网站根目录位于/usr/local/httpd/htdocs下,需要将web站点的网页文档赋值或上传到此目录下。httpd服务器默认提供了一个名为index.html的测试网页(显示“it works!”)。

[root@localhost ~]# vim /usr/local/httpd/htdocs/index.html
  • 在客户机中访问web站点

       在客户机的网页浏览器中,通过域名或IP地址访问httpd服务器,将可以看到web 站点的网页内容。

  • 查看web站点的访问情况

       httpd服务器使用了两种类型的日志:访问日志和错误日志。这两种日志的文件名分别为access_log和error_log,均位于/usr/local/httpd/logs目录下。

[root@localhost ~]# cat /usr/local/httpd/logs/access_log

httpd.conf配置文件

  • 常用的全局配置参数

ServerRoot:服务目录

Listen:监听的IP地址、端口号

User:运行服务的用户身份

Group:运行服务的组身份

ServerAdmin:管理员邮箱

ServerName:网站服务器的域名

DocumentRoot:网页文档的根目录

DirectoryIndex:默认的索引页文件

ErrorLog:设置错误日志文件的路径

LogLevel:记录日志的级别,默认为warn

CustomLog:访问日志文件的位置

PidFile:保存httpd进程PID号的文件

AddDefaultCharset:设置站点中的网页默认使用的字符集编码

Timeout:网络连接超时,默认为300秒

KeepAlive:是否保持连接,可选On或Off

MaxKeepAliveRequests:每次连接最多请求文件数

KeepAliveTimeout:保持连接状态时的超时时间

Include:需要包含进来的其他配置文件

  • 区域配置项

       除了全局配置项以外,http.conf文件中的大多数配置是包括在区域中的。区域配置使用一堆组合标记,限定了配置项的作用范围。例如,最常见的目录区域配置的形式如下所示。

1. <Directory/>                 定义"/"目录区域的开始
2.  Options FollowSymLinks            控制选项,允许使用符号链接
3.  AllowOverride none              不允许隐含控制文件中的覆盖配置
4.  Require all denied              禁止任何人访问此区域
5. <Directory>                    定义"/"目录区域结束


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
XML JSON 数据安全/隐私保护
Web服务
【10月更文挑战第18天】Web服务
51 9
|
2月前
|
XML JSON 安全
Web服务是通过标准化的通信协议和数据格式
【10月更文挑战第18天】Web服务是通过标准化的通信协议和数据格式
156 69
|
19天前
|
Go UED
Go Web服务中如何优雅平滑重启?
在生产环境中,服务升级时如何确保不中断当前请求并应用新代码是一个挑战。本文介绍了如何使用 Go 语言的 `endless` 包实现服务的优雅重启,确保在不停止服务的情况下完成无缝升级。通过示例代码和测试步骤,详细展示了 `endless` 包的工作原理和实际应用。
37 3
|
20天前
|
JSON Go UED
Go Web服务中如何优雅关机?
在构建 Web 服务时,优雅关机是一个关键的技术点,它确保服务关闭时所有正在处理的请求都能顺利完成。本文通过一个简单的 Go 语言示例,展示了如何使用 Gin 框架实现优雅关机。通过捕获系统信号和使用 `http.Server` 的 `Shutdown` 方法,我们可以在服务关闭前等待所有请求处理完毕,从而提升用户体验,避免数据丢失或不一致。
18 1
|
26天前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
2月前
|
Web App开发 前端开发 JavaScript
Web开发者必收藏的10个实用网站,你还没收藏吗?
将这些网站收藏起来,定期访问,使它们成为您日常工作的一部分,助您在快速发展的 Web 开发领域保持领先。
109 2
Web开发者必收藏的10个实用网站,你还没收藏吗?
|
2月前
|
XML JSON 安全
定义Web服务
【10月更文挑战第18天】定义Web服务
63 12
|
29天前
|
人工智能 搜索推荐 PHP
PHP在Web开发中的璀璨星辰:构建动态网站的幕后英雄###
【10月更文挑战第25天】 本文将带您穿越至PHP的宇宙,揭示其作为Web开发常青树的奥秘。通过生动实例与深入解析,展现PHP如何以简便、高效、灵活的姿态,赋能开发者打造动态交互式网站,同时不忘探讨其在新时代技术浪潮中面临的挑战与机遇,激发对技术创新与应用的无限思考。 ###
33 1
WK
|
29天前
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
54 0
|
2月前
|
前端开发 Java API
JAVA Web 服务及底层框架原理
【10月更文挑战第1天】Java Web 服务是基于 Java 编程语言用于开发分布式网络应用程序的一种技术。它通常运行在 Web 服务器上,并通过 HTTP 协议与客户端进行通信。
29 1