使用腾讯云服务器从零搭建个人网站

news2024/11/28 21:57:18

前期准备工作

1.服务器重装系统

选择ubuntu18的系统镜像

请添加图片描述

2.开放端口

需要开放80,27017,3000,22端口

  • 80端口用于配置nginx服务
  • 27017端口用于连接mongondb数据库
  • 3000端口是启动项目的端口
  • 22端口用于ssh远程连接服务器,一般默认会开启

请添加图片描述

3.域名解析

添加解析记录,这里的记录值为服务器的公网IP

请添加图片描述

连接服务器

1.一键远程登录服务器

请添加图片描述

2.修改配置文件

为了拥有最高权限,方便操作,我们使用root用户连接。

但是Ubuntu实例默认禁用root用户通过密码SSH远程登录,如需开启,需要手动配置文件。

# 设置 root 密码,返回passwd: password updated successfully则设置成功
sudo passwd root
# 打开 sshd_config 配置文件
sudo vi /etc/ssh/sshd_config
# 在末尾添加以下两行代码
PermitRootLogin yes
PasswordAuthentication yes

3.使用xShell远程连接服务器

注意:首次通过本地远程登录软件登录 Linux 实例之前,需要重置root 用户
的密码

请添加图片描述

选择用密码登录

请添加图片描述

登陆成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4cLoOBE2-1687183487213)(%E4%BB%8E%E9%9B%B6%E6%90%AD%E5%BB%BA%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%203fb71f6a93774b11ad2e04a4ee14e67d/7.png)]

安装和配置软件,并启动项目

1.安装软件

# 更新下载源
apt update
# 安装 nginx
apt install nginx -y

# 安装 mongodb 数据库
apt install mongodb-server -y

# 安装 git
apt install -y git
# 生成ssh秘钥,一路回车即可
ssh-keygen
# 查看ssh秘钥
cat /root/.ssh/id_rsa.pub

# 安装node.js
apt install -y nodejs
# 安装npm 
apt install -y npm
# 设置淘宝镜像源,加快下载速度
npm config set registry https://registry.npm.taobao.org
# 安装软件包n,方便切换node版本
npm i -g n
# 使用版本为12.6.0的node
n 12.6.0
# 安装pm2包,用于后台启动端口(报错则重新连接终端)
npm i -g pm2

2.向gitee提交最新代码

请添加图片描述

3.把ssh-keygen生成的秘钥添加为项目的公钥

请添加图片描述

4.拉取代码,启动项目

# 进入/var/www/html目录中并创建data目录
cd /var/www/html && mkdir data
# 进入data目录,并使用ssh链接克隆代码
cd data && git clone git@gitee.com:liu-guanghui233/king-glory.git
# 进入项目的文件夹,下载依赖
npm i
# 使用pm2启动项目
pm2 start index.js

请添加图片描述

5.网页查看项目

这是nginx的默认页面,并不是我们项目的页面,还需要配置nginx的反向代理才能显示

请添加图片描述

配置 Nginx 的反向代理

1.获取配置文件

进入nginx配置网站:https://www.digitalocean.com/community/tools/nginx

选择nodejs,站点就填网站的域名,HTTPS,PHP,Python,路由设置,日志记录不启用,但需要启动反向代理,选项配置好就可以下载配置

请添加图片描述

2.修改nginx的配置文件

直接使用Xftp传输和修改文件,超级方便

删除/etc/nginx目录下原有的sites-enabled,sites-available文件夹和nginx.conf文件,然后将左侧除了nginxconfig.txt所有文件传输过去

请添加图片描述

3.重新启动

# 查看nginx是否配置成功,如果报错,则修改错误
nginx -t
# 重新加载nginx的配置文件
service nginx reload
# 重启项目
pm2 restart index.js

此时可以用浏览器访问到项目了!但是后台数据无法显示,因为我们还没将本地数据迁移到服务器中

请添加图片描述

配置mongodb数据库

1.导出数据库

# 进入本地项目的根目录中,使用命令导出数据库
mongodump -d 数据库名

项目的根目录下就会多出一个文件夹dump,里面就是我们所需要的数据
请添加图片描述

