首页 > 其他分享 >如何轻松搭建小型网站?基于腾讯云轻量应用服务器网站全解析

如何轻松搭建小型网站?基于腾讯云轻量应用服务器网站全解析

时间:2024-11-19 10:44:38浏览次数:3  
标签:Node 网站 app sudo js install 应用服务器 轻量

如何轻松搭建小型网站?基于腾讯云轻量应用服务器网站全解析

在双十一这个购物狂欢节,腾讯云轻量应用服务器为开发者带来了前所未有的优惠!无论你是刚刚入门的小白,还是经验丰富的开发者,腾讯云轻量应用服务器都能为你提供强大且高效的技术支持。简化的操作界面、灵活的配置选项、超高性价比,让你无需复杂的设置,就能轻松部署网站和应用,迅速搭建属于自己的云端环境。现在正是入手的最佳时机,赶紧抓住双十一的优惠,让你的项目更快上线,享受云计算带来的无限可能!

双十一活动入口

https://cloud.tencent.com/act/pro/double11-2024?fromSource=gwzcw.8891885.8891885.8891885

image-20241110195207194

腾讯云轻量应用服务器(Lighthouse)提供了快速、简便的方式来部署小型网站。本文将带你一步步完成从购买服务器到部署一个简单的动态网站的过程。

image-20241119010346436

image-20241119011104824

1. 环境准备

在开始之前,请确保你已经注册了腾讯云账号,并熟悉基础的Linux命令操作。

1.1 购买腾讯云轻量应用服务器

  1. 登录腾讯云官网
  2. 选择“轻量应用服务器”,根据需要选择地域、镜像(建议选择 CentOS 或 Ubuntu 系统镜像)和规格。
  3. 购买并启动服务器,记下IP地址和SSH端口。

1.2 配置服务器环境

使用SSH连接服务器:

ssh root@<服务器IP地址> -p <SSH端口>  

更新系统:

sudo apt update && sudo apt upgrade -y  # Ubuntu
# 或
sudo yum update -y  # CentOS

安装常用工具:

sudo apt install git curl -y  # Ubuntu  
# 或  
sudo yum install git curl -y  # CentOS  

2. 开发网站并部署

本文以 Node.js 搭建的简单网站为例,讲解如何在服务器上开发和部署。

2.1 安装 Node.js 和 Nginx

安装 Node.js

使用 nvm(Node Version Manager)安装 Node.js:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash  
source ~/.bashrc  
nvm install --lts  
node -v  # 检查Node.js版本  
安装 Nginx
sudo apt install nginx -y  # Ubuntu  
# 或  
sudo yum install nginx -y  # CentOS  

启动 Nginx 并设置为开机启动:

sudo systemctl start nginx  
sudo systemctl enable nginx  

image-20241119010512404

2.2 创建网站代码

在服务器上创建一个简单的 Node.js 网站。

初始化项目
mkdir my-website  
cd my-website  
npm init -y  
安装必要的依赖
npm install express  
创建 app.js

编辑 app.js 文件:

const express = require('express');  
const app = express();  

app.get('/', (req, res) => {  
    res.send('Hello, Tencent Cloud Lighthouse!');  
});  

const PORT = 3000;  
app.listen(PORT, () => {  
    console.log(`Server is running on http://localhost:${PORT}`);  
});  
启动服务

运行以下命令启动网站:

node app.js  

打开浏览器,访问 http://<服务器IP>:3000,即可看到页面显示 Hello, Tencent Cloud Lighthouse!

image-20241119010550119

2.3 配置反向代理

为了让网站通过80端口访问,我们需要配置 Nginx 作为反向代理。

编辑 Nginx 配置文件

打开 /etc/nginx/sites-available/default(Ubuntu)或 /etc/nginx/nginx.conf(CentOS),添加如下配置:

