前端项目部署方法

ngnix服务器部署

下载nignx,我下的是windows版本的 下载链接:[https://nginx.org/en/download.html](https://nginx.org/en/download.html)

解压文件

如果原本的80端口号被占用了,可以改为其他的端口号

可以点击nginx.exe文件启动nginx,它可能会弹出一个提示是否允许,然后会闪一下

也可以使用如下命令(但是要cd到nignx目录下)

start nginx

其他nginx命令

查找所有nginx进程

tasklist /fi "imagename eq nginx.exe"

关闭所有nginx进程

 taskkill /f /im nginx.exe

修改nginx配置文件后重启nginx进程

nginx.exe -s reload

windows ngnix常用命令

然后再浏览器输入localhost+端口号,出现下面这张图表示nginx启动成功

项目部署的时候会出现两个问题

第一个问题:刷新页面404

解决:

  • 使用hash路由
  • 使用historyl路由时,需要后端做配置,如果没有做配置无法匹配后端路由时,返回Index.html

第二个问题:

无法发起ajax请求,会出现跨域问题

打包项目代码,然后把nginx.conf文件里面的地址换成dist文件的地址

然后重启nginx,再刷新页面就可以看到项目的页面

再次刷新页面就会出现404 Not Found的问题,追加nginx配置来解决,

追加 try_files $uri $uri/ /index.html;表示当无法匹配资源时,返回index.html

然后关闭nginx,重启nginx,重新刷新页面即可,不会在出现404的问题

 location / {
            root   D:\文档1\前端\dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html; # 解决刷新404
        }

还有一个问题就是无法发送请求,会出现跨域问题

需要再添加一个配置,来解决跨域问题

# 配置代理
location /prod-api {
  # 设置代理目标 
  proxy_pass https://heimahr.itheima.net;#这里是
}

这个 Nginx 配置片段主要用于 反向代理,将客户端请求转发到指定的目标服务器。下面是逐项解释:

  1. **location /prod-api**
  • location 是 Nginx 中用于匹配请求 URI 的指令。
  • /prod-api 是请求路径的匹配模式。具体来说,它会匹配所有以 /prod-api 开头的请求路径。举个例子,如果用户访问 http://yourdomain.com/prod-api/some-endpoint,这个 location 配置就会被触发。
  • 在这里,Nginx 会根据配置将匹配 /prod-api 的请求代理到指定的服务器。
  1. **proxy_pass https://heimahr.itheima.net;**
  • proxy_pass 是 Nginx 中用于配置反向代理的指令。
  • 这里,proxy_pass https://heimahr.itheima.net; 表示将匹配 /prod-api 路径的请求转发到 https://heimahr.itheima.net
  • 当请求被转发时,原始请求的路径部分(即 /prod-api/some-endpoint)将附加到目标 URL 后面,转发请求到目标服务器。例如,http://yourdomain.com/prod-api/some-endpoint 会被转发为 https://heimahr.itheima.net/prod-api/some-endpoint

3. 代理的工作原理

  • 反向代理:Nginx 会作为一个中间层,接收客户端(如浏览器)发送的请求,然后将这些请求转发给目标服务器(这里是 https://heimahr.itheima.net)。目标服务器处理请求并将响应返回给 Nginx,Nginx 再将响应发送给客户端。
  • 目的:反向代理常用于负载均衡、API 网关、保护后端服务器等场景。

发起了请求

云服务器部署

我们可以在云服务器上借助`nginx`完成部署,大致流程与本地`nginx`部署一致
  1. 关于购买云服务器,可选择:阿里云、腾讯云等。
  2. 关于操作系统,看个人习惯,Ubuntu、CentOs、RedHat、都不错。
  3. linux 远程操作软件:FinallShell(更方便)或者用Xshell、Xftp结合使用
  4. 具体配置如下:
  • 给服务器安装nginx
yum install nginx
  • 将打包后的前端资源放在:/html文件夹创建的新文件夹中或者其他的文件夹中。
  • 使用FinallShell配置服务器的 nginx,修改文件:/etc/nginx/nginx.config
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
          root  /usr/local/nginx/html;#你存放资源的位置路径
          index  index.html index.htm;
          try_files $uri $uri/ /index.html; # 解决刷新404
        }
        # 配置代理
        location /dev/ {
          # 设置代理目标
          proxy_pass http(s)://xxxxxxxxxx/;#请求资源的服务器地址
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Reactor 响应式编程(第二篇:Spring Webflux)

系列文章目录 Reactor 响应式编程(第一篇:Reactor核心) Reactor 响应式编程(第二篇:Spring Webflux) Reactor 响应式编程(第三篇:R2DBC) Reactor 响应式编程&#xff08…

实验12 socket网络编程

设计程序 1.阅读TCP、UDP数据通信的例子8-2、8-7,理解并运行查看其功能。 2. 编写程序,使用socket网络接口函数,实现同一网段的两台主机的聊天。注:使用多线程,实现实时聊天功能。(使用UDP或TCP…

leetcode二叉搜索树部分笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 二叉搜索树 1. 二叉搜索树的最小绝对差2. 二叉搜索树中第 K 小的元素3. 验证二叉搜索树 1. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root ,返回 树中…

论文学习—VAE

VAE----Auto-Encoding Variational Bayes 2024年12月17日-2024年12月18日摘要引言方法例子:变分自动编码器 2024年12月17日-2024年12月18日 从今天开始,我准备记录自己学习的内容以此来检验我每天的学习量,菜鸡一枚,希望能够与大…

Go语言后台实现选中式导出excel文件

实现选中导出为excel文件的基本实现方案是前端将选中的数据传递给后端,后台接受这些数据生成excel文件的流,将流返回给前端并在响应体设置文件的格式。 这时只要将需要下载的数据提交到改接口就会返回文件流数据,提供下载。具体实现代码如下&…

大模型微调---Prompt-tuning微调

目录 一、前言二、Prompt-tuning实战2.1、下载模型到本地2.2、加载模型与数据集2.3、处理数据2.4、Prompt-tuning微调2.5、训练参数配置2.6、开始训练 三、模型评估四、完整训练代码 一、前言 Prompt-tuning通过修改输入文本的提示(Prompt)来引导模型生…

spring学习(spring-bean实例化(实现FactoryBean规范)(延迟实例化bean))

目录 一、spring容器实例化bean的几种方式。 (1)无参构造与有参构造方法。 (2)静态工厂与实例工厂。 (3)实现FactoryBean规范。 二、spring容器使用实现FactoryBean规范方式实现bean实例化。 (1…

【Java】mac安装Java17(JDK17)

文章目录 下载java17一、安装二、环境变量 下载java17 官网下载:https://www.oracle.com/java/technologies/downloads 提示:以下是本篇文章正文内容,下面案例可供参考 一、安装 直接安装后,安装完后目录会存放在下面目录下 /…

mysql免安装版配置教程

一、将压缩包解压至你想要放置的文件夹中,注意:绝对路径中要避免出现中文 二、在解压目录下新建my.ini文件,已经有的就直接覆盖 my.ini文件内容 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirD:\\tools\\mysql-8.1.0-win…

web:pc端企业微信登录-vue版

官方文档:developer.work.weixin.qq.com/document/pa… 不需要调用ww.register,直接调用ww.createWWLoginPanel即可创建企业微信登录面板 - 文档 - 企业微信开发者中心 (qq.com) 引入 //通过 npm 引入 npm install wecom/jssdk import * as ww from we…

基于Spring Boot的无可购物网站系统

一、系统背景与意义 随着互联网的快速发展,电子商务已经成为人们日常生活的重要组成部分。构建一个稳定、高效、可扩展的电商平台后端系统,对于满足用户需求、提升用户体验、推动业务发展具有重要意义。Spring Boot作为当前流行的Java开发框架&#xff…

YOLOv11改进,YOLOv11添加DLKA-Attention可变形大核注意力,WACV2024 ,二次创新C3k2结构

摘要 作者引入了一种称为可变形大核注意力 (D-LKA Attention) 的新方法来增强医学图像分割。这种方法使用大型卷积内核有效地捕获体积上下文,避免了过多的计算需求。D-LKA Attention 还受益于可变形卷积,以适应不同的数据模式。 理论介绍 大核卷积(Large Kernel Convolu…

fpga系列 HDL:Quartus II PLL (Phase-Locked Loop) IP核 (Quartus II 18.0)

在 Quartus II 中使用 PLL (Phase-Locked Loop) 模块来将输入时钟分频或倍频,并生成多个相位偏移或频率不同的时钟信号: 1. 生成 PLL 模块 在 Quartus II 中: 打开 IP Components。 file:///C:/intelFPGA_lite/18.0/quartus/common/help/w…

JAVA:代理模式(Proxy Pattern)的技术指南

1、简述 代理模式(Proxy Pattern)是一种结构型设计模式,用于为其他对象提供一种代理,以控制对这个对象的访问。通过代理模式,我们可以在不修改目标对象代码的情况下扩展功能,满足特定的需求。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 2、什…

3D Gaussian Splatting for Real-Time Radiance Field Rendering-简洁版

1. 研究背景与问题 传统的3D场景表示方法,如网格和点云,适合GPU加速的光栅化操作,但缺乏灵活性。而基于神经辐射场(NeRF)的表示方式,尽管质量高,但需要高成本的训练和渲染时间。此外&#xff0…

Unity性能优化---使用SpriteAtlas创建图集进行批次优化

在日常游戏开发中,UI是不可缺少的模块,而在UI中又使用着大量的图片,特别是2D游戏还有很多精灵图片存在,如果不加以处理,会导致很高的Batches,影响性能。 比如如下的例子: Batches是9&#xff0…

计算机网络知识点全梳理(三.TCP知识点总结)

目录 TCP基本概念 为什么需要TCP 什么是TCP 什么是TCP链接 如何唯一确定一个 TCP 连接 TCP三次握手 握手流程 为什么是三次握手,而不是两次、四次 为什么客户端和服务端的初始序列号 ISN 不同 既然 IP 层会分片,为什么 TCP 层还需要 MSS TCP四…

找出1000以内的所有回文数

找出1000以内的所有回文数 方法概述检查回文数的方法伪代码C代码实现代码解析运行结果在计算机科学中,回文数是一种具有对称性质的数,即从左向右读和从右向左读都是相同的。例如,121、1331、12321都是回文数。本文将利用数据结构、C语言和算法的知识来编写一个程序,找出100…

Go-FastDFS文件服务器一镜到底使用Docker安装

本文章介绍一镜到底安装go-fastdfs并配置数据文件到linux 由于国内镜像无法安装go-fastdfs:国内环境已经把docker官方的网站给封闭了 我们需要从国外的一台服务器,下载images镜像,然后进行转发加载到国内服务器 当然我也给你们准备了docke…

ArcGIS计算土地转移矩阵

在计算土地转移矩阵时,最常使用的方法就是在ArcGIS中将土地利用栅格数据转为矢量,然后采用叠加分析计算,但这种方法计算效率低。还有一种方法是采用ArcGIS中的栅格计算器,将一个年份的地类编号乘以个100或是1000再加上另一个年份的…