RHCE——四:web服务器的高级优化方案

news2024/12/30 3:43:30

文章目录

    • 一、基于https协议的静态网站
      • 1.概念解释
      • 2. SSL协议提供的服务:
      • 3.web服务的配置详解
        • web服务的常用种类
        • nginx的基本配置参数
      • 4.使用nginx的http_ssl模块建立加密认证网站
        • 查看
        • 配置文件:
        • ssl配置文件的主要参数
        • 实验一:搭建nginx+ssl的加密认证web服务器
          • 代码解释:
        • 实验二:组建多个子目录网站www.openlab.com

一、基于https协议的静态网站

1.概念解释

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext TransferProtocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道。

HTTPS并不是一个新协议,而是HTTP+SSL(TLS)。原本HTTP先和TCP(假定传输层是TCP协议)直接通信,而加了SSL后,就变成HTTP先和SSL通信,再由SSL和TCP通信,相当于SSL被嵌在了HTTP和TCP之间

SSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”

2. SSL协议提供的服务:

**

  • 认证用户和服务器,确保数据发送到正确的客户机和服务器

  • 加密数据以防止数据中途被窃取

  • 维护数据的完整性,确保数据在传输过程中不被改变

注:关于https的安全通信机制,我会专门出一篇博文来介绍,这里不做过多赘述

3.web服务的配置详解

web服务的常用种类

Apache
Nginx
openresty
大厂自研

nginx的基本配置参数

nginx全局配置

