Web服务(三)httpd参数配置以及编译安装

简介:

一、参数配置

13、https协议的实现

实现https之前需要先了解openssl;需要实现CA机制。openssl详情请参考Openssl、加密、解密和私有CA的实现过程

SSL握手要完成的工作:

   交换协议版本号

   选择双方都支持的加密方式

   对两端实现身份验证

   密钥交换

https是二进制格式的协议,监听与tcp:443端口。SSL会话是基于IP地址进行;不支持在基于FQDN的虚拟主机上实现。

下面直接来配置https:

CA这里直接使用的一台机器当CA和客户端;


创建CA和客户端证书签署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#创建CA;详细过程就不贴了;以下是步骤
[Linux85] #cd /etc/pki/CA/
[Linux85] #(umask 077;openssl genrsa -out private/cakey.pem 2048)
[Linux85] #openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
[Linux85] #touch index.txt serial crlnumber
[Linux85] #echo 00 > serial
                              
#生成客户端证书以及CA签署;CA与客户端都是同一台机器;也可以分为两台
[Linux85] #mkdir /etc/httpd/ssl
[Linux85] #cd /etc/httpd/ssl
[Linux85] #(umake 077;openssl genrsa -out httpd.key 1024)
[Linux85] #openssl req -new -key httpd.key -out httpd.csr
[Linux85] #openssl ca -in httpd.csr -out httpd.crt -days 365
                           
#结束后把CA证书安装到windows中


安装mod_ssl模块和更改主配置文件实现支持ssl协议:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[Linux85] #yum -y install mod_ssl
[Linux85] #rpm -ql mod_ssl
/ etc / httpd / conf.d / ssl.conf
/ usr / lib64 / httpd / modules / mod_ssl.so
/ var / cache / mod_ssl
/ var / cache / mod_ssl / scache. dir
/ var / cache / mod_ssl / scache.pag
/ var / cache / mod_ssl / scache.sem
[Linux85] #
                                                                                                                                                                                                                                                              
#配置
[Linux85] #vim ssl.conf
#定位ServerName;开启下面两项
# General setup for the virtual host, inherited from global configuration
DocumentRoot  "/var/www/html"
ServerName www.soul.org: 443
                                                                                                                                                                                                                                                              
#下面两项关于密钥和证书文件的路径
#   Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate.  If
# the certificate is encrypted, then you will be prompted for a
# pass phrase.  Note that a kill -HUP will prompt again.  A new
# certificate can be generated using the genkey(1) command.
SSLCertificateFile  / etc / httpd / ssl / httpd.crt
#   Server Private Key:
#   If the key is not combined with the certificate, use this
#   directive to point at the key file.  Keep in mind that if
#   you've both a RSA and a DSA private key you can configure
#   both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile  / etc / httpd / ssl / httpd.key
                                                                                                                                                                                                                                                         
[Linux85] #service httpd start
[Linux85] #ss -tunl | grep 443
tcp    LISTEN      0       128                    ::: 443                   ::: *  
#查看443端口以正常启动


提供主页文件

1
2
3
4
[Linux85] #vim /var/www/html/index.html
This  is  https test page!
#
把CA证书安装至windows中

wKioL1M_r3GTdyySAAF5NvVNiB4526.jpg

测试访问正常;https协议正常使用。



14、配置httpd的status页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Linux85] #httpd -M | grep status
#下述这个模块如存在即可配置
  status_module (shared)
Syntax OK
[Linux85] #
                                                                                                                                                                                                
[Linux85] #vim /etc/httpd/conf/httpd.conf
#定位status;找到如下项开启
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
<Location  / server - status>
     SetHandler server - status
     AuthType    Basic             #为了确保安装;这里做了认证
     AuthName     "server status" 
     AuthUserFile  "/etc/httpd/conf/.htpasswd"
     Require valid - user
     Order deny,allow
     Deny  from  all
     Allow  from  172.16 . 254.28     #限定只能改IP访问该页面
< / Location>

wKiom1M_tP7wGPakAAF6_adF_WY121.jpg

