基于ubuntu 22.04搭建nodejs 真正服务器

一、导航不迷路

导航不迷路:
1、搭建nodejs http服务器
2、搭建nodejs https服务器
3、搭建nodejs 真正服务器(本文)

二、前言

前面介绍的http和https服务器都是直接返回了一段字符串,我们真正服务器都是你输入网页要展现一些富媒体的文本给你看的,其实就是服务器发布了一些文件,你本地浏览器下载这些文件,使用本地的引擎解析展示出来。
看到没,你上个网其实就是把别人电脑的文件传给你看,而已!

三、步骤

  • 引入express模块:
    express模块是node.js的一个Web应用框架,功能非常强大,主要用来处理一些web请求的(路由、渲染等)
  • 引入serve-index模块:
    将文件夹中文件列表显示到浏览器中
  • 指定发布哪个目录

四、开始操作:

安装express和serve-index

sudo npm install express serve-index

编写发布内容:

新建要发布的目录和文件:

mkdir public
cd public
vim hello.txt

编写js代码:

'use strict'

var http = require('http');
var https = require('https');
var fs = require('fs');

var express = require('express');
var serveIndex = require('serve-index');
var app = express();
app.use(serveIndex('./public'));
app.use(express.static('./public'));

// http server
var http_server = http.createServer(app);
http_server.listen(80, '0.0.0.0');

var options = {
  key: fs.readFileSync('./cert/server.key'),
  cert: fs.readFileSync('./cert/server.cert')
}
// https server
var https_server = https.createServer(options, app);
https_server.listen(443, '0.0.0.0');

目录结构如下:

在这里插入图片描述

运行:

sudo node app.js

查看侦听端口:

在这里插入图片描述

浏览器访问

看看js脚本,http和https都可以访问
在这里插入图片描述

在这里插入图片描述

总结:

框架搭起来了,安装npm得切换源,node和npm版本得匹配。

欢迎关注公众号:
在这里插入图片描述