http {
include /etc/nginx/mime.types; #可解析的静态资源类型
default_type application/octet-stream; #用来配置Nginx响应前端请求默认的MIME类
型
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; #访问日志
sendfile on; # Nginx服务器是否使用sendfile()传输文件
#tcp_nopush on; # 当包累计到一定大小后就发送,默认0.2s一次
keepalive_timeout 65; # 长连接超时时间
子配置文件
3.5.Nginx配置
3.5.1.nginx虚拟主机
默认情况下nginx只能发布一个站点
如果要发布多个站点需要搭建多台nginx来满足,如果这样会浪费太多资源
为解决上述问题,启用nginx的虚拟主机即可
虚拟主机有两种模式,基于IP或者基于域名
3.5.2基于IP的虚拟主机
#gzip on; #可以使网站的css、js 、xml、html 等静态资源在传输时
进行压缩
include /etc/nginx/conf.d/*.conf; #指定子配置文件
}

子配置文件

/etc/nginx/conf.d/default.conf
server {
listen 80; #监听端口
server_name localhost; #服务器的名字
location / {
root /usr/share/nginx/html; #默认发布目录
index index.html index.htm; #默认发布文件
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html; #访问出错呈现错误页面
location = /50x.html {
root /usr/share/nginx/html;
}
}

4.使用nginx的http_ssl模块建立加密认证网站

查看
[root@server ~]# nginx  -V
# 看是否有--with-http_ssl_module模块,否则需要安装mod_ssl
配置文件:
  • 证书文件:/……/xxxx.crt
  • 私钥文件:/……/xxxx.key
ssl配置文件的主要参数
[root@server ~]# vim  /etc/nginx/nginx.conf   # 主配置文https段,默认为注释,可以取消注释
# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2;    # 监听443端口
#        listen       [::]:443 ssl http2;   
#        server_name  _;                  # 域名
#        root         /usr/share/nginx/html;    # 网页默认
#
#        ssl_certificate "/etc/pki/nginx/server.crt";   # 证书路径
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";  # 私钥文件路径
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers PROFILE=SYSTEM;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }

实验一:搭建nginx+ssl的加密认证web服务器

第一步:准备工作

# 恢复快照
[root@server ~]# setenforce  0           

[root@server ~]# systemctl stop  firewalld

[root@server ~]# systemctl disable  firewalld

[root@server ~]# yum  install  nginx  mod_ssl -y

[root@server ~]# systemctl start  nginx   # 启动httpd
 
[root@server ~]# systemctl enable  nginx  # 设置开机启动

第二步:新建存储网站数据文件的目录

[root@server ~]# mkdir  -p  /www/zy
# 私用xftp将windows的zy网站数据文件上传到/www/zy目录中

第三步:制作证书

# 在/etc/nginx目录下制作整数所用的私钥文件zy.key
[root@server ~]# openssl  genrsa  -aes128  2048 > /etc/nginx/zy.key
Generating RSA private key, 2048 bit long modulus (2 primes)
............+++++
......................................................................................................................................................................................................+++++
e is 65537 (0x010001)
Enter pass phrase:             # 输入加密私钥的密码123456
Verifying - Enter pass phrase: # 再输一遍

# 制作证书
[root@server ~]# openssl  req  -utf8  -new  -key  /etc/nginx/zy.key  -x509  -days  365  -out  /etc/nginx/zy.crt
Enter pass phrase for /etc/nginx/zy.key:    # 需要输入加密私钥的密码
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
# 注意:下列证书信息项目,在面试时常问
Country Name (2 letter code) [AU]:86							  # 国家代码
State or Province Name (full name) [Some-State]:shanxi			  # 省份
Locality Name (eg, city) []:xi'an								  # 城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:openlab# 公司
Organizational Unit Name (eg, section) []:RHCE                    # 部门
Common Name (e.g. server FQDN or YOUR name) []:server             # 主机名
Email Address []:andy@qq.com									  # 邮箱

# 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令
[root@server ~]# cd  /etc/nginx
[root@server nginx]# cp  zy.key  zy.key.org
[root@server nginx]# openssl rsa -in zy.key.org -out zy.key
Enter pass phrase for zy.key.org:  # 输入加密私钥的密码
writing RSA key

第五步:修改配置文件

[[root@server nginx]# cd  ~
[root@server ~]# vim  /etc/nginx/nginx.conf

server {
                listen       443 ssl http2;
                server_name  172.25.254.101;
                root         /www/zy;
                ssl_certificate  /etc/nginx/zy.crt;
                ssl_certificate_key  /etc/nginx/zy.key;
        }
server {      # 输入http跳转到https
                listen 80;
                server_name 172.25.254.101;
                return 301 https://172.25.254.101;
        }

第六步:重启服务

[root@server nginx]# cd  ~
[root@server ~]# nginx  -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@server nginx]# systemctl start nginx

第七步:测试

在windows端打开浏览器,输入https://172.25.254.101,点击高级->接受风险并继续

在这里插入图片描述
在这里插入图片描述

代码解释:
openssl  genrsa  -aes128  2048 > /etc/nginx/zy.key

这条命令 openssl genrsa -aes128 2048 > /etc/nginx/zy.key 是用来生成一个带有AES-128加密的2048位RSA私钥,并将结果输出到 /etc/nginx/zy.key 文件中。

具体来说:

openssl genrsa: 这是 OpenSSL 命令,用于生成RSA私钥。
-aes128: 这个选项指定生成的私钥使用AES-128位加密。
2048: 这个参数指定生成的RSA密钥长度为2048位。
/etc/nginx/zy.key: 这部分将生成的私钥输出到 /etc/nginx/zy.key 文件中。
生成的私钥文件 /etc/nginx/zy.key 将会被用作Nginx配置中的 ssl_certificate_key 指令所指定的SSL证书私钥文件。这对于建立安全的HTTPS连接至关重要,确保通信的保密性和完整性。

server {
    listen       443 ssl http2;         # 服务器监听在443端口上,使用SSL加密和HTTP/2协议
    server_name  192.168.48.130;      # 服务器名设置为IP地址192.168.48.130
    root         /www/zy;               # 网站的根目录设置为/www/zy
    ssl_certificate  /etc/nginx/zy.crt; # SSL证书文件路径设置为/etc/nginx/zy.crt
    ssl_certificate_key  /etc/nginx/zy.key; # SSL证书私钥文件路径设置为/etc/nginx/zy.key
}
实验二:组建多个子目录网站www.openlab.com

组建多个子目录网站www.openlab.com,该网站有2个子目录www.openlab.com/file和www.openlab.com/ftp,要求:

  • file数据使用http读取
  • ftp数据使用https读取

第一步:准备工作

# 恢复快照
[root@server ~]# setenforce  0           

[root@server ~]# systemctl stop  firewalld

[root@server ~]# systemctl disable  firewalld

[root@server ~]# yum  install  nginx -y

[root@server ~]# systemctl start  nginx   # 启动nginx
 
[root@server ~]# systemctl enable  nginx  # 设置开机启动

第二步:新建网页目录并建立网页

[root@server ~]# mkdir  -p  /www/file
[root@server ~]# mkdir  -p  /www/ftp
[root@server ~]# echo  "file"  >  /www/file/index.html  # 写入网站数据
[root@server ~]# echo  "ftp"  >  /www/ftp/index.html

第三步:建立本地hosts域名映射

[root@server ~]# vim  /etc/hosts   # 添加如下内容
192.168.48.130  www.openlab.com

第四步:建立file网站

[root@server ~]# vim  /etc/nginx/nginx.conf 
server {
                listen       80;
                server_name  www.openlab.com;
                location   /file {
                                        alias /www/file/;
                                        index index.html index.htm;
                                }
           }

第五步:建立https的ftp网站

# 制作私钥
[root@server ~]# openssl  genrsa  -aes128  2048 > /etc/nginx/ftp.key
Generating RSA private key, 2048 bit long modulus (2 primes)
............+++++
......................................................................................................................................................................................................+++++
e is 65537 (0x010001)
Enter pass phrase:             # 输入加密私钥的密码123456
Verifying - Enter pass phrase: # 再输一遍

# 制作证书
[root@server ~]# openssl  req  -utf8  -new  -key  /etc/nginx/ftp.key  -x509  -days  365  -out  /etc/nginx/ftp.crt
Enter pass phrase for /etc/nginx/ftp.key:    # 需要输入加密私钥的密码
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
# 注意:下列证书信息项目,在面试时常问
Country Name (2 letter code) [AU]:86							  # 国家代码
State or Province Name (full name) [Some-State]:shanxi			  # 省份
Locality Name (eg, city) []:xi'an								  # 城市
Organization Name (eg, company) [Internet Widgits Pty Ltd]:openlab# 公司
Organizational Unit Name (eg, section) []:RHCE                    # 部门
Common Name (e.g. server FQDN or YOUR name) []:server             # 主机名
Email Address []:andy@qq.com									  # 邮箱

# 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令
[root@server ~]# cd  /etc/nginx
[root@server nginx]# cp  ftp.key  ftp.key.org
[root@server nginx]# openssl rsa -in ftp.key.org -out ftp.key
Enter pass phrase for ftp.key.org:  # 输入加密私钥的密码
writing RSA key
[root@server ~]# vim  /etc/nginx/nginx.conf      # 编辑配置文件
server {
                listen       443 ssl http2;
                server_name  www.openlab.com;
                location /ftp {
                                        alias         /www/ftp;
                                        index  index.html  index.htm;
                                }
                ssl_certificate       "/etc/nginx/ftp.crt";
                ssl_certificate_key   "/etc/nginx/ftp.key";
        }

第六步:重启服务

[root@server ~]# systemctl  restart  nginx

第七步:测试

# 输入www.openlab.com/file
# 输入https://www.openlab.com/ftp,点击高级->接受风险并继续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1887300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pads layout 脚本导出不能运行excle解决办法

在一台新的电脑上安装好PADS,打开PCB文件导出坐标文件时: 出现“ActiveX Automation: server could not be found.”的问题,导致无法成功导出文件,错误提示截图如下: 导致上述问题的原因是在我们配置导出带坐标的脚本时,默认使用的是微软…

eclipse断点调试(用图说话)

eclipse断点调试(用图说话) debug方式启动项目,后端调试bug调试 前端代码调试,请参考浏览器断点调试(用图说话) 1、前端 选中一条数据,点击删除按钮 2、后端接口打断点 断点按钮 介绍 resum…

软件鉴定测试的工作内容是什么?专业软件鉴定测试报告获取指南

软件鉴定测试是指对软件产品进行全面的检测和评估,以验证其是否符合规定的标准和要求。通过测试,能够发现软件中存在的问题和缺陷,并提供相应的改进建议。在不同的测试阶段,使用不同的测试方法和工具,包括功能测试、性…

Webpack: Loader开发 (2)

概述 在上一篇文章中,我们已经详细了解了开发 Webpack Loader 需要用到的基本技能,包括:Loader 基本形态、如何构建测试环境、如何使用 Loader Context 接口等。接下来我们继续拓展学习一些 Loader 辅助工具,包括: 了…

深度学习之半监督学习:一文梳理目标检测中的半监督学习策略

什么是半监督目标检测? 传统机器学习根据训练数据集中的标注情况,有着不同的场景,主要包括:监督学习、弱监督学习、弱半监督学习、半监督学习。由于目标检测任务的特殊性,在介绍半监督目标检测方法之前,我…

【产品运营】SaaS企业产品运营人员沦为打杂工

在职场上,谁都希望自己做的是核心业务或者是重要的工作。但实际上,很多运营的同学到最后,都会沦为打杂的工具人,到底问题出在哪里? 第一个问题:思维方式问题 为什么别人认为你会是打杂的呢?你自…

PHP7源码结构

PHP7程序的执行过程 1.PHP代码经过词法分析转换为有意义的Token; 2.Token经过语法分析生成AST(Abstract Synstract Syntax Tree,抽象语法树); 3.AST生成对应的opcode,被虚拟机执行。 源码结构&#xff1…

如何在 Odoo 16 中将按钮添加到所有表单视图的操作按钮

在 Odoo 中,操作按钮是关键组件,允许用户触发与特定表单视图相关的特定操作或工作流。这些按钮策略性地放置在用户界面中,可简化操作并提高用户效率。它们可以自定义以执行各种任务,例如创建记录、更新信息或启动特定流程。 操作…

个人微信二次开发

​ 由于自身在机器人方面滚爬多年,现在收藏几个宝藏机器人 推荐一下自己常用的机器人: 适合有技术开发的公司,可以自主开发所需要的功能!十分齐全 测试问文档:https://www.wkteam.cn/ 有需要的兄弟可以看一下&#…

红酒与露营:户外时光的好伴侣

在繁忙的都市生活中,人们总是渴望逃离喧嚣,寻找一处宁静的天地,与大自然亲密相拥。露营,作为一种返璞归真的户外生活方式,成为了许多人心中的理想选择。而在露营的浪漫时光里,一瓶雷盛红酒的陪伴&#xff0…

《大海》这歌为何经久不衰?你看歌词写的多美妙!

《大海》这歌为何经久不衰?你看歌词写的多美妙! 《大海》是一首由陈大力作词,陈大力、陈秀男作曲,Ricky Ho编曲,张雨生演唱的国语流行歌曲。该曲收录在张雨生1992年11月30日由飞碟唱片发行的同名专辑《大海》中。 作为…

nexus未开启匿名访问Anonymous Access,访问maven元数据maven-metadata,报401未授权Unauthorized错误

一、背景 下午在调试nexus的时候,其他同事不小心把匿名访问停用了,导致客户端android打包的时候,报错: Received status code 401 from server: Unauthorized。 访问http://192.168.xx.xx:8081/repository/public/com/xxx/xxxcor…

超越所有SOTA达11%!媲美全监督方法 | UC伯克利开源UnSAM

文章链接:https://arxiv.org/pdf/2406.20081 github链接:https://github.com/frank-xwang/UnSAM SAM 代表了计算机视觉领域,特别是图像分割领域的重大进步。对于需要详细分析和理解复杂视觉场景(如自动驾驶、医学成像和环境监控)的应用特别有…

主干网络篇 | YOLOv8改进之引入YOLOv10的主干网络 | 全网最新改进

前言:Hello大家好,我是小哥谈。YOLOv10是由清华大学研究人员利用Ultralytics Python软件包开发的,它通过改进模型架构并消除非极大值抑制(NMS)提供了一种新颖的实时目标检测方法。这些优化使得模型在保持先进性能的同时,降低了计算需求。与以往的YOLO版本不同,YOLOv10的…

kettle从入门到精通 第七十四课 ETL之kettle kettle调用https接口教程,忽略SSL校验

场景:kettle调用https接口,跳过校验SSL。(有些公司内部系统之间的https的接口是没有SSL校验这一说,无需使用用证书的) 解决方案:自定义插件或者自定义jar包通过javascript调用https接口。 1、http post 步…

怎样在《好作文》期刊上发表文章?

怎样在《好作文》期刊上发表文章? 《好作文》知网 G4 2版2500字符 小学语文阅读写作方向 24年8-9月不要摘要参考文献(小学语文阅读写作方向内容,不收纯教学文章,以学生角度为主,出刊晚2-3个月左右,一周内…

基于SpringBoot的漫画网站系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:B/S架构模式、Java技术 工具:Visual Studio、MySQL数据库开发工具 系统展示 首页 用户…

SWAT模型全套教程

SWAT模型全套教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247607904&idx3&snead0faca7f5fc35585f9cfa214ce03ef&chksmfa826787cdf5ee917c64f518225b29c75bc1c5276b94ef2e6aeeede6a85c718d7b8007b51e11&token1917568310&langzh_CN#rd 一…

操作系统大题复习

磁盘调度算法 一次磁盘读写需要的时间 寻道时间 先来先服务FCFS 优点:公平 缺点:性能差,寻道时间长 最短寻道时间有限SSTF 缺点:可能产生饥饿现象 扫描算法SCAN 优点:不会产生饥饿现象 缺点:响应频率…

Iot解决方案开发的体系结构模式和技术

前言 Foreword 计算机技术起源于20世纪40年代,最初专注于数学问题的基本原理;到了60年代和70年代,它以符号系统为中心,该领域首先开始面临复杂性问题;到80年代,随着个人计算的兴起和人机交互的问题&#x…