Vue/ React/ Angular 前端项目在 Web 服务器上的部署配置

发布时间 2023-03-22 19:10:59作者: 飞仔FeiZai

Web 服务器是一种用于存储,处理和传输 Web 内容的软件。它是一种特殊类型的服务器,具有处理 HTTP 请求并向浏览器返回 Web 页面和其他内容的能力。Web服务器支持多种编程语言,如 PHP,JavaScript,Ruby,Python 等,并且支持动态生成 Web 页面。常见的 Web 服务器包括 Apache,Nginx,Microsoft IIS 等。对于目前流行的前后端分离开发模式项目,前端往往需要使用 Web 服务器进行独立部署。

 

一、Nginx

Nginx 一般是前端项目部署首选的 Web 服务器。

 

使用 Nginx 作为服务器部署 Vue 项目步骤如下:

  1. 安装 Nginx:如果还没有安装 Nginx,请先安装它。

  2. 构建 Vue 项目:使用命令“npm run build”在 Vue 项目中构建生产版本的 Vue 项目。

  3. 复制 dist 文件夹:将生成的 dist 文件夹复制到 Nginx 的 html 文件夹中。

  4. 配置 Nginx:编辑 Nginx 的配置文件(通常为 nginx.conf),添加以下内容以配置对项目的访问:

server {
    listen 80;
    server_name your_domain_name;
    root /path/to/your/dist;

    location / {
        try_files $uri $uri/ /index.html;
    }
    
    # 代理转发接口请求
    location /api {
        proxy_pass http://service_api_ip:service_api_port/service_api/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
  1. 重启 Nginx:使用命令“nginx -s reload”重启 Nginx。

  2. 浏览部署的 Vue 项目:通过浏览器访问 http://your_domain_name/,查看部署的 Vue 项目。

请注意:以上内容假设已经配置好了域名并将其映射到了服务器的 IP 地址。如果尚未配置域名,请相应地使用服务器的 IP 地址替代。

二、IIS

使用 IIS 作为服务器部署 Vue 项目的步骤如下:

  1. 构建 Vue 项目:在 Vue 项目中使用命令“npm run build”构建生产版本的 Vue 项目。

  2. 安装 IIS:如果尚未安装 IIS,请先安装 IIS。

  3. 创建站点:在 IIS 中创建一个新站点,将生成的 dist 文件夹中的文件复制到站点的根目录中。

  4. 配置 Default Document:在 IIS 中的站点配置中,将“index.html”设置为默认文档。

  5. 配置 URL 重写:安装 URL 重写模块(ARR:Application Request Routing),然后在 IIS 中的站点配置中添加以下 URL 重写规则:

<rule name="proxy_forwarding" stopProcessing="true">
    <match url="^(.*?)/?api/(.*)$" />
    <conditions>
        <add input="{HTTP_HOST}" pattern="^current_site_ip:current_site_port$" />
    </conditions>
    <action type="Rewrite" url="http://service_api_ip:service_api_port/service_api/{R:2}" />
</rule>

<!--
    <rule name="Handle History Mode and custom 404/500" stopProcessing="true">
        <match url="^.*" />
        <conditions logicalGrouping="MatchAny">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="/" />
    </rule>
-->
  1. 启动站点:启动站点,通过浏览器访问站点 URL 查看部署的 Vue 项目。

请注意:以上内容假设已经配置好了域名并将其映射到了服务器的 IP 地址。如果尚未配置域名,请相应地使用服务器的 IP 地址替代。

三、Apache (httpd)

使用 Apache 作为服务器部署 Vue 项目的步骤如下:

  1. 构建 Vue 项目:在 Vue 项目中使用命令“npm run build”构建生产版本的 Vue 项目。

  2. 安装 Apache:如果尚未安装 Apache,请先安装 Apache。

  3. 配置 Apache:配置 Apache 以让其可以提供静态文件。可以通过在 Apache 配置文件中添加以下内容来完成此操作:

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
  1. 复制文件:将生成的 dist 文件夹中的文件复制到 Apache 的根目录下的 /var/www/html 目录中。

  2. 配置 URL 重写:安装 mod_rewrite 模块,然后在 Apache 配置文件中添加以下 URL 重写规则:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>
  1. 重启 Apache:使用命令“sudo service apache2 restart”重启 Apache。

  2. 测试:通过浏览器访问服务器的 IP 地址或域名,查看部署的 Vue 项目。

请注意:以上内容假设已经配置好了域名并将其映射到了服务器的 IP 地址。如果尚未配置域名,请相应地使用服务器的 IP 地址替换。另外,配置文件路径和命令可能因操作系统不同而有所不同,请根据实际情况进行调整。

其中 2.4 版本的 反向代理(即代理转发对服务接口的请求)功能配置具体详细配置说明请参考 官方文档

四、Apache Tomcat

经实践,Apache Tomcat 对请求的代理转发功能有限(无法配置对特定 URIs 请求的转发,如:http://domain:port/api/),无法实现对 Vue/ React/ Angular 前端项目的部署。如果要扩展 Apache Tomcat 的代理转发功能,需要 Apache httpd 的 mod_proxy 模块 支持。

使用 Apache Tomcat 作为服务器部署 Vue 项目步骤如下:

  1. 准备工作:确保已经安装了 Apache Tomcat,并且知道其安装路径。

  2. 构建 Vue 项目:在项目根目录中执行 npm run build 命令以构建项目。构建完成后,会在项目根目录中生成一个 "dist" 目录,其中包含了所有的静态文件。

  3. 将 "dist" 目录复制到 Apache Tomcat 的 webapps 目录中:例如,如果 Apache Tomcat 安装在 "C:\Tomcat" 中,则可以将 "dist" 目录复制到 "C:\Tomcat\webapps" 中。

  4. 重命名 "dist" 目录:将 "dist" 目录重命名为想要的名称,例如 "my-app"。

  5. 代理转发配置:修改 Apache Tomcat 的配置文件,打开 "C:\Tomcat\conf\server.xml" 文件,并在其中添加以下内容:
    <Connector port="8080" protocol="HTTP/1.1"
              connectionTimeout="20000"
              redirectPort="8443"
              proxyName="localhost"
              proxyPort="<PROXY_PORT>"
              />

    其中,"<PROXY_PORT>" 是后端 API 服务器所在主机的端口号。

  6. 启动 Apache Tomcat:运行 Apache Tomcat 安装目录中的 "bin/startup.bat" 文件以启动 Apache Tomcat。

  7. 访问 Vue 应用程序:在浏览器中访问 "http://localhost:8080/my-app"(其中 "my-app" 是在第 4 步中命名的名称),应该就可以看到 Vue 应用程序。

注意:以上内容假设使用的是 Tomcat 的默认端口8080。如果使用了其他端口,请相应地更改浏览器访问地址。