server {  
    listen 80;  
    server_name <服务器IP>;  

    location / {  
        proxy_pass http://127.0.0.1:3000;  
        proxy_http_version 1.1;  
        proxy_set_header Upgrade $http_upgrade;  
        proxy_set_header Connection 'upgrade';  
        proxy_set_header Host $host;  
        proxy_cache_bypass $http_upgrade;  
    }  
}  
测试并重启 Nginx
sudo nginx -t  # 测试配置是否正确  
sudo systemctl restart nginx  # 重启Nginx  

现在访问 http://<服务器IP> 即可直接访问网站。

3. 网站功能扩展

3.1 添加动态页面

app.js 中添加新的路由:

app.get('/about', (req, res) => {  
    res.send('This is the about page!');  
});  

重新启动网站:

node app.js  

访问 http://<服务器IP>/about 查看新页面内容。

3.2 使用 PM2 管理进程

PM2 是一个优秀的 Node.js 进程管理工具,可以让网站在后台运行,并实现自动重启。
安装 PM2:

npm install -g pm2  

使用 PM2 启动网站:

pm2 start app.js  

设置 PM2 开机自启动:

pm2 startup  
pm2 save  

image-20241119010630038

4. 安全性与性能优化

4.1 配置防火墙

使用腾讯云控制台配置安全组,确保仅开放必要端口(如80和443)。

4.2 添加 HTTPS

申请免费的 SSL 证书(如 Let’s Encrypt),并将其应用到 Nginx 配置中:

sudo apt install certbot python3-certbot-nginx -y  
sudo certbot --nginx  

4.3 性能优化

  • 启用 Nginx 缓存功能。
  • 使用 CDN 加速静态资源访问。

5. 数据库集成

网站开发中,动态数据的管理至关重要。接下来,我们将为网站添加一个数据库,以便存储和管理数据。

image-20241119010702010

5.1 安装 MySQL

在服务器上安装 MySQL 数据库:

sudo apt install mysql-server -y  # Ubuntu  
# 或  
sudo yum install mysql-server -y  # CentOS  

启动并设置 MySQL 开机自启:

sudo systemctl start mysql  
sudo systemctl enable mysql  

配置 MySQL 安全性:

sudo mysql_secure_installation  

按照提示设置密码并配置安全选项。

5.2 创建数据库与表

登录 MySQL:

sudo mysql -u root -p  

创建一个名为 my_website 的数据库,并创建一个 users 表:

CREATE DATABASE my_website;  
USE my_website;  

CREATE TABLE users (  
    id INT AUTO_INCREMENT PRIMARY KEY,  
    name VARCHAR(100) NOT NULL,  
    email VARCHAR(100) NOT NULL UNIQUE  
);  

插入测试数据:

INSERT INTO users (name, email) VALUES ('Alice', '[email protected]');  
INSERT INTO users (name, email) VALUES ('Bob', '[email protected]');  

退出 MySQL:

EXIT;  

5.3 集成 MySQL 到网站

在 Node.js 项目中安装 MySQL 模块:

npm install mysql  

编辑 app.js,添加数据库连接:

const mysql = require('mysql');  

const db = mysql.createConnection({  
    host: 'localhost',  
    user: 'root',  
    password: '<你的MySQL密码>',  
    database: 'my_website'  
});  

db.connect((err) => {  
    if (err) {  
        console.error('Database connection failed:', err.stack);  
        return;  
    }  
    console.log('Connected to MySQL database');  
});  

添加一个新路由,查询用户数据并返回:

app.get('/users', (req, res) => {  
    db.query('SELECT * FROM users', (err, results) => {  
        if (err) throw err;  
        res.json(results);  
    });  
});  

重新启动服务器,访问 http://<服务器IP>/users,你会看到返回的用户数据。

6. 文件上传功能

文件上传是动态网站的重要功能。下面我们将为网站添加文件上传的支持。

6.1 安装 Multer

安装文件上传中间件 Multer:

npm install multer  

6.2 配置文件上传

编辑 app.js,添加文件上传功能:

const multer = require('multer');  

