Linux进阶——web服务器

news2025/4/21 16:48:04

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

        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://www.coloradmin.cn/o/2294858.html

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

相关文章

QT笔记——多语言翻译

文章目录 1、概要2、多语言切换2.1、结果展示2.2、创建项目2.2、绘制UI2.2、生成“.st”文件2.4、生成“.qm”文件2.5、工程demo 1、概要 借助QT自带的翻译功能,实现实际应用用进行 “多语言切换” 2、多语言切换 2.1、结果展示 多语言切换 2.2、创建项目 1、文件…

oracle 基础语法复习记录

Oracle SQL基础 因工作需要sql能力,需要重新把sql这块知识重新盘活,特此记录学习过程。 希望有新的发现。加油!20250205 学习范围 学习SQL基础语法 掌握SELECT、INSERT、UPDATE、DELETE等基本操作。 熟悉WHERE、GROUP BY、ORDER BY、HAVIN…

网络工程师 (22)网络协议

前言 网络协议是计算机网络中进行数据交换而建立的规则、标准或约定的集合,它规定了通信时信息必须采用的格式和这些格式的意义。 一、基本要素 语法:规定信息格式,包括数据及控制信息的格式、编码及信号电平等。这是协议的基础,确…

【银河麒麟高级服务器操作系统】系统日志Call trace现象分析及处理全流程

了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://document.kylinos.cn 服务器环境以及配置 系统环境 物理机/虚拟机/云…

Milvus 存储设计揭秘:从数据写入到 Segment 管理的全链路解析

作为一款云原生向量数据库,Milvus 的高效查询性能有赖于其独特的存储架构设计。然而,在实际使用过程中,许多社区用户常常会遇到以下问题: 为什么频繁调用 flush 后,查询速度会变慢? 数据删除后,…

Redis双写一致性(数据库与redis数据一致性)

一 什么是双写一致性? 当修改了数据库(MySQL)中的数据,也要同时更新缓存(redis)中的数据,缓存中的数据要和数据库中的数据保持一致 双写一致性,根据业务对时间上的要求,…

14.PPT:中国注册税务师协会宣传【26】

目录 NO12 NO3/4/5​ NO678​ 【文本框水平/垂直居中】【文本框内容水平/垂直居中】 NO12 坑:注意❗Word文档的PPt素材.docx的标题大纲是混乱的,虽然他设置了,所以我们需要重新设置 设计→主题视图→幻灯片母版→删除版式插入logo NO3/4…

搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程

参考文章: 安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客 一、简单介绍 本文开发环境,均为 windows 环境,mac 环境其实也类似 ~ ① 编译proto文件,相关插件 简单介绍: protoc 是编译器,用于将…

autMan奥特曼机器人-对接deepseek教程

一、安装插件ChatGPT 符合openai api协议的大模型均可使用此插件,包括chatgpt-4/chatgpt-3.5-turbo,可自定义服务地址和模型,指令:gpt,要求Python3.7以上,使用官方库https://github.com/openai/openai-pyt…

数据分析:企业数字化转型的金钥匙

引言:数字化浪潮下的数据金矿 在数字化浪潮席卷全球的背景下,有研究表明,只有不到30%的企业能够充分利用手中掌握的数据,这是否让人深思?数据已然成为企业最为宝贵的资产之一。然而,企业是否真正准备好从数…

Spring Web MVC项目的创建及使用

一、什么是Spring Web MVC? Spring Web MVC 是基于 Servlet API 构建的原始 Web 框架,从⼀开始就包含在 Spring 框架中,通常被称为Spring MVC。 1.1 MVC的定义 MVC 是 Model View Controller 的缩写,它是软件工程中的一种软件架构…

MySQL的底层原理与架构

前言 了解MySQL的架构和原理对于很多的后续很多的操作会有很大的帮助与理解。并且很多知识都与底层架构相关联。 了解MySQL架构 通过上面的架构图可以得知,Server层中主要由 连接器、查询缓存、解析器/分析器、优化器、执行器 几部分组成的,下面将主要…

Node.js 实现简单爬虫

介绍 爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。 本文将使用 Nodejs 编写一个简单的爬虫脚本,爬取一个美食网站,获取菜品的标题和图片链接,并以表格的形式输出。 准备工作 1、初始化项目 首先&#xff0…

2024.1版android studio创建Java语言项目+上传gitee

1.在gitee上创建仓库 Gitee 创建仓库并邀请成员指南_gitee创建仓库邀请成员-CSDN博客 见1 2.新建android studio项目 3.在Android studio配置gitee Android Studio提交代码到gitee仓库_android log in to gitee-CSDN博客 其中的一二步 p.s.添加gitee账户选择password时&a…

opentelemetry-collector 配置elasticsearch

一、修改otelcol-config.yaml receivers:otlp:protocols:grpc:endpoint: 0.0.0.0:4317http:endpoint: 0.0.0.0:4318 exporters:debug:verbosity: detailedotlp/jaeger: # Jaeger supports OTLP directlyendpoint: 192.168.31.161:4317tls:insecure: trueotlphttp/prometheus: …

SQL Server 数据库迁移到 MySQL 的完整指南

文章目录 引言一、迁移前的准备工作1.1 确定迁移范围1.2 评估兼容性1.3 备份数据 二、迁移工具的选择2.1 使用 MySQL Workbench2.2 使用第三方工具2.3 手动迁移 三、迁移步骤3.1 导出 SQL Server 数据库结构3.2 转换数据类型和语法3.3 导入 MySQL 数据库3.4 迁移数据3.5 迁移存…

C# SQlite使用流程

前言 不是 MySQL 用不起,而是 SQLite 更有性价比,绝大多数的应用 SQLite 都可以满足。 SQLite 是一个用 C 语言编写的开源、轻量级、快速、独立且高可靠性的 SQL 数据库引擎,它提供了功能齐全的数据库解决方案。SQLite 几乎可以在所有的手机…

MySQL数据库 (三)- 函数/约束/多表查询/事务

目录 一 函数 (一 字符串函数 (二 数值函数 (三 日期函数 (四 流程函数 二 约束 (一 概述 (二 约束演示 (三 外键约束 三 多表查询 (一 多表关系 1 一对多(多对一) 2 多对多 3 一对一 (二 多表查询概述 (三 内连接 1 查询语法 2 代码实…

【玩转 Postman 接口测试与开发2_018】第14章:利用 Postman 初探 API 安全测试

《API Testing and Development with Postman》最新第二版封面 文章目录 第十四章 API 安全测试1 OWASP API 安全清单1.1 相关背景1.2 OWASP API 安全清单1.3 认证与授权1.4 破防的对象级授权(Broken object-level authorization)1.5 破防的属性级授权&a…

攻防世界baigeiRSA

打开题目附件 import libnum from Crypto.Util import number from secret import flagsize 128 e 65537 p number.getPrime(size) q number.getPrime(size) n p*qm libnum.s2n(flag) c pow(m, e, n)print(n %d % n) print(c %d % c)n 8850300144784503160345704866…