服务器处理数据和信息吗,1.1 NG搭建服务器 与 动态数据处理介绍

2023-11-20

fastCGI 动态请求数据处理

1. fastcgi安装步骤:

(1) ./configure 生成makefile;

(2)在 make运行makefile;sudo make instll 安装即可。 出现错误如下:

3bcf7cf1a9b4

image.png

解决方案如下:

找到这个文件,打开,添加头文件:#include之后: 在make就不会有错了。

3bcf7cf1a9b4

image.png

3bcf7cf1a9b4

image.png

2. fastcgi 与 cgi区别

fastcgi通过线程来响应请求,而cgi对每个请求生成一个进程。

nginx数据传输过程:user->nginx->本地socket(请求传输)->fastcgi(即进程管理器)->cgi进程。

总结: CGI 就是所谓的短生存期应用程序,FastCGI 就是所谓的长生存期应用程序。FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,不会每次都要花费时间去fork一次。

搭建服务器部分

一. 搭建一个HTTP服务器:

目的1: 可获取请求(get)

目的2: 可接受请求的数据,并显示或存储起来(post)

前提: 软件安装完毕。

http简介

http:

有两部分组成: 浏览器发送的“请求消息”; 服务器发送的“应答消息”。

每一部分又有四个组成部分:

请求消息= 请求行 + 请求头 + 空行 + 请求数据。

相应消息= 状态行 + 消息报头 + 空行 + 相应正文。

请求行: 请求方法, 请求URL, http, 版本号;

请求头: key/value形式组成,是请求时一些附加信息;

请求体:一般由post请求方法提交,可能时图片,文件,字符串。

响应行:http版本号,状态码, 状态描述;

相应头:为响应报文附加信息;

响应体:返回客户端的正文数据。

3bcf7cf1a9b4

image.png

2. 搭建服务器准备:

[oracle@localhost conf] which nginx ##查看nginx的目录

/usr/bin/nginx

[oracle@localhost conf] ps -aux|grep nginx ##查看nginx进程是否启动

[oracle@localhost conf] nginx -v ##查看nginx 的版本,不需要root权限

nginx version: nginx/1.10.1

[oracle@localhost conf] nginx -t ##查看nginx.conf配置文件是否正常

nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (13: Permission denied) ##错误:需要root权限。

[oracle@localhost conf] sudo nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

(1) 启动服务器:测试默认的静态访问

采用默认配置文件,启动nginx:

[oracle@localhost conf] sudo nginx ##启动

[oracle@localhost conf] ps -aux|grep nginx ##查看进程(daemon on )守护进程

root 17714 0.0 0.0 27040 1096 ? Ss 13:19 0:00 nginx: master process nginx

nobody 17715 0.0 0.0 27460 1696 ? S 13:19 0:00 nginx: worker process

oracle 17717 0.0 0.0 103248 852 pts/0 S+ 13:19 0:00 grep nginx

[oracle@localhost conf]sudo netstat -ntlp ##查看nginx监听的端口

3bcf7cf1a9b4

图片.png

由上图可知,nginx的pid为17714,监视两个端口:http的80,https的443.

测试静态访问:

3bcf7cf1a9b4

1.PNG

3bcf7cf1a9b4

2.PNG

注: 由于http 与 https都使用的默认端口,所以访问时不需要加上端口。

(2) 访问nginx Web页面实现用户认证: 使用 httpd-tools

htpasswd -c /usr/local/nginx/pass tom

注: pass 为密码文件, oracle 为用户。

3bcf7cf1a9b4

图片.png

修改nginx.conf文件,再http的server中添加认证:并测试conf文件

auth_basic "Input Password:"; ##认证提示符

auth_basic_user_file "/usr/local/nginx/pass"; ##认证密码文件

3bcf7cf1a9b4

图片.png

使用: sudo nginx -t ##测试一下conf文件

最后:重新加载配置文件,并测试:

[oracle@localhost conf] sudo nginx -s reload

结果: 感觉没什么区别啊 ???

(3) 设置图片服务器

在nginx安装目录下的 html/image/下放置图片资源:

修改配置文件:如下

3bcf7cf1a9b4

图片.png

访问结果如下:

3bcf7cf1a9b4

3.PNG

3bcf7cf1a9b4

4.PNG

(4) 实现负载均衡《需要多台服务器》 : 先略