const storage = multer.diskStorage({  
    destination: (req, file, cb) => {  
        cb(null, 'uploads/');  
    },  
    filename: (req, file, cb) => {  
        cb(null, `${Date.now()}-${file.originalname}`);  
    }  
});  

const upload = multer({ storage: storage });  

app.post('/upload', upload.single('file'), (req, res) => {  
    res.send(`File uploaded: ${req.file.path}`);  
});  

创建 uploads 目录,并设置权限:

mkdir uploads  
chmod 755 uploads  

测试文件上传功能:

  1. 使用 Postman 或其他工具发送 POST 请求到 http://<服务器IP>/upload
  2. 在请求中上传一个文件。
  3. 检查服务器上的 uploads 目录,确认文件已成功保存。

image-20241119010840828

7. 日志与监控

为了更好地管理网站,添加日志记录和监控功能是必要的。

7.1 使用 Winston 记录日志

安装 Winston 日志库:

npm install winston  

编辑 app.js,配置日志记录:

const winston = require('winston');  

const logger = winston.createLogger({  
    level: 'info',  
    format: winston.format.json(),  
    transports: [  
        new winston.transports.File({ filename: 'error.log', level: 'error' }),  
        new winston.transports.File({ filename: 'combined.log' })  
    ]  
});  

app.use((req, res, next) => {  
    logger.info(`${req.method} ${req.url}`);  
    next();  
});  

7.2 集成监控工具

可以使用 PM2 的监控功能:

pm2 monit  

此外,可以结合第三方服务(如 Grafana 或 Prometheus)进行更深入的监控和分析。

8. 自动化部署

为了方便后续更新代码,可以通过 Git 和 Webhook 实现自动化部署。

8.1 配置 Git

在服务器上安装 Git(如果尚未安装):

sudo apt install git -y  # Ubuntu  
# 或  
sudo yum install git -y  # CentOS  

克隆项目到服务器:

git clone <你的代码仓库链接>  

image-20241119010902922

8.2 配置 Webhook 自动部署

在服务器上安装 Webhook 工具(如 webhookd),并配置触发脚本来自动拉取更新和重启服务。

image-20241119010926084

9. 扩展方向

9.1 添加前端框架

可以使用 React、Vue.js 或 Angular 构建更复杂的前端界面,并通过 API 与后端通信。

9.2 部署生产环境

将 Nginx 配置为静态文件托管服务器,并开启 gzip 压缩和缓存。结合 Docker 容器化部署,提高服务的可靠性和可扩展性。

9.3 高可用架构

  • 使用负载均衡器分发流量。
  • 数据库读写分离。
  • 添加 Redis 缓存以加速请求响应。

总结

通过本文,我们全面演示了如何使用腾讯云轻量应用服务器从零开始搭建一个小型网站的完整流程。以下是关键步骤的总结:

  1. 服务器环境配置:包括购买腾讯云轻量应用服务器、安装 Node.js 和配置基本开发环境。
  2. 项目初始化:创建一个基础的 Node.js 应用,并通过 Express 框架快速构建 Web 服务器。
  3. 静态与动态页面开发:通过 Express 提供静态资源服务,并设计动态路由实现交互功能。
  4. 数据库集成:使用 MySQL 数据库管理用户数据,结合 Node.js 实现后端的数据查询与返回功能。
  5. 文件上传功能:通过 Multer 模块实现文件上传的支持。
  6. 日志与监控:使用 Winston 记录日志,结合 PM2 等工具对服务器进行监控和性能优化。
  7. 自动化部署:通过 Git 和 Webhook 实现高效的代码更新和部署。

亮点与技术深度

本文不仅展示了基础开发流程,还扩展到日志记录、文件上传、数据库集成等高级功能。你可以基于这些技术模块,进一步开发和扩展网站,如加入前端框架、实现负载均衡、高可用架构等。

下一步行动

如果你已经完成了本文的操作,那么恭喜你成功搭建了一个功能齐全的小型网站!接下来,你可以:

  • 将网站发布为生产环境应用,优化性能和安全性。
  • 扩展业务逻辑,如添加用户注册、登录认证等功能。
  • 深入学习前端框架和后端开发,提升全栈开发能力。

