零基础HTML教程(35)--网站的本地部署

文章目录

  • 1. 背景
  • 2. 网站的本地部署
  • 3. 本地部署的步骤
  • 4. 服务器软件介绍
  • 5. 本地部署实操
    • 5.1 开发一个网站
    • 5.2 下载服务器软件
    • 5.3 将网站复制到服务器软件下
    • 5.4 启动服务器软件
    • 5.5 通过Http协议访问网站
  • 6. 小结

1. 背景

我们之前开发的网页,都是编写完成后,双击直接用浏览器打开的,效果如下。

注意红线处的地址,它实际上是一个文件的本地存储地址,所以开头会有个file://标记,表示浏览器是从本地文件读取的网页。
在这里插入图片描述
但是实际上,我们的网页并不是为了仅仅从自己电脑上打开并浏览的。

网页更大的价值是在于传播,也就是你电脑上的网页,要让成千上万人看到,那才更有价值。

要实现网页的传播,就得将网站(网页)部署到服务器上。

2. 网站的本地部署

网站根据部署位置的不同,可以简单地分为本地部署和远程部署两类。

所谓本地部署,就是把网站部署到本机(当前使用电脑)的服务器软件上,这种主要是用来测试网站能否在服务器软件上运行的良好。

所谓远程部署,就是把网站部署到性能强悍的机房服务器,或者云服务器上,以供全世界的朋友们访问。

本节我们先讲一下如何实现本地部署。

3. 本地部署的步骤

本地部署可以分为几个步骤:

  1. 编写网站
  2. 下载服务器软件
  3. 将网站复制到服务器软件下
  4. 启动服务器软件
  5. 通过Http协议访问网站

从这里你其实可以看到,本地部署的核心其实是服务器软件。

4. 服务器软件介绍

这里首先要区分服务器、服务器软件这两个概念。

服务器一般我们指的是性能比较强的电脑,这种电脑我们个人拿来用有点浪费,因为挺贵的,起步也得一两万一台。它是用来运行我们的网站的,可以供成千上万(甚至几十万、几百万)的用户同时访问。

服务器软件,则是服务器上安装的各种软件,以我们网站部署所用软件为例,精准的说应该是web服务器软件,它的作用就是把网站传播出去。

做个对比,广播大家都听过,广播的作用是把声音传播出去,那么web服务器软件的作用,就是把网站传播出去。广播是通过空气传播的,网站是通过http协议传播的,web服务器就是支持http协议传播的软件。

5. 本地部署实操

上面讲了好多概念性的东西,接下来我们介绍下如何实实在在的进行本地部署。

5.1 开发一个网站

如下图,我们新建一个网站文件夹mysite,里面简简单单放个网页index.html。
在这里插入图片描述
然后编写index.html代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>我的网站</title>
</head>
<body>这个网站很好
</body>
</html>

5.2 下载服务器软件

web服务器软件有很多,就像音乐软件有很多一个道理(QQ音乐、网易云音乐、酷狗音乐)。

操作起来也差不多,此处给大家选一个比较简单的——nginx,这软件虽然很小,但是性能极其强大。

打开网址:https://nginx.org/en/download.html,点击红色区域下载:
在这里插入图片描述

下载完成后解压如下:
在这里插入图片描述

5.3 将网站复制到服务器软件下

将之前开发好的网站mysite,复制到下载的nginx软件的html目录下,这个目录就是用来放网站的。
在这里插入图片描述

5.4 启动服务器软件

双击nginx.exe,即可启动服务器。

注意某些情况下,nginx可能无法启动,例如端口被占用,这个大家可以自行百度解决,此处不再展开。

5.5 通过Http协议访问网站

此时我们再次打开浏览器,输入网址:http://127.0.0.1:80/mysite/index.html,即可访问到我们部署的网站了:
在这里插入图片描述

解释下:

  • http代表网络协议传输。
  • 127.0.0.1表示本机地址,如果要访问别的电脑上的网站,则把本机地址替换为访问电脑的地址即可。
  • 80代表端口号,我们电脑上的每个程序要想对外通讯,就得有个端口(类似于每个外联设备得有个物理的USB接口,每个通讯也得有个独立的端口)。
  • mysite是我们网页所在的文件夹名。
  • index.html是我们开发网页文件名。