3. 搭建可处理动态数据的HTTP服务器:

先略。

二. 搭建一个https 服务器: 目的:同上

加密算法一般分为对称算法、非对称算法、信息摘要。

对称算法有:AES、DES,主要应用在单机数据加密。

非对称算法有:RSA、DSA,主要应用在网络数据加密。

信息摘要:MD5、sha256,主要应用在数据完整性校验、数据秒传等

密钥生成 : HTTPS =HTTP + SSL / TLS

(1) 双向认证

客户端与服务器建立连接,都生成私钥和公钥(四个秘钥)。

首先:服务器返给客户端一个公钥,然后客户端拿着这个公钥把要搜索的东 西加密,称之为密文,并连并自己的公钥一起返回给服务器;

其次:服务器拿着自己的私钥解密密文,然后把响应到的数据用客户端的公钥加密,返回给客户端,客户端拿着自己的私钥解密密文,把数据呈现出来。

(2)生成秘钥 (单向认证,两个密钥)

说明:自己创建的秘钥不受浏览器验证。如需要搭建https服务器,需买秘钥。

首先: 决定密钥存目录,一般为/usr/local/nginx/conf/ssl/目录,进入。

其次: 创建服务器证书密钥文件 server.key:

openssl genrsa -des3 -out server.key 1024

3bcf7cf1a9b4

image.png

再次: 创建服务器证书的申请文件 server.csr,具体操作见下图

openssl req -new -key server.key -out server.csr

3bcf7cf1a9b4

image.png

最后: 生成证书文件server.crt:

openssl x509 -req -days 365 -in server.csr -signkey server.key

-out server.crt

3bcf7cf1a9b4

image.png

总结:上面server.key 是服务器证书密钥(私钥)。

上面server.crt 为证书文件(包含公钥,与其他相关信息)

配置NGINX

修改配置文件,并重启

3bcf7cf1a9b4

图片.png

扩展:

假如:将密钥放到/usr/local/nginx/conf文件下,使用rsa非对称:

cd /usr/local/nginx/conf

openssl genrsa > cert.key ###生成私钥

openssl req -new -x509 -key cert.key > cert.pem ##生成证书

server {

listen 443 ssl;

server_name localhost;

ssl_certificate cert.pem ; ##证书文件,与配置文件同目录的相对路径

ssl_certificate_key cert.key; ##私钥

ssl_session_cache shared:SSL:1m;

ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;

ssl_prefer_server_ciphers on;

location / {

root html;

index index.html index.htm;

}

}

3. 搭建可处理动态数据的HTTPS服务器:

/-----------------------------------------------附录部分------------------------------------------------/

附录1:

yum常用命令

1.列出所有可更新的软件清单命令:yum check-update

2.更新所有软件命令:yum update

3.仅安装指定的软件命令:yum install

4.仅更新指定的软件命令:yum update

5.列出所有可安裝的软件清单命令:yum list

6.删除软件包命令:yum remove

7.查找软件包 命令:yum search

8.清除缓存命令:

yum clean packages: 清除缓存目录下的软件包

yum clean headers: 清除缓存目录下的 headers

yum clean oldheaders: 清除缓存目录下旧的 headers

yum clean, yum clean all (= yum clean packages; yum clean oldheaders)

清除缓存目录下的软件包及旧的headers。

APT-GET

apt-get,是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。最常用的命令是update(更新) 和install(安装)。

命令:

update - 重新获取软件包列表

upgrade - 进行更新

install - 安装新的软件包

remove - 移除软件包

autoremove - 自动移除全部不使用的软件包

purge - 移除软件包和配置文件

source - 下载源码档案

build-dep - 为源码包配置编译依赖

dist-upgrade - 发行版升级

dselect-upgrade - 依照 dselect 的选择更新

clean - 清除下载的归档文件

autoclean - 清除旧的的已下载的归档文件

check - 检验是否有损坏的依赖

apt-get 常用实例:

apt-cache search packagename 搜索包

apt-cache show packagename 获取包的相关信息大小、版本等

apt-get install packagename 安装包

apt-get install packagename --reinstall 重新安装包

apt-get remove packagename 删除包

apt-get remove packagename --purge 删除包,包括删除配置文件.

apt-get update 更新源

apt-get upgrade 更新已安装的包

apt-get dist-upgrade 升级系统

