Linux进阶——web服务器

一、相关名词解释及概念:

        www:(world wide web)全球信息广播,通常来说的上网就是使用www来查询用户所需的信息。使用http超文本传输协议。

        过程:web浏览器向web服务(Apache,Microsoft,nginx)端发送web请求。www服务器需要提供可让客户端浏览的平台。服务器所提供的主要数据是超文本标记语言html和多媒体文件。html只是一些纯文本文件,通过所谓的标记来规范要显示的数据格式。web服务端将文档传输给浏览器(即客户端)。客户端收到服务器的数据之后,需要解析数据,最后将效果呈现到用户屏幕上。

客户端软件:浏览器       

服务器软件:nginx

网站格式:协议://域名:端口

                  https://192.18.68.99

https---->端口号443(加密传输)

http---->端口号80(明文)

对于主机网络配置:

IP地址一定要有,因为这是唯一标识主机的信息。

网关也是必要的,没有网关意味着没有下一跳的信息,也就无法正常上网。

域名服务器DNS,没有DNS就无法解析网站的IP地址。例如:想要请求百度的web服务,若没有DNS,就只能使用IP地址39.156.66.10,而不能使用www.baisu.com。

二、web服务器的网页资源类型

1、静态网页资源:

单纯是由服务器向用户提供数据,server不需要向client端有任何的互动,在网页设计时,纯粹HTML格式的网页通常被称为“静态网页”。

静态解析web服务器软件:Apache、Nignx

2、动态网页资源:

这种类型的网页可以让服务器与用户互动,例如留言板、博客等。

搭建动态网页的需求:

LAMP(linux+Apache+Mysql+PHP)

Lnmp(linux+Nginx+Mysql+php)

Apache、Nginx主要提供www服务器平台

Mysql:一种特殊的格式文件,这种文件要通过特殊接口来进行读写,适合多人同时写入与查询工作。

PHP:PHP程序代码可以直接在HTML网页中嵌入,就像编辑HTML网页一样简单。PHP是一种‘程序语言’,这种程序语言可以直接在网页中编写,不需要经过编译即可执行。

三、web服务器基本配置

服务器端:使用nginx提供web服务。

yum        install        nginx        -y        #下载nginx

/etc/nginx/conf.d        #配置文件目录

/etc/nginx/nginx.conf        #主配置文件

