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日志并进行多维度分析。
相关文章
|
6天前
|
开发框架 监控 .NET
Visual Basic的Web服务和REST API开发指南
【4月更文挑战第27天】本文探讨了使用Visual Basic(VB.NET)构建Web服务和RESTful API的方法。首先介绍了Web服务的基础和REST API的概念,然后阐述了.NET Framework与.NET Core/.NET 5+对VB.NET的支持,以及ASP.NET Core在Web开发中的作用。接着,详细讲解了创建RESTful API的步骤,包括控制器与路由设置、模型绑定与验证,以及返回响应。此外,还讨论了安全措施、测试方法、部署选项和监控策略。最后强调,VB.NET开发者可以通过ASP.NET Core涉足现代Web服务开发,拓宽技术领域。
|
6天前
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
5天前
|
存储 缓存 前端开发
揭秘Web缓存:提升网站性能与用户体验
揭秘Web缓存:提升网站性能与用户体验
|
6天前
|
SQL 云安全 安全
常见的web漏洞,网站漏洞该怎么办
随着互联网的发展,网站安全成为企业和个人关注焦点,尤其网站漏洞可能导致数据泄露、系统崩溃等严重后果。本文介绍了四种常见网站漏洞:XSS、SQL注入、文件包含和CSRF,以及它们的危害。为解决这些问题,建议加强代码审查、输入验证、使用安全API和库、访问控制等措施。此外,德迅云安全的漏洞扫描VSS服务可在Web漏洞扫描、弱密码扫描和中间件扫描等场景中发挥作用,帮助企业及时发现并处理安全问题,保障网站安全。
|
6天前
|
JSON 数据格式 Windows
LabVIEW创建Web服务
LabVIEW创建Web服务
10 0
|
4天前
|
缓存 监控 API
利用Python构建高性能的Web API后端服务
随着微服务架构的普及和RESTful API的广泛应用,构建高性能、可扩展的Web API后端服务变得尤为重要。本文将探讨如何利用Python这一强大且灵活的语言,结合现代Web框架和工具,构建高效、可靠的Web API后端服务。我们将分析Python在Web开发中的优势,介绍常用的Web框架,并通过实际案例展示如何设计并实现高性能的API服务。
|
6天前
|
XML 存储 安全
LabVIEWCompactRIO 开发指南23 Web服务
LabVIEWCompactRIO 开发指南23 Web服务
13 0
|
6天前
|
JSON 监控 安全
LabVIEW测试和调试Web服务
LabVIEW测试和调试Web服务
16 1
|
6天前
|
网络协议 关系型数据库 Linux
使用PHPStudy搭建本地web网站并实现任意浏览器公网访问
使用PHPStudy搭建本地web网站并实现任意浏览器公网访问
15 0
|
6天前
|
应用服务中间件 nginx
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
12 0