apt-get dselect-upgrade 使用 dselect 升级

apt-cache depends packagename 了解使用依赖

apt-cache rdepends packagename 是查看该包被哪些包依赖

apt-get build-dep packagename 安装相关的编译环境

apt-get source packagename 下载该包的源代码

apt-get clean 清理无用的包

apt-get autoclean 清理无用的包

apt-get check 检查是否有损坏的依赖

区别: yum 与 apt-get:

rpm包和deb包是两种Linux系统下最常见的安装包格式;rpm包主要应用在RedHat系列包括 Fedora等发行版的Linux系统上,deb包主要应用于Debian系列包括现在比较流行的Ubuntu等发行版上。

如果要安装现成的这两种包的话,安装rpm包的命令是“rpm -参数”,安装deb包的命令是“dpkg -参数”。LINUX人性化的一点不用我们去下载,直接使用相应的命令就可以管理。

yum可以用于运作rpm包,例如在Fedora系统上对某个软件的管理:

安装:yum install

卸载:yum remove

更新:yum update

apt-get可以用于运作deb包,例如在Ubuntu系统上对某个软件的管理:

安装:apt-get install

卸载:apt-get remove

更新:apt-get update

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务器处理数据和信息吗,1.1 NG搭建服务器 与 动态数据处理介绍 的相关文章

  • 蟒蛇集

    In this tutorial we are going to learn Python Set In our previous article we learnt about Python String You can learn it
  • 如何在 Ubuntu 12.10 上使用 Python 创建 Nagios 插件

    介绍 Python 是 Linux 上默认提供的流行命令处理器 我们之前已经介绍过如何在Ubuntu 12 10 x64上安装Nagios监控服务器 这次 我们将扩展这个想法并使用 Python 创建 Nagios 插件 这些插件将在客户端
  • 如何编辑 Sudoers 文件

    介绍 权限分离是 Linux 和类 Unix 操作系统中实现的基本安全范例之一 普通用户以有限的权限进行操作 以减少对自己环境 而不是更广泛的操作系统 的影响范围 一个特殊的用户 称为root has 超级用户特权 这是一个管理帐户 没有普
  • JSTL 教程、JSTL 标签示例

    JSTL 代表JSP 标准标签库 JSTL 是标准标记库 它提供标记来控制 JSP 页面行为 JSTL 标签可用于迭代和控制语句 国际化 SQL 等 我们将在本 JSTL 教程中详细研究 JSTL 标签 之前我们看到了如何使用JSP EL
  • 了解 Python 3 中的类继承

    介绍 面向对象编程创建可重用的代码模式 以减少开发项目中的冗余 面向对象编程实现可回收代码的一种方法是通过继承 此时一个子类可以利用另一个基类的代码 本教程将介绍 Python 中继承的一些主要方面 包括父类和子类如何工作 如何重写方法和属
  • 电商java 面试题_JAVA电商项目面试题(一)

    需要按照功能点把系统拆分 拆分成独立的功能 单独为某一个节点添加服务器 需要系统之间配合才能完成整个业务逻辑 叫做分布式 集群 同一个工程部署到多台服务器上 优点 1 把模块拆分 使用接口通信 降低模块之间的耦合度 2 把项目拆分成若干个子
  • Rabbitmq消息的有序性、消息不丢失、不被重复消费

    如何保证消息的顺序性 如图所示 RabbitMQ保证消息的顺序性 就是拆分多个 queue 每个 queue 对应一个 consumer 消费者 就是多一些 queue 而已 确实是麻烦点 或者就一个 queue 但是对应一个 consum
  • 查经 民数记3章 利未人

    3章 利未人 1 4节 亚伦的儿子们 5 13节 利未人的职责 14 39 利未人男丁的统计 40 51节 利未人代替长子的地位 本章记载了利未人被神呼召 代替以色列各家长子成为事奉神的人 利未人的宗族 人数 及各族负责的事务 这件事灵意上
  • 程序的调试技巧。

    什么是调试 调试又叫Debug 又称除错 是发现和减少计算机程序或电子仪器设备中程序错误的一个过程 生活中所有发生的事情都一定有迹可循 如果问心无愧 就不需要掩盖也就没有迹象了 如果问心有愧疚 必然需要掩盖 那就一定会有迹象 迹象越多就容易
  • 如何控制asp.net控件TextBox输入内容的长度--(多种方法)

    2009 10 22 17 36 件代码如下
  • 在 CentOS 上安装 Docker Engine

    文章目录 在 CentOS 上安装 Docker Engine 先决条件 操作系统要求 卸载旧版本 安装方法 使用 rpm 存储库安装 设置存储库 安装 Docker Engine 安装最新版本 安装指定版本 以非 root 用户身份管理
  • js获取时间戳的四种方法

  • vscode使用手册

    VS Code Visual Studio Code 是一款轻量级 跨平台的源代码编辑器 支持语法高亮 自动补全 调试 Git 版本控制等功能 下面是一些使用 VS Code 的基本操作 安装和启动 在官网上下载并安装 VS Code 打开
  • react里面的接口调用方法

    react接口调用 我们通过npm create react app my app创建react项目 在项目里都是要进行接口调用来获取数据 进行增删改查各种操作的 所以掌握接口调用方式是非常必要的 话不多说进入正题 想要掌握接口调用的内里逻
  • 何恺明组《Designing Network Design Spaces》的整体解读(一篇更比六篇强)

    本文原载自知乎 已获原作者授权转载 请勿二次转载 https zhuanlan zhihu com p 122557226 statistics 大法好 DL不是statistics 因为DL不如statistics 基本全文从统计学的角度
  • 编程猫python讲师面试_【编程猫教师面试】笔试:试题+打字测速-看准网

    985师范本加硕 想要从事k12教育 坚挺到最后一轮但是未通过的小姐姐掩面飘过 来谈谈我的面试感受吧 个人觉得猫厂管培生的面试整体流程安排挺合理的 有感觉确实是在用心的挑选人才 然后所有的面试官都很nice 我是直接在boss直聘上投的简历
  • ffmpeg最简单的解码保存YUV数据

    文章转载自 http blog chinaunix net xmlrpc php r blog article id 4584541 uid 24922718 video的raw data一般都是YUV420p的格式 简单的记录下这个格式的
  • 技术英雄会【新闻】CSDN最有价值博客TOP10颁奖【图】【我在左边数第四个】

    2007年04月06日 10 04 新浪科技夹带些私货 呵呵 社区英雄会 一 问周鸿祎一个问题 社区英雄会 二 问CSDN一个信息过滤器的问题 技术英雄会 三 社区英雄们的与会感言大赏 技术英雄会 四 也谈如何发掘到需要的内容和英雄 图为
  • linux_compress

    tar 解包 tar xvf FileName tar 打包 tar cvf FileName tar DirName 注 tar是打包 不是压缩 gz 解压1 gunzip FileName gz 解压2 gzip d FileName