<think>首先,用户的问题是关于如何搭建一个服务器来支持上传和保存WebGL项目。用户意图是搭建服务器,用于上传和保存WebGL内容,特别是Unity WebGL项目。 从系统级指令中,我需要: - 所有行内数学表达式用$...$格式。 - 独立公式用$$...$$格式并单独成段。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,如[^1]。 - 回答结构清晰,帮助用户逐步解决问题。 - 保证回答真实可靠。 参考提供的引用: - [^1]: 关于将Unity WebGL项目上传到云服务器的步骤。 - [^2]: 关于上传文件到云服务器的方法,如使用数据传输工具或远程桌面。 - [^3]: 关于Vue3和Three.js项目,但似乎不直接相关。 - [^4]: 关于Unity WebGL从本地硬盘上传文件到沙盒中。 用户的上一次问题是关于搭建服务器以支持上传和保存WebGL项目,所以我需要基于这个意图来回答。 关键点: - 搭建服务器:这可能涉及设置一个云服务器或本地服务器。 - 支持上传:需要配置服务器来接收文件上传。 - 保存WebGL项目:WebGL项目通常是静态文件,如HTML、JS、CSS等。 步骤: 1. **选择服务器类型**:推荐使用云服务器,如AWS、Azure、腾讯云等,因为它们易于设置和扩展。 2. **设置服务器环境**:安装必要的软件,如Web服务器(如Nginx或Apache)。 3. **配置文件上传**:设置一个上传端点,可能使用后端技术如Node.js、Python Flask等。 4. **部署WebGL项目**:将上传的文件保存到服务器,并配置Web服务器来服务这些文件。 从引用[^1]和[^2],它们提到了上传到云服务器和使用工具如QQ.exe或远程桌面。但QQ.exe可能不是最佳实践;更专业的方法是使用FTP、SCP或云存储服务。 引用[^4]讨论了Unity WebGL从本地上传文件,但这是针对客户端上传到浏览器沙盒,而不是服务器端上传。我需要区分:用户想上传WebGL项目到服务器,而不是在WebGL应用中上传文件。 所以,核心是服务器搭建和文件上传机制。 回答结构: - 清晰、逐步的指南。 - 使用中文。 - 在相关部分添加引用标识。 - 生成相关问题。 大纲回答: 1. **介绍**:简要解释搭建服务器的目的。 2. **步骤**: a. 选择云服务提供商。 b. 创建和配置云服务器实例。 c. 安装Web服务器软件。 d. 设置文件上传机制。 e. 部署WebGL项目。 3. **详细说明每个步骤**。 4. **添加引用**:自然地引用相关部分。 5. **生成相关问题**:在末尾添加。 生成相关问题: - 基于主题,如优化、安全、其他应用等。 - 例如: 1. 如何优化WebGL项目的加载速度? 2. 如何确保文件上传的安全性? 3. 还有其他方法部署WebGL项目吗? 确保LaTeX正确:由于主题是服务器搭建,可能没有太多数学表达式,但如果有,需正确格式化。例如,如果提到算法或公式。 最终回答用中文。</think>### 如何搭建服务器以支持上传和保存WebGL项目 搭建服务器来支持上传和保存WebGL项目(如Unity WebGL应用)是一个常见的需求,涉及设置云服务器、配置Web服务、并实现文件上传功能。WebGL项目本质上是静态文件(HTML、JS、CSS等),因此服务器需要提供文件存储和访问服务。以下是一个逐步指南,基于可靠实践(如使用主流云服务),确保过程清晰易行。整个过程假设您已有基本的命令行操作经验。 #### 步骤1: 选择云服务提供商并创建服务器实例 首先,选择一个云服务提供商(如阿里云、腾讯云或AWS),它们提供易于管理的云服务器(ECS)。这些平台支持一键部署,并自带安全组(防火墙)设置。 - **操作指南**: - 登录云服务控制台(例如腾讯云),进入“云服务器”页面。 - 点击“新建实例”,选择操作系统(推荐Ubuntu 22.04 LTS或Windows Server,根据您熟悉程度)。 - 配置实例规格:WebGL项目文件较小(通常几十MB),选择基础配置(如1核2GB内存)即可。 - 设置安全组:开放必要端口,如HTTP(80)、HTTPS(443)、SSH(22)或FTP(21),以允许外部访问和文件上传[^1]。 - **注意事项**:免费试用套餐通常足够测试;确保绑定公网IP地址,以便从外部访问。 #### 步骤2: 安装并配置Web服务器软件 Web服务器负责托管WebGL文件,让用户通过浏览器访问。推荐使用Nginx(轻量高效)或Apache。 - **操作指南**: - **连接服务器**:使用SSH(Linux)或远程桌面(Windows)登录服务器。例如,在终端输入 `ssh root@your-server-ip`。 - **安装Nginx**: ```bash # 更新系统包 sudo apt update # 安装Nginx sudo apt install nginx -y # 启动Nginx服务 sudo systemctl start nginx # 设置开机自启 sudo systemctl enable nginx ``` - **配置Nginx**:编辑配置文件 `/etc/nginx/sites-available/default`,将根目录指向WebGL项目存储路径(如 `/var/www/html/webgl`)。示例配置: ```nginx server { listen 80; server_name your-domain.com; # 替换为您的域名或IP root /var/www/html/webgl; index index.html; location / { try_files $uri $uri/ =404; } } ``` 保存后运行 `sudo nginx -t` 测试配置,再 `sudo systemctl reload nginx` 重启服务[^1]。 - **注意事项**:如果使用HTTPS,申请免费SSL证书(如Let's Encrypt)以加密流量。 #### 步骤3: 设置文件上传机制 实现文件上传功能,允许您从本地计算机上传WebGL项目到服务器。推荐使用FTP/SFTP或后端API,避免不安全的工具如QQ.exe[^2]。 - **方法1: 使用SFTP(安全文件传输协议)**: - **安装SFTP服务**:在服务器上安装OpenSSH(通常预装)。确保安全组开放端口22。 - **上传文件**:在本地计算机使用SFTP客户端(如FileZilla): - 输入服务器IP、用户名和密码。 - 将本地WebGL文件夹(包含index.html等文件)拖拽到服务器目录(如 `/var/www/html/webgl`)。 - **优点**:支持断点续传,适合大文件[^2]。 - **方法2: 使用后端API(更灵活)**: - **安装后端框架**:例如,用Node.js和Express搭建简单上传接口。 ```bash # 安装Node.js sudo apt install nodejs npm -y # 创建项目目录 mkdir ~/upload-server && cd ~/upload-server npm init -y npm install express multer # multer处理文件上传 ``` - **创建上传脚本**:新建 `app.js` 文件: ```javascript const express = require('express'); const multer = require('multer'); const app = express(); const port = 3000; // 设置存储路径(WebGL项目目录) const storage = multer.diskStorage({ destination: (req, file, cb) => cb(null, '/var/www/html/webgl'), filename: (req, file, cb) => cb(null, file.originalname) }); const upload = multer({ storage }); // 定义上传端点 app.post('/upload', upload.single('webglFile'), (req, res) => { res.send('文件上传成功!'); }); app.listen(port, () => console.log(`服务器运行在 http://your-server-ip:${port}`)); ``` - **运行并测试**:启动服务 `node app.js`,使用Postman或curl测试上传: ```bash curl -X POST -F "webglFile=@/path/to/local/file.zip" http://your-server-ip:3000/upload ``` - **集成到前端**:如果需要网页上传界面,可结合HTML表单[^4]。 #### 步骤4: 部署和测试WebGL项目 上传文件后,配置服务器以服务WebGL内容,并验证访问。 - **操作指南**: - 将WebGL项目文件(Unity导出的Build文件夹)上传到指定目录(如 `/var/www/html/webgl`)。 - 设置目录权限:运行 `sudo chmod -R 755 /var/www/html/webgl` 确保Nginx可读取。 - 测试访问:在浏览器输入服务器IP或域名,应显示WebGL应用。例如,`http://your-server-ip`。 - **故障排除**:如果遇到跨域问题(CORS),在Nginx配置中添加 `add_header 'Access-Control-Allow-Origin' '*';`[^1]。 #### 最佳实践和注意事项 - **安全性**:使用SFTP代替FTP,避免明文传输;定期更新服务器补丁;设置防火墙规则限制访问IP。 - **成本优化**:云服务器按需计费,测试阶段选择按量付费;静态文件可搭配CDN加速加载。 - **备份**:启用云服务自动快照功能,防止数据丢失。 - **性能**:对于高流量,升级服务器规格或使用负载均衡[^1]。 通过以上步骤,您可快速搭建一个支持上传和保存WebGL项目的服务器。整个过程基于实际部署经验,确保可靠性和易用性。如果您遇到具体问题(如Unity导出设置),可参考Unity官方文档或社区资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值