grep        ^[^#]        /etc/nginx/nginx.conf        #打印指定文件出注释以外的所有内容

/usr/share/nginx/html        #默认的nginx网站根目录

/var/log/nginx        #nginx的日志文件所在目录

/var/log/nginx/error.log        #错误日志

/var/log/nginx/access.log        #访问日志

使用nginx:

systemctl        disable        firewalld        --now        #关闭防火墙

setenforce        0        #关闭selinux

ss        -lntup        #查看端口,是否与nginx所需的80端口冲突(httpd)

systemctl        restart        nginx        #重启nginx服务

curl        -I        localhost        #测试是否可以使用curl命令访问web服务器或者使用浏览器访问

四、测试样例:

实例1

搭建web服务器,访问该服务器时显示“hello world”欢迎界面

vim        /usr/share/nginx/html/index.html        #写入hello world

curl        localhost        #查看写入信息

curl        192.168.68.130        #作用同上

实例2

建立两个基于IP地址访问的网页,要求如下:

该网站的IP地址主机位为100,设置首页目录为/www/ip/100,网页内容为this   is   100。

该网站的IP地址主机位为200,设置首页目录为/www/ip/200,网页内容为this   is   200。

nmtui        #添加IP地址192.168.68.100/24和192.168.68.200/24

nmcli        conneciton        up        ens160        #重启网络

mkdir        -pv        /www/ip/{100,200}        #创建所需的路径

echo        this is 100        >        /www/ip/100/index.html

echo        this is 200        >        /www/ip/200/index.html        #定义网页内容

setenforce 0        #设置selinux

书写配置文件:

vim        /etc/nginx/conf.d/test_ip.conf        #新建配置文件,将一下信息写入

server{listen 192.168.68.100:80;root /www/ip/100;location / {}
}
server{listen 192.168.68.200:80;root /www/ip/200;location / {}
}

systemctl        restart        nginx        #重启服务

成功!

实例3

建立两个基于端口访问的网站,设置网站首页的地址为/www/port/80,设置网页内容为:the port id 80。建立一个使用10000端口的网站,设置网站首页目录为/www/port/10000,网页内容为the port id 10000

mkdir        -pv        /www/port/{80,10000}

echo        this is 80        >        /www/port/80/index.html

echo        this is 10000        >        /www/port/10000/index.html        #定义网页内容

nmtui        #添加IP地址192.168.68.80和192.168.68.110

vim        /etc/nginx/conf.d/test_ip.conf        #写入以下配置

server{listen 192.168.68.80:80;root /www/port/80;location / {}
}
server{listen 192.168.68.110:10000;root /www/port/10000;location / {}
}

systemctl        restart        nginx        #重启nginx程序

成功!

tree        /www        #用树的形式查看

实例4

使用自定义域名www.bzy_test.com打开网页192.168.68.100

主机中存放域名与IP地址关联的文件地址:C:\Windows\System32\drivers\etc、hosts

使用pycharm以管理员的身份打开,并写入192.168.68.100  www.bzy_test.com

测试成功!

五、搭建http静态网站

 实例1

建立两个基于域名访问,要求如下:

新建一个网站,域名为www.ceshi.com,设置网站首页目录为/www/name,网页内容为this is test。

新建一个网站,域名为rhce.first.day,同时可以通过rhce.first.day设置网站首页目录为/www/ce,网页内容为today is first day of class。

基于域名的网站,需要用到域名解析。域名-->IP地址

浏览器如何通过域名去查URL对应的IP(对应的服务器地址):

1、浏览器缓存:浏览器会按照一定的频率缓存DNS记录。

2、操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,那就去操作系统中的hosts文件找。hosts是一个没有扩展名的系统文件,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联的数据库,当用户在浏览器上输入一个需要登陆的网址时,系统首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立刻打开相应的网页,如果没找到,系统会再将网址提交给DNS域名服务器进行IP地址解析。

windows下的hosts文件地址:C:\windows\System32\drivers\etc\hosts

查看windows客户端本地缓存解析记录:ipconfig        /displaydns

清除windows客户端本地缓存的DNS解析记录:ipconfig        /flushdns

3、路由缓存:路由器也有DNS缓存

4、ISP的DNS服务器:ISP是互联网提供方的简称,ISP有专门的DNS服务器应对DNS查询请求。

5、根服务器:ISP的DNS服务器找不到的话,他会向根服务器发送请求,进行递归查询(DNS服务器先问根域名服务器.com域名服务器的IP地址,然后再问.com域名服务器,以此类推)

实验步骤:

mkdir        -pv        /www/{name,ce}        #创建目录文件

echo this is test > /www/name/index.html
echo today is first day of class > /www/ce/index.html        #将网页内容写入index.html中

vim        /etc/nginx/conf.d/test_ip.conf        #修改配置信息,写入以下信息

server{listen 192.168.68.130:80;server_name www.ceshi.comroot /www/name;
}
server{listen 192.168.68.130:80;root /www/ce;server_name rhce.first.day ce.first.day;location / {}
}

vim        /etc/hosts        #添加域名与IP地址的对应,添加如下内容

192.168.68.130        localhost        www.ceshi.com        rhce.first.day        ce.first.day

nginx        -t        #查看修改是否有问题

systemctl        restart        nginx        #重启服务

curl        www.ceshi.com        #测试是否可用

实例2

基于虚拟目录和用户控制的web网站

yum        install        httpd-tools        #下载httpd-tools包提供网页认证自动生成储存用户密码和用户名的文件

htpasswd        -cb        /etc/nginx/conf.d/auth-password user1 123        #创建用户

mkdir        /www/real        #新建文件目录作为实际访问的目录

echo        real        >        /www/real/index.html        #并写入实际访问的内容index.html

vim        test_virtual.conf        #编辑网页访问,写入以下内容:

server{listen 192.168.68.130:80;root /usr/share/nginx/index;location /real {alias /www/real;auth_basic on;auth_basic_user_file /etc/nginx/conf.d/atuo_password;}
}

systemctl        restart        nginx        #重启

curl        192.168.68.131/real/        #测试1

curl        192.168.68.131/real/        -u        user1        #测试2

curl user1:123456@192.168.68.131/real        #测试3

curl user1:123456@192.168.68.131/real/        #测试4

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

  相较于http协议,https在可靠传输(如TCP之上),建立了一个SSL协议(SSL记录协议——为高层协议提供数据封装、压缩、加密等基本功能,SSL握手协议——用于实际的数据传输开始之前,通讯双方进行身份认证、协商加密算法、交换加密密钥等)

https网站的搭建www.bzy_test_https.com:

#https功能是由ngx_http_ssl_module模块提供

#新建ip并重启

nmcli        connection        modify        ens160        +ipv4.addresses        192.168.68.156/24

nmcli        connection        up        ens160   

#书写网站的首页文件    

mkdir        -pv        /www/https/

echo        https        >        /www/https/index.html       

#找到证书和私钥

cd        /etc/pki/tls/certs/        #证书存放路径

#.key是公钥文件,生成证书(自签名)的公私钥

openssl        genrsa        -out        https.key

#crt是由证书颁发机构CA签名后的证书,或者是由开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息

openssl        req        -utf8        -new        -key        https.key        -x509        -days        100        -out        https.crt

#写配置文件

vim        /etc/nginx/conf.d/test_https.conf

server{listen 192.168.68.156:443 ssl;root /www/https;ssl_certificate /etc/pki/tls/certs/https.crt;ssl_certificate_key /etc/pki/tls/certs/https.key;location / {}
}

systemctl        restart        nginx        #重启服务

curl        --insecure        https://192.168.68.156        #测试连接

#修改服务器和主机的dns配置文件

#主机配置文件地址:"C:\Windows\System32\drivers\etc\hosts"

#服务器配置文件地址:"/etc/hosts"

192.168.68.156   www.bzy_test_https.com        #加入IP地址与域名的对应关系

成功!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网易日常实习一面面经

1. 自我介绍 2. 两道代码题: 第一道题:写一道链表排序题要求空间复杂度O(1) :已ac 插入排序算法 时间复杂度 O(N^2),空间复杂度O(1) class ListNode{int val;ListNode next;public ListNode(int x) {this.val x;} } public cl…

查询语句来提取 detail 字段中包含 xxx 的 URL 里的 commodity/ 后面的数字串

您可以使用以下 SQL 查询语句来提取 detail 字段中包含 oss.kxlist.com 的 URL 里的 commodity/ 后面的数字串&#xff1a; <p><img style"max-width:100%;" src"https://oss.kxlist.com//8a989a0c55e4a7900155e7fd7971000b/commodity/20170925/20170…

Ubuntu 24.10 安装Deepseek(Ollama+openwebui)

一、Ollama安装 1.在线安装 curl -fsSL https://ollama.com/install.sh | sh 如果curl工具没有安装先执行如下命令 sudo apt install curl 验证curl是否安装成功 curl --version 安装的过程中会提示输入当前系统登录用户的密码。 安装提示success后,验证安装 ollama -…

基于YOLOv8+PyQt5的目标检测系统(环境配置+数据集+Python源码+PyQt5界面)——持续更新中

第1期 基于YOLOv8的吸烟行为检测系统&#xff08;环境配置数据集Python源码PyQt5界面&#xff09; 第2期 基于YOLOv8的玩手机行为检测系统&#xff08;环境配置数据集Python源码PyQt5界面&#xff09; 第3期 基于YOLOv8的灭火器检测系统&#xff08;环境配置数据集Python源码…

项目的虚拟环境的搭建与pytorch依赖的下载

文章目录 配置环境 pytorch的使用需要安装对应的cuda 在PyTorch中使用CUDA, pytorch与cuda不同版本对应安装指南&#xff0c;查看CUDA版本&#xff0c;安装对应版本pytorch 【超详细教程】2024最新Pytorch安装教程&#xff08;同时讲解安装CPU和GPU版本&#xff09; 配置环境…

[2025年最新]2024.3版本idea无法安装插件问题解决

背景 随着大模型的持续发展&#xff0c;特别年前年后deepseek的优异表现&#xff0c;编程过程中&#xff0c;需要解决ai来辅助编程&#xff0c;因此需要安装一些大模型插件 问题描述 在线安装插件的时候会遇到以下问题&#xff1a; 1.数据一直在加载&#xff0c;加载的很满 2.点…

怎么查看电脑显存大小(查看电脑配置)

这里提供一个简单的方法查看 winr打开cmd 终端输入dxdiag进入DirectX 点击显示查看设备的显示内存&#xff08;VRAM&#xff09; 用这个方法查看电脑配置和显存是比较方便的 dxdiag功能 Dxdiag是Windows的DirectX诊断工具&#xff0c;其主要作用包括但不限于以下几点&#…

拾取丢弃物品(结构体/数组/子UI/事件分发器)

实现&#xff1a;场景中随机生成几种物品&#xff0c;玩家可以拾取这些物品&#xff0c;也可丢弃已经拾取到的物品。 拾取丢弃物品时UI能实时更新玩家身上的物品量。 一.物品信息的创建 1.枚举 物品名 2.结构体表示物体属性 3.物品缩略图&#xff08;缩略图大小要为2的n次方…

KITE提示词框架:引导大语言模型的高效新工具

大语言模型的应用日益广泛。然而&#xff0c;如何确保这些模型生成的内容在AI原生应用中符合预期&#xff0c;仍是一个需要不断探索的问题。以下内容来自于《AI 原生应用开发&#xff1a;提示工程原理与实战》一书&#xff08;京东图书&#xff1a;https://item.jd.com/1013604…

性能优化中的系统架构优化

系统架构优化是性能优化的一个重要方面&#xff0c;它涉及到对整个IT系统或交易链上各个环节的分析与改进。通过系统架构优化&#xff0c;可以提高系统的响应速度、吞吐量&#xff0c;并降低各层之间的耦合度&#xff0c;从而更好地应对市场的变化和需求。业务增长导致的性能问…

【学习笔记】计算机网络(三)

第3章 数据链路层 文章目录 第3章 数据链路层3.1数据链路层的几个共同问题3.1.1 数据链路和帧3.1.2 三个基本功能3.1.3 其他功能 - 滑动窗口机制 3.2 点对点协议PPP(Point-to-Point Protocol)3.2.1 PPP 协议的特点3.2.2 PPP协议的帧格式3.2.3 PPP 协议的工作状态 3.3 使用广播信…

机器学习 - 理解偏差-方差分解

为了避免过拟合&#xff0c;我们经常会在模型的拟合能力和复杂度之间进行权衡。拟合能力强的模型一般复杂度会比较高&#xff0c;容易导致过拟合。相反&#xff0c;如果限制模型的复杂度&#xff0c;降低其拟合能力&#xff0c;又可能会导致欠拟合。因此&#xff0c;如何在模型…

【STM32】ADC

本次实现的是ADC实现数字信号与模拟信号的转化&#xff0c;数字信号时不连续的&#xff0c;模拟信号是连续的。 1.ADC转化的原理 模拟-数字转换技术使用的是逐次逼近法&#xff0c;使用二分比较的方法来确定电压值 当单片机对应的参考电压为3.3v时&#xff0c;0~ 3.3v(模拟信号…

DeepSeek 助力 Vue 开发:打造丝滑的步骤条

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

基于Python的人工智能驱动基因组变异算法:设计与应用(下)

3.3.2 数据清洗与预处理 在基因组变异分析中,原始数据往往包含各种噪声和不完整信息,数据清洗与预处理是确保分析结果准确性和可靠性的关键步骤。通过 Python 的相关库和工具,可以有效地去除噪声、填补缺失值、标准化数据等,为后续的分析提供高质量的数据基础。 在基因组…

elasticsearch安装插件analysis-ik分词器(深度研究docker内elasticsearch安装插件的位置)

最近在学习使用elasticsearch&#xff0c;但是在安装插件ik的时候遇到许多问题。 所以在这里开始对elasticsearch做一个深度的研究。 首先提供如下链接&#xff1a; https://github.com/infinilabs/analysis-ik/releases 我们下载elasticsearch-7-17-2的Linux x86_64版本 …

linux部署ollama+deepseek+dify

Ollama 下载源码 curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz sudo tar -C /usr -xzf ollama-linux-amd64.tgz启动 export OLLAMA_HOST0.0.0.0:11434 ollama serve访问ip:11434看到即成功 Ollama is running 手动安装deepseek…

力扣 单词拆分

动态规划&#xff0c;字符串截取&#xff0c;可重复用&#xff0c;集合类。 题目 单词可以重复使用&#xff0c;一个单词可用多次&#xff0c;应该是比较灵活的组合形式了&#xff0c;可以想到用dp&#xff0c;遍历完单词后的状态的返回值。而这里的wordDict给出的是list&…

【JVM详解二】常量池

一、常量池概述 JVM的常量池主要有以下几种&#xff1a; class文件常量池运行时常量池字符串常量池基本类型包装类常量池 它们相互之间关系大致如下图所示&#xff1a; 每个 class 的字节码文件中都有一个常量池&#xff0c;里面是编译后即知的该 class 会用到的字面量与符号引…

企业数据集成案例:吉客云销售渠道到MySQL

测试-查询销售渠道信息-dange&#xff1a;吉客云数据集成到MySQL的技术案例分享 在企业的数据管理过程中&#xff0c;如何高效、可靠地实现不同系统之间的数据对接是一个关键问题。本次我们将分享一个具体的技术案例——通过轻易云数据集成平台&#xff0c;将吉客云中的销售渠…