记录自己第一次将React 编写的前端部署到服务器,实现外网访问

0. 本地项目添加配置

  1. 在本地 VS Code 打开项目。

  2. 打开根目录下的 vite.config.js 文件。

  3. plugins 同级的位置,添加一行 base 配置:

    复制代码
    import { defineConfig } from 'vite'
    import react from '@vitejs/plugin-react'
    
    // https://vitejs.dev/config/
    export default defineConfig({
      plugins: [react()],
      base: '/delayed-coking-demo/', // <--- 加上这一行,注意前后都有斜杠
    })

1. 在你的开发电脑(本地)VS Code 终端运行,确保根目录下生成了dist 文件夹。

复制代码
npm run build

2. 在服务器上安装 Nginx

远程桌面的那个 Windows 里操作(就像操作你自己的电脑一样):

  1. 下载 Nginx
    • 打开服务器里的 Edge 浏览器(或者你在本地下载好,复制粘贴进去)。
    • 访问:http://nginx.org/en/download.html
    • 下载 Stable version 下面的 nginx/Windows-1.xx.x (zip格式)。
  2. 解压
    • 将下载的压缩包解压到 C 盘根目录,例如:C:\nginx
    • 打开这个文件夹,你会看到 nginx.execonf, html 等文件夹。

3 . 上传你的项目代码

  1. 回到远程桌面(服务器)
  2. 进入 C:\nginx-1.28.1\html 文件夹。
  3. 新建一个文件夹 ,命名为 delayed-coking-demo
  4. 把你刚刚重新打包 生成的本地 dist 文件夹里面的所有内容(index.html, assets 等),复制粘贴到服务器的这个新文件夹里。

4. 修改 Nginx 配置 (解决路由刷新 404)

复制代码
worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    # --- 这里开始是 Server 配置 ---
    server {
        listen       80;
        server_name  localhost;

        # 1. 默认根目录 (访问 http://ip 时显示的内容)
        # 只要 html 文件夹里有 index.html,这里就会显示
        location / {
            root   html;
            index  index.html index.htm;
        }

        # 2. 你的新项目 (访问 http://ip/delayed-coking-demo 时显示)
        # 请确保你已经在 html 文件夹里新建了 delayed-coking-demo 文件夹
        # 并把 build 好的代码放进去了
        location /delayed-coking-demo {
            root   html;
            index  index.html;
            
            # 这里的路径必须和你的 base 保持一致
            try_files $uri $uri/ /delayed-coking-demo/index.html;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    # --- Server 配置结束 ---
}

5 . 启动 Nginx

  1. 在服务器文件夹里,双击 nginx.exe
    • 注意:双击后屏幕会闪一下黑框然后消失,这是正常的!它已经在后台运行了。
    • 如果有防火墙弹窗,请点击"允许访问"
  2. 验证是否运行:打开服务器里的 Edge 浏览器,访问 http://localhost。如果能看到你的延迟焦化系统,说明服务器内部部署成功了

6 . 最关键的一步 ------ 阿里云安全组配置

这是新手最容易卡住的地方。即使服务器里配置好了,阿里云的外部防火墙如果不放行,外网还是进不去。

  1. 回到你的阿里云网页控制台(就是你截图的那个页面)。
  2. 点击页面中间的选项卡 "网络与安全组"
  3. 找到 "安全组配置""配置规则" 链接点击进入。
  4. 点击右上角的 "添加安全组规则" (或手动添加):
    • 端口范围 :输入 80/80 (或者是 HTTP 80)。
    • 授权对象 (源 IP):输入 0.0.0.0/0 (表示允许全世界访问)。
    • 协议类型:TCP。
    • 策略:允许。
  5. 保存规则。

7. 外网, 输入 http://公网ip/delayed-coking-demo ,就可以访问到项目了

相关推荐
Trouvaille ~3 分钟前
【Linux】网络编程基础(二):数据封装与网络传输流程
linux·运维·服务器·网络·c++·tcp/ip·通信
用户新7 分钟前
V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
前端·javascript
Next_Tech_AI11 分钟前
别用 JS 惯坏了鸿蒙
开发语言·前端·javascript·个人开发·ai编程·harmonyos
-凌凌漆-36 分钟前
【vue】选项式api与组合式api
前端·javascript·vue.js
万邦科技Lafite1 小时前
一键获取京东商品评论信息,item_reviewAPI接口指南
java·服务器·数据库·开放api·淘宝开放平台·京东开放平台
0思必得02 小时前
[Web自动化] Selenium处理文件上传和下载
前端·爬虫·python·selenium·自动化·web自动化
摘星编程2 小时前
React Native鸿蒙:Calendar日程标记显示
react native·react.js·harmonyos
Trouvaille ~2 小时前
【Linux】网络编程基础(三):Socket编程预备知识
linux·运维·服务器·网络·c++·socket·网络字节序
德迅云安全—珍珍2 小时前
低配服务器性能不够用怎么去优化?
运维·服务器
笑锝没心没肺2 小时前
Linux Audit 系统配置介绍
linux·运维·服务器