使用腾讯云轻量应用服务器,让开发者能够快速入门并掌握网站开发的全流程。期待你的项目能够更上一层楼!

标签:Node,网站,app,sudo,js,install,应用服务器,轻量
From: https://blog.csdn.net/weixin_52908342/article/details/143870377

相关文章

  • SpringBoot心理树洞在线公益网站hu239 本系统(程序+源码+数据库+调试部署+开发环境)带论
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:学生,心理老师,咨询预约开题报告内容一、研究背景与意义随着现代生活节奏的加快,越来越多的人面临着心理压力和困扰。然而,由于种种原因,很多人并不愿意......
  • python-爬取网站天气数据-1
    一、选择一个网站,观察需要的内容位置这次练手对象是一个2345网站天气数据,如下:南京历史天气查询_历史天气预报查询_2345天气预报这里面我想要获得的天气数据如上图,我需要将这些数据爬取下来并保存为本地文件。二、查看代码,观察内容信息在代码中所处的位置右键,选择查看源代......
  • 基于Springboot社区闲置物品交换置换系统网站设计与实现(作品+论文+开题报告)
      博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育、辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩,提供核心代码讲解,答辩指导。项目配有对应开......
  • 安装宝塔解析后网站打不开linux
    当你在Linux上安装了宝塔面板并配置了解析,但网站仍然无法访问时,可以按照以下步骤进行排查和解决:检查域名解析是否生效确认域名已经正确解析到服务器的IP地址。可以通过 ping 命令或在线的DNS查询工具来验证。检查防火墙设置确保服务器的防火墙允许HTTP(80端口)和H......
  • 解决 PbootCMS 升级后网站打不开的问题
    PbootCMS升级后网站无法打开,并且出现了解析错误 Parseerror:syntaxerror,unexpected‘:’,expecting‘{’in/www/wwwroot/****/core/function/helper.phponline745。这个问题通常是由于PHP版本不兼容导致的。PbootCMS3.2版本要求PHP7.0及以上版本。 如果......
  • 推荐20个适合做个人网站或博客网站的WordPress主题
    个人网站&博客网站简介本篇主要介绍20个适合做个人网站或者博客网站的WordPress主题。个人网站和博客网站通常具有简洁的设计,专注于展示个人或内容,通过文章、图片、视频等形式分享思想、经验或专业知识。在制作个人网站和博客网站时,最需要关注:网站设计与用户体验、文章内容的......
  • 摸鱼网站模版,热点新闻网站模版
    介绍完全的一个前端项目,界面风格简单大气,只使用了HTML,CSS.JS技术。通过这个模版,可以做一个摸鱼网站,热点新闻聚合网站(从各大平台获取热点新闻再次聚合展示)等。展示![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/19ffded66a68438793dd6ea668e3f793.png代......
  • 免费下载无损歌曲网站
    免费下载无损歌曲网站1、MyFreeMP3网址:http://tool.liumingye.cn/music/?page=searchPage一个可以免费下载无损音乐的网站,涵盖了海量的MP3歌曲,页面干净无广告,支持离线使用。打开页面可以看到当下流行的音乐单曲,还支持强大的音乐搜索功能,下载方式简单,每首歌曲都提供了下载按......
  • 计算机毕设项目源代码 - jsp+ssm跑腿网站
    一、项目介绍《跑腿网站》该系统基于B/S架构,即所谓浏览器/服务器模式,应用jsp+SSM框架技术,选择MySQL作为后台数据库,项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、核心代码介绍视频等。开发语言:Java 框架:ssm 技术:JSP  数据库:mysql5.7 数据库......
  • flask框架短视频网站(毕设源码+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于短视频网站的研究,现有研究主要集中在短视频的传播效应、商业价值等方面1。专门针对短视频网站系统功能(如用户管理、视频类型规划......