最后还有个小技巧,由于80是默认端口,可以省略,而index.html是默认网页,也可以省略,所以我们写下面的地址也行:
在这里插入图片描述

6. 小结

网站本地部署后,实际上已经可以通过http将网站传播出去了,只要别人的电脑跟你的电脑网络互通,就可以通过你的IP地址访问你的网站了。

下一步,我们就是需要有一个电脑,IP是在互联网上可访问的,这样我们的网站就可以被任意接入互联网上的电脑(手机、平板)访问了。

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

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

相关文章

Day22:Leetcode:654.最大二叉树 + 617.合并二叉树 + 700.二叉搜索树中的搜索 + 98.验证二叉搜索树

LeetCode&#xff1a;654.最大二叉树 1.思路 解决方案&#xff1a; 单调栈是本题的最优解&#xff0c;这里将单调栈题解本题的一个小视频放在这里 单调栈求解最大二叉树的过程当然这里还有leetcode大佬给的解释&#xff0c;大家可以参考一下&#xff1a; 思路很清晰&#xf…

云渲染的线程数是什么意思?

云渲染线程是指在云渲染过程中&#xff0c;同时处理渲染任务的线程数量。 线程是CPU调度和执行的基本单位&#xff0c;每个线程可以独立执行一系列指令。在云渲染场景中&#xff0c;服务器通常配备有高性能的CPU&#xff0c;这些CPU可能拥有几十甚至上百个物理核心&#xff0c…

Vue2基础及其进阶面试(一)

简单版项目初始化 新建一个vue2 官网文档&#xff1a;介绍 — Vue.js 先确保下载了vue的脚手架 npm install -g vue-cli npm install -g vue/cli --force vue -V 创建项目 vue create 自己起个名字 选择自己选择特性 选择&#xff1a; Babel&#xff1a;他可以将我们写…

单向无头链表实现

目录 1. 为什么要有链表&#xff1f; 2. 链表的种类 3. 具体功能实现 &#xff08;1&#xff09;节点结构体定义 &#xff08;2&#xff09;申请节点 &#xff08;3&#xff09;尾插 &#xff08;4&#xff09;尾删 &#xff08;5&#xff09;头插 &#xff08;6&#…

面向对象-----继承

前面向大家介绍了面向对象中的封装性&#xff0c;今天再来向大家介绍面向对象的继承和多态的两大特性。 1.继承 1.1 为什么需要继承&#xff1f; 在java语言中&#xff0c;我们用类来描述世间万物&#xff0c;虽然万物非常复杂&#xff0c;但总有一些共同点&#xff0c;如果…

CAD2023 2024 2025以上版本出现无法运行 AutoCAD,原因可能如下1) 此版本的 AutoCAD 安装不正确

错误提示如下 此版本的 AutoCAD 安装不正确 缺少依赖组件Microsoft Edge webview2 Runtime 缺少依赖组件 Microsoft.NET跟You must install .NET Desktop Runtime 打开autoremove&#xff0c;点击扩展&#xff0c;输入 无法运行&#xff0c;点击搜索 你的软件属于什么版本…

fork 与 vfork 的区别

关键区别一&#xff1a; vfork 直接使用父进程存储空间&#xff0c;不拷贝。 关键区别二&#xff1a; vfork保证子进程先运行,当子进程调用exit退出后&#xff0c;父进程才执行。 我们可以定义一个cnt&#xff0c;在子进程中让它变成3&#xff0c; 如果使用fork&#xff0c;那…

【LeetCode】【1】两数之和(1141字)

文章目录 [toc]题目描述样例输入输出与解释样例1样例2样例3 提示进阶Python实现哈希表 个人主页&#xff1a;丷从心 系列专栏&#xff1a;LeetCode 刷题指南&#xff1a;LeetCode刷题指南 题目描述 给定一个整数数组nums和一个整数目标值target&#xff0c;请在该数组中找出…

Typora+PicGo+Gitee设置图床,解决CSDN上传markdown文件图片加载不出来的问题(超级实用)

注&#xff1a; 由于gitee现在已经加上了防盗链&#xff0c;并且只支持1M的图片&#xff0c;我觉得不是很好用&#xff08;可以买腾讯云或阿里云等&#xff09;&#xff0c;之后找到比较好点的图床工具也会持续更新的。&#xff08;sm.ms好像还好&#xff0c;github网速不太稳定…

