web网站服务(一)

简介: 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日志并进行多维度分析。
相关文章
|
14天前
|
XML 监控 数据格式
第六十六章 使用 Web 服务监控 IRIS - IRIS 对 WS-Monitoring 的支持概述
第六十六章 使用 Web 服务监控 IRIS - IRIS 对 WS-Monitoring 的支持概述
22 0
|
16天前
|
缓存 前端开发 JavaScript
使用Web前端性能优化提高网站加载效率
前端性能优化关键在于提高用户体验和降低资源消耗,Webpack是重要工具。基础优化策略包括减少HTTP请求、资源压缩与缓存、异步加载。Webpack优化配置涉及Tree Shaking、代码分割。高级策略涵盖Long-term Caching、缓存提升和插件优化。打包部署时,自动化流程和环境管理也至关重要。通过这些方法,可提升Web应用速度和体验。
104 0
|
21天前
|
存储 缓存 前端开发
揭秘Web缓存:提升网站性能与用户体验
揭秘Web缓存:提升网站性能与用户体验
|
22天前
|
SQL 云安全 安全
常见的web漏洞,网站漏洞该怎么办
随着互联网的发展,网站安全成为企业和个人关注焦点,尤其网站漏洞可能导致数据泄露、系统崩溃等严重后果。本文介绍了四种常见网站漏洞:XSS、SQL注入、文件包含和CSRF,以及它们的危害。为解决这些问题,建议加强代码审查、输入验证、使用安全API和库、访问控制等措施。此外,德迅云安全的漏洞扫描VSS服务可在Web漏洞扫描、弱密码扫描和中间件扫描等场景中发挥作用,帮助企业及时发现并处理安全问题,保障网站安全。
|
22天前
|
JSON 数据格式 Windows
LabVIEW创建Web服务
LabVIEW创建Web服务
18 0
|
6天前
|
XML 网络协议 Java
XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览
XML Web服务是基于WSDL、SOAP、RDF和RSS等标准的网络应用程序组件技术。WSDL描述服务接口和消息格式,SOAP用于结构化信息交换,RDF描述网络资源,RSS则用于发布网站更新。Web服务特点是自包含、自描述,基于开放协议,可重用且能连接现有软件。WSDL文档包含`types`、`message`、`portType`和`binding`元素,定义服务操作和协议。SOAP协议规定消息格式,通过HTTP等传输。
454 1
|
7天前
|
缓存 监控 NoSQL
使用Elixir进行可扩展的Web服务开发
【5月更文挑战第30天】本文探讨了使用Elixir进行可扩展Web服务开发,Elixir基于Erlang/OTP,提供并发、分布式处理和容错能力。Phoenix框架助力构建实时Web应用,支持WebSocket。实现可扩展性涉及并发处理、分布式架构、数据库优化、缓存策略及监控告警。实践案例显示,Elixir和Phoenix能有效应对高并发场景,适用于构建高性能Web服务。
|
14天前
|
监控 网络架构 Windows
第六十八章 使用 Web 服务监控 IRIS - 监控网络客户端
第六十八章 使用 Web 服务监控 IRIS - 监控网络客户端
6 0
|
14天前
|
监控 数据库
第六十七章 使用 Web 服务监控 IRIS - 监控 Web 服务的 URL
第六十七章 使用 Web 服务监控 IRIS - 监控 Web 服务的 URL
23 0
|
16天前
|
Java API 数据库
利用Java构建高性能的RESTful Web服务
在现代软件开发中,RESTful Web服务已成为一种流行的架构模式,用于构建可扩展、可维护的网络应用。本文将探讨如何使用Java编程语言及其相关框架(如Spring Boot)来构建高性能的RESTful Web服务。我们将不仅仅关注基本的RESTful API设计,还将深入讨论性能优化、安全性、以及服务扩展性等方面的技术细节。通过本文,读者将能够掌握构建高效RESTful Web服务的核心技术和实践。