美文网首页
Dva+antd项目部署至Nginx服务器

Dva+antd项目部署至Nginx服务器

作者: mah93 | 来源:发表于2019-10-09 16:26 被阅读0次

    前言

    dva是在现有的应用架构进行了轻量级封装,相比于redux更易上手。如需了解更多请参考这里
    项目中运用的技术架构是react+dva+antd,完成之后需要将应用部署到服务器上,需要一台服务器,仅以Nginx为例,记录整个的部署流程。

    部署前准备

    在完成你的dva项目之后,从coding或者你的git服务器上克隆项目到本地

    $ git clone 你的dva项目
    $ cd project
    $ npm install
    

    成功下载完所有配置文件之后执行,再次确认你的项目可以正确访问

    $ npm start
    

    即可自动打开浏览器的8000端口,成功运行该项目,如果没有自动弹出则访问localhost:8000/

    部署配置

    在项目中的.roadhogrc文件中删除以下配置

    "proxy": {
      "/api": {
      "target": 你的后台服务地址,
      "changeOrigin": true,
      "pathRewrite": { "^/api" : "" }
      }
    }
    

    之后进入命令行,执行编译操作

    $ npm run build
    

    执行完之后会在主目录下生成dist文件夹,里面包含index.html、index.js、index.css以及资源文件夹static。
    打包完成后,把dist文件夹上传至服务器上即可访问,这里用的是nginx服务器。

    nginx简介

    Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。

    本项目采用 Nginx 作为 Web 服务器。

    安装nginx

    由于服务器是ubuntu系统,这里仅展示在ubuntu系统下安装过程,其他操作系统可自行查找

    登录服务器之后执行,下载nginx安装包

    $ sudo wget http://nginx.org/download/nginx-1.2.2.tar.gz
    

    然后解压

    $ sudo  tar -xzvf nginx-1.2.2.tar.gz
    

    进入解压之后的文件夹

    $ cd nginx-1.2.2
    $ ./configure
    

    如果一切顺利的话,执行

    $ make
    $ make install
    

    完成安装,可以在/usr/local文件下找到nginx文件夹

    然后访问服务器即可看到

    welcome nginx

    nginx安装常见问题

    • 缺少pcre

      执行./configure之后,出现

      ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option.
      

      即提示缺少pcre library

      $ sudo apt-get undate
      $ sudo apt-get install libpcre3 libpcre3-dev
      
    • 缺少gcc-c++和libtool

      执行./configure之后,出现

      libtool: compile: unrecognized option `-DHAVE_CONFIG_H'
      libtool: compile: Try `libtool --help' for more information.
      make[1]: *** [pcrecpp.lo] Error 1
      make[1]: Leaving directory `/usr/local/src//pcre-8.31'
      make: *** [all] Error 2root@wolfdog-virtual-machine:~/work/pcre-8.12$ libtool -help -DHAVE_CONFIG_H
      The program 'libtool' is currently not installed.  You can install it by typing:
      sudo apt-get install libtool
      

      即提示缺少libtool和gcc-c++

      $ sudo apt-get install libtool
      $ sudo apt-get install gcc-c++
      
    • 缺少zlib库

      执行./configure之后,出现

      ./configure: error: the HTTP gzip module requires the zlib library.
      You can either disable the module by using --without-http_gzip_module
      option, or install the zlib library into the system, or build the zlib library
      statically from the source with nginx by using --with-zlib=<path> option.
      

      其提示缺少zlib库

      $ sudo apt-get install openssl libssl-dev libperl-dev
      

    nginx配置

    nginx的配置文件在/usr/local/nginx/conf文件夹下,其主要的配置文件是nginx.conf文件,编辑该文件

    $ vi nginx.conf
    

    在配置文件的http下写入如下配置

        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
               proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header HOST $http_host;
               proxy_set_header X-Nginx_Proxy true;
               proxy_redirect off;
               root  dist;
               index  index.html index.htm;
               try_files $uri /index.html;
            }
    
            location ^~ /api/ {
              proxy_set_header  X-Real-IP  $remote_addr;
              proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_read_timeout       300;
              proxy_send_timeout       600;
              proxy_ignore_client_abort on;
              proxy_connect_timeout    300;
              proxy_next_upstream     error;
              proxy_pass 这里填入后台服务地址;
           }
    

    之后用scp命令将本地的dist文件夹上传至服务器的/usr/local/nginx文件夹下即可,上传成功之后启动nginx

    $ /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    

    成功之后访问服务器即可看到项目首页

    相关文章

      网友评论

          本文标题:Dva+antd项目部署至Nginx服务器

          本文链接:https://www.haomeiwen.com/subject/dtegpctx.html