基于Vue和uni-app的增强型单选ccRadioView组件开发

标题&#xff1a;基于Vue和uni-app的增强单选组件ccRadioView的设计与实现 摘要&#xff1a;本文将详细介绍如何使用Vue和uni-app构建一个简单、好用且通用的单选框组件ccRadioView。该组件提供了单选列表的功能&#xff0c;并支持反向传值&#xff0c;方便开发者快速实现单选…

太速科技-基于5VLX110T FPGA FMC接口功能验证6U CPCI平台

基于5VLX110T FPGA FMC接口功能验证6U CPCI平台 一、板卡概述   本板卡是Xilinx公司芯片V5系列芯片设计信号处理板卡。由一片Xilinx公司的XC5VLX110T-1FF1136 / XC5VSX95T-1FF1136 / XC5VFX70T-1FF1136芯片组成。FPGA接1片DDR2内存条 2GB&#xff0c;32MB Nor flash存储器&a…

【Java基础】IO流(4) —— 转换流、打印流

【Java基础】IO流(1) —— 简介 【Java基础】IO流(2) —— 字符流 【Java基础】IO流(3) —— 字节流 【Java基础】IO流(4) —— 转换流、打印流 【Java基础】IO流(5) —— 序列流、内存流 【Java基础】IO流(6) —— 随机访问文件流、数据流 转换流 InputStreamReader 是字节输…

【制作100个unity游戏之28】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版4(附带项目源码)

最终效果 系列导航 文章目录 最终效果系列导航前言僵尸配置僵尸动画移动断头攻击死亡 源码完结 前言 本节主要实现配置僵尸动画&#xff0c;移动&#xff0c;断头&#xff0c;攻击&#xff0c;死亡功能。 僵尸 配置僵尸动画 普通动画 无头动画&#xff0c;新增覆盖图层 …

java实现环形链表带哨兵

双向环形链表带哨兵&#xff0c;这时哨兵既作为头&#xff0c;也作为尾。 package com.tfq.arithmetic.linkedlist;import java.util.Iterator;/*** author: fqtang* date: 2024/05/22/8:40* description: 环形链表*/ public class DoublyLinkedListSentinel implements Iterab…

嵌入式学习——3——IO分类模型

1、阻塞IO和非阻塞IO 1.1 阻塞IO - 在阻塞IO模型中&#xff0c;当一个IO操作&#xff08;如读取或写入&#xff09;开始时&#xff0c;如果数据没有准备好&#xff0c;程序会被挂起&#xff08;即阻塞&#xff09;&#xff0c;直到数据准备好并且IO操作完成。 - 在数据准备阶段…

浏览器API与协议

现代浏览器是一个囊括了数百个组件的操作系统&#xff0c;包括进程管理、安全沙箱、分层的优化缓存、JavaScript虚拟机、图形渲染和GPU管道、存储系统、传感器、音频和视频&#xff0c;网络机制等等。 在浏览器上运行的应用的性能。&#xff0c;取决于多个组件&#xff1a;解析…

notepad++ 批量转所有文件编码格式为UTF-8

1、安装notepad及PythonScript_3.0.18.0插件 建议两者都保持默认路径安装x64版本&#xff1a; 阿里云盘分享https://www.alipan.com/s/xVUDpY8v5QL安装好后如下图&#xff1a; 2、new Script&#xff0c;新建脚本&#xff0c;文件名为ConvertEncoding 3、自动打开脚本&#xff…

YOLOV8 如何训练自己的数据

1、git code 项目 地址 2、数据标注&#xff1a;使用yolov8官方推荐的roboflow 地址 2.1 上传数据 2.2 标注 2.3 生成数据集 2.4 导出数据 3 训练 3.1 建.yaml 文件 建立.yaml 文件 3.2 修改.yaml文件里面的内容 1.这是roboflow 网站下下来的数据&#xff0c;只需要把.…

MySQL中锁的几种类型

MySQL根据加锁的范围&#xff0c;可以分为全局锁、表级锁、行级锁三类。 2.5.1. 锁定读 2.5.1.1. 共享锁和独占锁 事务的 读-读 情况并不会引起什么问题&#xff0c;对于 写-写、读-写 或 写-读 这些情况可能会引起一些问题&#xff0c;需要使用MVCC或者加锁的方式来解决。在…