wKioL1M_tOOSjKwVAAJEuPc2nCs099.jpg

测试访问需要验证;并且可以显示详细的httpd服务器信息。


15、利用mod_deflate模块压缩页面优化传输速度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[Linux85] #httpd -M | grep deflate
  deflate_module (shared)
Syntax OK
[Linux85] #
#
#主配置文件内没有定义;这里自己新建配置文件
[Linux85] #vim /etc/httpd/conf.d/deflate.conf
SetOutputFilter DEFLATE
                                                                                                                                   
AddOutputFilterByType DEFLATE text / plain
AddOutputFilterByType DEFLATE text / html
AddOutputFilterByType DEFLATE application / xhtml + xml
AddOutputFilterByType DEFLATE text / xml
AddOutputFilterByType DEFLATE application / xml
AddOutputFilterByType DEFLATE application / x - javascript
AddOutputFilterByType DEFLATE text / javascript
AddOutputFilterByType DEFLATE text / css
                                                                                                                                   
# Level of compression (Highest 9 - Lowest 1)
DeflateCompressionLevel  9
                                                                                                                                                            
# Netscape 4.x has some problems.
BrowserMatch ^Mozilla / 4  gzip - only - text / html
                                                                                                                                                            
# Netscape 4.06-4.08 have some more problems
BrowserMatch ^Mozilla / 4 \. 0 [ 678 ] no - gzip
                                                                                                                                                        
# MSIE masquerades as Netscape, but it is fine
BrowserMatch \bMSI[E] !no - gzip !gzip - only - text / html
                                                                                                                                 
[Linux85] #service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[Linux85] #

wKiom1M_vH6Bk11uAAKye7Vf8UE436.jpg

测试成功。该功能并不是所有状态都适合;需要合理的判断。



二、httpd-2.4的编译安装


由于这篇一直未完成;后续的博客都以完成;且其中以含有2.4版本的编译安装。这里就不再赘述了。连接:Linux下编译安装LAMP并分离为多台服务器



本文转自Mr_陈 51CTO博客,原文链接:http://blog.51cto.com/chenpipi/1390923,如需转载请自行联系原作者
相关文章
|
2月前
|
XML JSON 安全
Web服务是通过标准化的通信协议和数据格式
【10月更文挑战第18天】Web服务是通过标准化的通信协议和数据格式
165 69
|
1月前
|
Go UED
Go Web服务中如何优雅平滑重启?
在生产环境中,服务升级时如何确保不中断当前请求并应用新代码是一个挑战。本文介绍了如何使用 Go 语言的 `endless` 包实现服务的优雅重启,确保在不停止服务的情况下完成无缝升级。通过示例代码和测试步骤,详细展示了 `endless` 包的工作原理和实际应用。
43 3
|
1月前
|
JSON Go UED
Go Web服务中如何优雅关机?
在构建 Web 服务时,优雅关机是一个关键的技术点,它确保服务关闭时所有正在处理的请求都能顺利完成。本文通过一个简单的 Go 语言示例,展示了如何使用 Gin 框架实现优雅关机。通过捕获系统信号和使用 `http.Server` 的 `Shutdown` 方法,我们可以在服务关闭前等待所有请求处理完毕,从而提升用户体验,避免数据丢失或不一致。
25 1
|
1月前
|
JavaScript 前端开发 开发工具
web项目规范配置(husky、eslint、lint-staged、commit)
通过上述配置,可以确保在Web项目开发过程中自动进行代码质量检查和规范化提交。Husky、ESLint、lint-staged和Commitlint共同作用,使得每次提交代码之前都会自动检查代码风格和语法问题,防止不符合规范的代码进入代码库。这不仅提高了代码质量,还保证了团队协作中的一致性。希望这些配置指南能帮助你建立高效的开发流程。
44 5
|
1月前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
2月前
|
XML JSON 安全
定义Web服务
【10月更文挑战第18天】定义Web服务
71 12
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
152 3
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
165 45
|
14天前
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南
|
20天前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
27 7