2018/4/16 15:10:08当前位置推荐好文程序员浏览文章

准备环境:
    centos7.0 及以上
    nginx-1.13.5 以上
    docker-ce 1.17 以上
1,升级系统组件:

    yum -y

API部署

2,准备好编译过的项目文件,一般为publish文件夹一律文件

3,准备dockerfile文件,内容如下:
        FROM microsoft/aspnetcore:latest

       WORKDIR /app

        COPY . .

        ENTRYPOINT ["dotnet", "YunCai.MarketManage.Web.Host.dll"]

4,将dockerfile放在publish目录下,上传到cnetos服务器上,随意找个目录临时放publish,镜像创立完成以后,publish可删除

5,进入 publish目录 :
    命令:cd  /root(这一层目录看你放在什么地方,自行修改)/publish

6,执行docker 镜像生成命令:
    docker rm -f yuncaiapi || true (删除历史容器)
    docker rmi yuncaiapi || true (删除历史镜像)
    docker build -t yuncaiapi . (构建新镜像)
    镜像生成以后 使消耗 命令:docker images -a 查看镜像能否正常,如下图:


7,使消耗最新进行启动容器
    创立启动脚本:    vi start.sh
    输入以下内容:

    docker run --name yuncaiapi_test \        (定义容器名称)

    -p 8098:80 \    (8098是物理机端口号,80是容器端口号;访问地址:物理机IP:8098)

    --restart always \    (当docker服务启动后自动启动该容器)

    -v /etc/localtime:/etc/localtime \                      (统一容器时间为服务器时间)

    -v /srv/aspnetcore/yuncai/wwwroot:/app/wwwroot \    (将静态内容挂载到物理主机上,防止非频繁升级的内容被覆盖)

    -v /srv/aspnetcore/yuncai/logs:/app/logs \    (将日志挂在到物理主机,方便查看问题)

    yuncaiapi        (上一步创立的原始镜像)

    文件创立好以后,对脚本文件进行受权操作 :chmod 700 test.sh

8,使消耗脚本启动容器:./test.sh

9,假如没有报错,正常会看到下图:


10:使消耗外部IP访问当前网站:
    http://110.120.142.10:8098

11:nginx 代理商配置:

在nginx配置目录(/etc/nginx/conf.d)创立主机配置文件 xxx.conf

输入如下内容:

#配置负载均衡池

#Demo1负载均衡池

upstream wxcenter_pool {

    #服务器局域网地址:docker映射主机端口

    server 172.19.207.129:8098;

}

server {

    listen 80;

    #yuncai.sitename.com,为网站的主域名

    server_name yuncai.sitename.com;    

    access_log /var/log/nginx/wxcenter.static.a.log;

    error_log /var/log/nginx/wxcenter.static.e.log;

    location / {

        proxy_set_header Host $host:$server_port;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass http://wxcenter_pool;

    }

}

12,重启nginx,使消耗域名直接访问,以上为api部署流程

前台生成部署

win下生成前台部署文件

1,假如前台项目有单独的域名(http://manage.yuncai.com),则需要修改vue目录下的生成配置:

    进入目录  vue/config,打开index.js 修改assetsPublicPath 为 “/”

具体如下图:



2.假如前台项目没有单独域名(http://api.yuncai.com/manage),是放在域名子目录下的,则直接将截图中的“manage”改成指定的子目录

3,开始生成:cmd命令进入vue目录 cd vue

npm run build:prod

如下图



4,完成后在vue目录下找到dist目录,将整个dist下的内容上传到服务器上指定目录(一般为nginx的默认路径/usr/share/nginx/html),由于前台站点属于纯静态内容,无需其余额外的运行时支持,只要要使消耗nginx直接做静态代理商就可


5,nginx静态代理商内容如下:

server {

        listen 80 default_server;

        server_name _;

        root /usr/share/nginx/html;

        access_log /var/log/nginx/static.a.log;

        error_log /var/log/nginx/static.e.log;

        location / {

                index start.html index.html index.htm index.php;

                location ~ \.(eot|ttf|woff|woff2|svg|otf)$ {

                add_header Access-Control-Allow-Origin ;

                }

        }

        #配置Nginx动静分离,定义的静态页面直接从Nginx发布目录读取。

        location ~ .\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {

                root /usr/share/nginx/html;

                #expires定义消耗户浏览器缓存的时间为7天,假如静态页面不常升级,能设置更长,这样能节省带宽和缓解服务器的压力

                expires      7d;

        }

}

网友评论