2.更新数据库数据

# 将dump文件夹复制到服务器的/root目录下,然后恢复数据
mongorestore

这时后台就有数据了

3.navicat远程连接服务器的数据库

如果需要修改数据库中的数据,可以使用ssh远程连接,操作更简单

请添加图片描述

连接成功!

请添加图片描述

扩展:定时执行脚本

1.将需要执行的脚本拷贝到服务器中

2.给文件添加执行权限

chmod 775 脚本文件名

3.测试

# 直接使用node运行脚本
# 如果在本地跑没问题,在服务器跑报错了,多半是node的版本问题;可切换版本解决问题
node index.js

4.添加定时执行脚本的文件

可在线生成配置文件:Crontab Generator - Generate crontab syntax (crontab-generator.org)

# 打开文件
crontab -e
# 修改文件内容(第一个是node的路径,第二个是脚本文件的路径。)
# 查看node路径的方法:which node
# ctrl+x退出,输入y回车保存并退出
0 8 * * * /usr/local/bin/node /var/www/html/data/weather-forecast/index.js
# 上面的意思是设置每天8点整执行脚本
# 查看当前用户设置的定时执行文件
crontab -l

5.重启

service cron restart

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

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

相关文章

SpringBoot - @Transactional注解详解

简介 Spring中的Transactional注解,基于动态代理的机制,提供了一种透明的事务管理机制,方便快捷的解决在开发中碰到的问题,Transactional 的事务开启 ,或者是基于接口的或者是基于类的代理被创建。Spring为了更好的支…

数据库SQL查询(二)之连接查询

本文介绍SQL查询,如何在海量数据中筛选想要数据; 数据库管理系统选择:关系型数据库mysql 数据库管理工具选择:navicat 本文中查询语句和查询案例参考自:https://edu.csdn.net/course/detail/27673?ops_request_mis…

python django vue httprunner 实现接口自动化平台(最终版)

一、项目介绍: 1.1 项目地址 前端地址: GitHub - 18713341733/test_platform_service: django vue 实现接口自动化平台 后端地址: GitHub - 18713341733/test_platform_front: Django vue实现接口自动化平台 1.2 项目介绍 1.2.1 环境…

在 K8S 中部署一个应用 上

本身在 K8S 中部署一个应用是需要写 yaml 文件的,我们这次简单部署,通过拉取网络上的镜像来部署应用,会用图解的方式来分享一下,过程中都发生了什么 简单部署一个程序 我们可以通过 kubectl run 的方式来简单部署一个应用&#…

Python深度学习027:什么是梯度、梯度消失、梯度爆炸以及如何解决

文章目录 1. 梯度的概念2. 梯度更新中存在的问题2.1 梯度消失2.2 梯度爆炸3. 解决办法3.1 梯度消失3.2 梯度爆炸1. 梯度的概念 在机器学习中,梯度是指一个多元函数在某一点处的变化率以及变化的方向。 对于一个参数化的函数,梯度可以告诉我们在一个特定的点处函数值增加最快…

分布式系统概念和设计——Mach实例研究

分布式系统概念和设计 Mach实例研究 Mach主要抽象概述 任务 一个Mach任务是一个执行环境主要包括一个被保护的地址空间和一个内存管理的权能集合这些权能主要用于访问端口 线程 任务可以包含多个线程在共享内存的多处理器中,属于同一个任务的线程可以在不同的处理…

【案例实战】SpringBoot整合Redis实现缓存分页数据查询

正式观看本文之前,设想一个问题,高并发情况下,首页列表数据怎么做? 类似淘宝首页,这些商品是从数据库中查出来的吗?答案肯定不是,在高并发的情况下,数据库是扛不住的,那么…

Java解析XML文件(DOM4J解析xml文件)

内容重点1:DOM4J创建、解析、修改XML文件 内容重点2:DOM4J模拟解析web.xml配置文件,实现实例化servlet 1、什么是xml Xml(Extensible Markup Language) 一种扩展性标示语言,出现的意义其实与JSON字符串的意义相似,是新一代的数据交换标准…

怎么加密共享文件夹?局域网共享文件夹加密方法

