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>                    定义"/"目录区域结束


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
8天前
|
开发框架 监控 安全
Windows Defender 导致 Web IIS 服务异常停止排查
某日凌晨IIS服务异常停止,经查为Windows Defender安全补丁KB2267602触发引擎更新,导致系统资源波动,进而引发应用池回收。确认非人为操作,系统无重启。通过分析日志与监控,定位原因为Defender更新后扫描加重负载。解决方案:将IIS及.NET相关路径添加至Defender排除列表,避免业务影响。
194 116
|
4月前
|
开发框架 安全 前端开发
Go Web开发框架实践:模板渲染与静态资源服务
Gin 是一个功能强大的 Go Web 框架,不仅适用于构建 API 服务,还支持 HTML 模板渲染和静态资源托管。它可以帮助开发者快速搭建中小型网站,并提供灵活的模板语法、自定义函数、静态文件映射等功能,同时兼容 Go 的 html/template 引擎,具备高效且安全的页面渲染能力。
|
4月前
|
开发框架 JSON 中间件
Go语言Web开发框架实践:使用 Gin 快速构建 Web 服务
Gin 是一个高效、轻量级的 Go 语言 Web 框架,支持中间件机制,非常适合开发 RESTful API。本文从安装到进阶技巧全面解析 Gin 的使用:快速入门示例(Hello Gin)、定义 RESTful 用户服务(增删改查接口实现),以及推荐实践如参数校验、中间件和路由分组等。通过对比标准库 `net/http`,Gin 提供更简洁灵活的开发体验。此外,还推荐了 GORM、Viper、Zap 等配合使用的工具库,助力高效开发。
|
6月前
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
262 35
|
XML JSON 数据安全/隐私保护
Web服务
【10月更文挑战第18天】Web服务
212 9
|
8月前
|
数据采集 Web App开发 API
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
本文介绍了如何使用FastAPI和Selenium搭建RESTful接口,访问免版权图片网站Pixabay并采集图片及其描述信息。通过配置代理IP、User-Agent和Cookie,提高爬虫的稳定性和防封禁能力。环境依赖包括FastAPI、Uvicorn和Selenium等库。代码示例展示了完整的实现过程,涵盖代理设置、浏览器模拟及数据提取,并提供了详细的中文注释。适用于需要高效、稳定的Web数据抓取服务的开发者。
414 15
FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
|
8月前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
488 7
|
XML JSON 安全
Web服务是通过标准化的通信协议和数据格式
【10月更文挑战第18天】Web服务是通过标准化的通信协议和数据格式
323 69
|
7月前
|
安全 大数据 数据挖掘
课时9:阿里云Web应用防火墙:全面保障网站的安全与可用性
阿里云Web应用防火墙(WAF)基于阿里巴巴十年攻防经验,提供全面的网站安全防护。它通过Web应用防护、CC攻击防护和业务风控,有效应对各类网络威胁,确保网站的安全与可用性。智能双引擎技术降低误报率,实时数据分析和虚拟补丁更新保障系统安全。WAF已成功护航多个重大活动,为企业提供高效、简便的安全解决方案。
183 0
|
Web App开发 前端开发 JavaScript
Web开发者必收藏的10个实用网站,你还没收藏吗?
将这些网站收藏起来,定期访问,使它们成为您日常工作的一部分,助您在快速发展的 Web 开发领域保持领先。
369 2
Web开发者必收藏的10个实用网站,你还没收藏吗?

热门文章

最新文章

下一篇
开通oss服务