记录自己第一次将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.exe 和 conf, 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 ,就可以访问到项目了

相关推荐
子兮曰5 小时前
把 649 种文件格式塞进一个网页里:一个「文件不出浏览器」的预览器
前端·javascript·后端
EasyGBS8 小时前
摄像头还在线,画面已经不能用了?国标GB28181视频平台EasyGBS视频质量诊断怎么用
服务器·安全·音视频
程序员-Benothing8 小时前
Vim编辑器从入门到精通:模式、快捷键、配置、插件
linux·运维·服务器
sm_926787058 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器
IMPYLH8 小时前
HTML 的 <video> 元素
前端·html
wdfk_prog8 小时前
LWIP教程 09:从 `tcp_slowtmr()` 到 Fast Retransmit——TCP 超时重传与重复 ACK
服务器·网络·数据库·网络协议·tcp/ip
‎ദ്ദിᵔ.˛.ᵔ₎8 小时前
linux 进程信号 (上)
linux·服务器
迪康Defender9 小时前
终端安全审批体系设计:如何平衡安全管控与业务连续性
运维·服务器·安全·运维开发·学习方法·业界资讯·远程工作