相信很多企业都在使用局域网共享文件夹,它可以很方便地实现各部门之间的沟通协作。但是由于使用人员众多,数据安全非常难以得到保障。那么我们该怎么加密局域网共享文件夹呢? 共享文件夹加密 首先,我们先来了解一下共享文件夹加密…

某农业大学数据结构A-第13周作业

1.拓扑排序 【问题描述】 拓扑排序的流程如下: 1. 在有向图中选一个没有前驱的顶点并且输出之; 2. 从图中删除该顶点和所有以它为尾的弧。 重复上述两步,直至全部顶点均已输出,或者当前图中不存在无前驱的顶点为止。后一种情况则…

渲染模式差异和选择

传统服务端渲染 在过去传统开发中,页面渲染任务是由服务端完成的,服务器负责获取数据,拼装页面,客户端仅负责内容显示,使用这种方式的典型技术有 JSP、PHP、ASP.NET 等等。 客户端渲染 CSR Vue.js、React 这类框架之…

专访蘑菇物联沈国辉:做工业AI时代的推动者

在中国制造迈向高质量发展的进程中,数智化转型会成为破局之道。在这其中,蘑菇物联除了是一个本分的答题者,还是一个善于发现问题的贡献者。 作者|思杭 编辑|皮爷 出品|产业家 从广州造纸厂到广州造船厂,从第一橡胶厂到电池厂&a…

利用R语言通过百度地图API进行批量地理编码

利用R语言通过百度地图API进行批量地理编码 当您有大量的地点名称需要在地图上来呈现时,首先要在在线地图上找到该地址的坐标,通常是指经纬度,如果能够用代码来实现,便少了许多费时费力的体力活儿,以下将详细介绍地理…

数据结构的一些总结---利用Python实现

大家好,我是北山啦,本文简单介绍Python数据结构的相关内容,简单就是很简单的那种 文章目录 查找线性查找 O(n)二分查找(Binary Search) O(logn) 排序排序Low B三人组冒泡排序选择排序插入排序 排序NB三人组快速排序归并排序 数据结构栈和队列…

[Day 3 of 17]Building a document scanner in OpenCV

a computer vision-powered document scanner 计算机视觉驱动的文档扫描仪,三个步骤: 边缘检测edges通过边缘,找到代表待扫描纸张的轮廓contour应用透视转换(a perspective transform)获得文档自上而下的视图 How to Build a Kick-Ass Mob…

录音转文字的方法有哪些?这三个录音转文字的方法有哪些

你是否曾经遇到过这样的场景:在开会或者采访时,需要记录重要信息,但是手写记录或打字速度跟不上对话节奏,甚至难以记录所有细节。此时,录音转文字软件就派上用场了。然而,市场上有太多种选择,到…

【Vue3 生态】Vue Router 路由知识概览

前言 在 Web 前端开发中,路由是非常重要的一环,但是路由到底是什么呢? 从路由的用途上讲 路由是指随着浏览器地址栏的变化,展示给用户不同的页面。 从路由的实现原理上讲 路由是URL到函数的映射。它将 URL 和应用程序的不同部分…

低代码平台——提高研发效率的神器

一、前言 听起来像是一个噱头,但是低代码确实是一个能够快速提高研发效率的神器。 通过使用低代码平台,研发人员可以节省好几个月的时间,将前后端各种功能可视化以搭积木的形式快速完成。今天,我们将深入探讨低代码开发平台的特点…

两阶段目标检测指南:R-CNN、FPN、Mask R-CNN

动动发财的小手,点个赞吧! Source[1] 多阶段(Two-stage)物体检测 计算机视觉中最基本和最广泛研究的挑战之一是目标检测。该任务旨在在给定图像中绘制多个对象边界框,这在包括自动驾驶在内的许多领域非常重要。通常&am…

一种看门狗复位电源的电路

如下是一个看门狗复位电源的电路: 满足掉电能被监测到,掉电后利用法拉电容保持后级模组继续工作一段时间。 看门狗可以关闭电源 320ms 20ms ,对后级模组起到断电复位作用。 同时复位电源拉低的是VCC_4V 而非超级电容所在的VCC_4V_IN,并不会…