随机推荐

  • 调试器GDB的基本使用方式(一)

    GDB的功能及其丰富 我们按照调试的流程进行说明 基本用法很简单 流程如下所示 带着调试选项编译 构建调试对象 启动调试器 GDB 设置断点 显示栈帧 显示值 继续执行 一 准备 通过 gcc 的 g 选项生成调试信息 gcc Wall O
  • Qt bool转QString再转回bool方法

    可能在传递参数的过程中 传的一是个bool值 而后面 在参数的转换传递过程中 只能传一个QString 最后又需要得到一个bool值 这时就可以使用这种方法 bool testParam QString tempParam QString
  • matlab傅里叶变换漫谈

    Introduction 由于research需要 不得已开始回顾关于高数的基本知识 写在这里方便记录 这个故事告诉我们 What goes around comes around meaning that life has a funny
  • java二维数组随机赋值_java 二维数组随机赋值

    java 二维数组随机赋值 2021 01 31 00 08 55 简介 目的 使用二维数组打印一个 10 行杨辉三角 视频教程推荐 java课程 思路 1 第一行有 1 个元素 第 n 行有 n 个元素 2 每一行的第一个元素和最后一个元
  • HTML头部

    目录 实例 HTML 元素 HTML
  • Linux命令·rm

    linux中删除文件和目录的命令 rm命令 rm是常用的命令 该命令的功能为删除一个目录中的一个或多个文件或目录 它也可以将某个目录及其下的所有文件及子目录均删除 对于链接文件 只是删除了链接 原有文件均保持不变 rm是一个危险的命令 使用
  • angular2 Http请求

    提供HTTP服务 HttpModule并不是Angular的核心模块 它是Angular用来进行Web访问的一种可选方式 并位于一个名叫 angular http的独立附属模块中 编辑app module ts import HttpMod
  • Fortran基础1——声明及数据类型

    声明及数据类型 一 声明的意义 告诉编译器要预留一些存放数据的内存空间 二 基本数据类型 数据类型 描述 整数 integer a 浮点数 real a 字符 character a 逻辑变量 logical a 复数 complex a
  • 程序员的自我修养——链接、装载与库

    1 温故而知新 操作系统概念 北桥 连接高速芯片 系统调用接口 以软件中断的方式提供 如Linux使用0x80号中断作为系统调用接口 多任务系统 进程隔离 设备驱动 直接使用物理内存的弊端 地址空间不隔离 内存使用效率低 程序运行的地址不确
  • httpclient 聚合

    文章目录 依赖 DefaultHttpClient 废弃 设置代理 传文件 HttpClientUtil version 4 3 6 依赖
  • html+js实现输入用户名和密码点击登录跳转页面

    html js实现 输入用户名和密码点击登录跳转其他页面 这里主页是index html 跳转的页面名字是随机点名 html 1 index html 用户名
  • OpenCV-Python调整图像对比度和带文字白纸照片背景漂白方法

    一 引言 在前面我们介绍了直方图均衡可以调整图像的对比度 那么还有没有其他方式调整对比度呢 答案是肯定的 今天就来招硬核的 二 对比度调整的硬核方法 这招硬核方法就是参考灰度图像的阈值处理 我们知道灰度图像的阈值处理的基本思想是 将图像中灰
  • SVN使用手册【简洁明了】

    这里写自定义目录标题 欢迎观看我的文档 废话不多说直接上方法 适合新手小白 SVN的工作原理 SVN的主要操作 1 SVN检出 SVN Checkout 2 SVN提交 上传SVN Commit SVN更新 下载 SVN Update 4
  • Kafka性能保证和延时队列实现原理

    数据不丢不漏 不重不错 一 不丢 生产写入消息不丢失 数据组织形式 首先 从数据组织形式来说 kafka有三层形式 kafka有多个主题 topic 每个主题有多个分区 分区分为主分区和副本分区 每个分区又有多条消息 而每个分区可以分布到不
  • epoll文件服务器,基于epoll实现的一个简单的web服务器

    详解1 EPOLLIN 文件描述符可以读 EPOLLOUT 文件描述符可以写 EPOLLPRI 文件描述符有紧急的数据可写 EPOLLERR 文件描述符发生错误 EPOLLHUP 文件描述符被挂起 EPOLLET 文件描述符有事件发生 所用
  • 服务器2012怎么安装无线网卡驱动,如何安装usb无线网卡驱动,教您如何安装电脑usb驱动...

    现在很多人都喜欢用无线上网 其原因就是摆脱了有限的束缚 使得电脑可以随时随地的上网 如果想要使用无线网卡的话 首先需要安装无线网卡驱动 那么无线网卡驱动怎么安装 这里 小编就来给大家分享无线网卡驱动安装的图文教程 对于没有内置无线网卡的台式
  • MacOS全套详细介绍如何下载Nginx

    前言 最近心血来潮试着用Mac下载Nginx 下载过程中也出现了一些下载问题 为了方便诸位更加舒心使用Nginx 避免走一些弯路和阅读大量文档 减少大量不必要的时间 这里就集中从0 1做个详细介绍 1 查看是否有HomeBrew Homeb
  • 理解 Linux 配置文件 [转载]

    理解 Linux 配置文件 转载 http www 900 ibm com developerWorks cn linux management configuration index shtml 分类和使用 Subodh Soni sub
  • echarts坐标轴

    坐标轴 直角坐标系中的 x y 轴 x 轴 y 轴 x 轴和 y 轴都由轴线 刻度 刻度标签 轴标题四个部分组成 部分图表中还会有网格线来帮助查看和计算数据 普通的二维数据坐标系都有 x 轴和 y 轴 通常情况下 x 轴显示在图表的底部 y
  • 服务器处理数据和信息吗,1.1 NG搭建服务器 与 动态数据处理介绍

    fastCGI 动态请求数据处理 1 fastcgi安装步骤 1 configure 生成makefile 2 在 make运行makefile sudo make instll 安装即可 出现错误如下 image png 解决方案如下 找