dt程序网站服务器配置,ZKWeb 官网与演示站点的部署步骤 (Linux + Nginx + Certbot)

因为没有给域名续费,加上私人时间不足,ZKWeb 的官网和演示站点已经停止了几个月的时间。 最近时间开始变多,所以重新购买了别的域名和服务器把官网和演示站点重新部署上去。 在此前站点是托管在共享主机上的 Windows + IIS 上的,而现在已经换为了 Linux + Nginx,费用比使用共享主机还要便宜。

因为服务器是 OpenVZ 下的虚拟主机,不能使用 docker,以下的步骤会直接在服务器上运行网站程序。

安装 dotnet

wget -q https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

sudo apt-get install apt-transport-https

sudo apt-get update

sudo apt-get install dotnet-sdk-2.2 -y

安装 libgdiplus (为了支持 System.Drawing.Common)

sudo apt-get install libgdiplus libunwind8 openssl -y

ln -s /usr/lib/libgdiplus.so /usr/lib/gdiplus.dll

安装 nodejs (MVVMDemo 需要使用)

curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh

sudo bash nodesource_setup.sh

rm nodesource_setup.sh

sudo apt-get install nodejs

下载项目

sudo apt-get install git

cd /home/ubuntu

git clone https://github.com/zkweb-framework/ZKWeb

git clone https://github.com/zkweb-framework/ZKWeb.MVVMDemo

git clone https://github.com/zkweb-framework/ZKWeb.Plugins

git clone https://github.com/zkweb-framework/ZKWeb.Demo

git clone https://github.com/zkweb-framework/ZKWeb.Home

编译和发布项目

cd ~/ZKWeb.Demo && sh publish_ubuntu.sh

cd ~/ZKWeb.Home && sh publish_ubuntu.sh

cd ~/ZKWeb.MVVMDemo/src/ZKWeb.MVVMPlugins/MVVM.Angular.Website/static

sudo npm install -g @angular/cli

npm install

ng build --prod --aot

cd ~/ZKWeb.MVVMDemo && sh publish_ubuntu.sh

添加 systemd 服务

sudo vi /etc/systemd/system/zkweb-home.service

内容:

[Unit]

Description=ZKWeb Home

After=network.target

[Service]

WorkingDirectory=/home/ubuntu/ZKWeb.Home.Publish/ZKWeb.Home.Ubuntu

ExecStart=/bin/sh -c "./ZKWeb.Home.AspNetCore server.urls=http://127.0.0.1:5000"

Restart=always

RestartSec=10

KillSignal=SIGINT

SyslogIdentifier=zkweb-home

User=ubuntu

Environment=ASPNETCORE_ENVIRONMENT=Production

Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]

WantedBy=multi-user.target

sudo vi /etc/systemd/system/zkweb-demo.service

内容:

[Unit]

Description=ZKWeb Demo

After=network.target

[Service]

WorkingDirectory=/home/ubuntu/ZKWeb.Demo.Publish/ZKWeb.Demo.Ubuntu

ExecStart=/bin/sh -c "./ZKWeb.Demo.AspNetCore server.urls=http://127.0.0.1:5001"

Restart=always

RestartSec=10

KillSignal=SIGINT

SyslogIdentifier=zkweb-demo

User=ubuntu

Environment=ASPNETCORE_ENVIRONMENT=Production

Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]

WantedBy=multi-user.target

sudo vi /etc/systemd/system/zkweb-mvvm-demo.service

内容:

[Unit]

Description=ZKWeb MVVM Demo

After=network.target

[Service]

WorkingDirectory=/home/ubuntu/ZKWeb.MVVMDemo.Publish/ZKWeb.MVVMDemo.Ubuntu

ExecStart=/bin/sh -c "./ZKWeb.MVVMDemo.AspNetCore server.urls=http://127.0.0.1:5002"

Restart=always

RestartSec=10

KillSignal=SIGINT

SyslogIdentifier=zkweb-mvvm-demo

User=ubuntu

Environment=ASPNETCORE_ENVIRONMENT=Production

Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]

WantedBy=multi-user.target

启动 systemd 服务

# 设置重启后自动开始

sudo systemctl enable zkweb-home

sudo systemctl enable zkweb-demo

sudo systemctl enable zkweb-mvvm-demo

# 立刻开始

sudo systemctl start zkweb-home

sudo systemctl start zkweb-demo

sudo systemctl start zkweb-mvvm-demo

# 查看服务日志

sudo journalctl -u zkweb-home

sudo journalctl -u zkweb-demo

sudo journalctl -u zkweb-mvvm-demo

安装和启动 nginx

sudo apt-get install nginx

sudo systemctl enable nginx

sudo systemctl start nginx

编辑配置与重启 nginx

sudo vi /etc/nginx/sites-enabled/default

sudo systemctl restart nginx

内容:

server {

listen 80;

server_name zkweb.app.compiv.com;

location / {

proxy_pass http://localhost:5000;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection keep-alive;

proxy_set_header Host $host;

proxy_cache_bypass $http_upgrade;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

}

server {

listen 80;

server_name zkweb-demo.app.compiv.com;

location / {

proxy_pass http://localhost:5001;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection keep-alive;

proxy_set_header Host $host;

proxy_cache_bypass $http_upgrade;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

}

server {

listen 80;

server_name zkweb-mvvm-demo.app.compiv.com;

location / {

proxy_pass http://localhost:5002;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection keep-alive;

proxy_set_header Host $host;

proxy_cache_bypass $http_upgrade;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

}

}

安装 certbot (支持自动申请与更新 lets encrypt 的 ssl 证书)

sudo add-apt-repository ppa:certbot/certbot

sudo apt-get update

sudo apt-get install python-certbot-nginx

申请 ssl 证书

证书会通过 nginx 模块自动通过认证 (文件路径形式) 与签发。

sudo certbot --nginx -d zkweb.app.compiv.com

sudo certbot --nginx -d zkweb-demo.app.compiv.com

sudo certbot --nginx -d zkweb-mvvm-demo.app.compiv.com

测试更新 ssl 证书 (不会实际更新)

sudo certbot renew --dry-run

检查更新 ssl 证书的定时器

通过以上方式安装 certbot 以后会自动注册定时器,用于自动更新 ssl 证书,以下命令可以用来确认定时器的状态。

sudo systemctl list-timers certbot.timer

以上就完成部署了,这个部署流程基本上是写给自己看的,如果您有基于 zkweb 的网站也可以拿来参考。 虽然很想用 docker 部署,但是服务器费用相差太大了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

零窗口探测怎么抓包_万事俱备,只待“窗口”!航天任务中的重要环节:“发射窗口”!...

1999年11月20日06时30分07秒,神舟一号腾空而起,揭开了我国载人航天的华丽篇章。2003年10月15日09时00分00秒杨利伟驾乘神舟五号成功进入太空,我国成为了世界第三个自主探寻宇宙的人类国家。载人航天工程在过去的20年间一共发射了从神舟一号到…

yum 安装oraclejdk_四、CentOS 7安装Oracle JDK

CentOS 7安装Oracle JDK,查看Linux是否自带的JDK,如有openJDK,则卸载CentOS7.1 JDK安装1、卸载自带OPENJDK用 java -version 命令查看当前jdk版本信息#java -version用rpm -qa | grep java 命令查询操作系统自身安装的java#rpm -qa | grep ja…

性能测试 获取 服务器间响应时间,性能测试指标分析TPS、响应时间、并发量等...

然后我们再来看性能测试的指标是怎么来的呢?1、产品和运营要给出业务需求:这个服务,在多长时间段,多少人会访问2、性能要求上,通常情况下的APP或者web应该如何?一般情况下通用的标准是页面显示时间预判&…

【手把手教你树莓派3 (二)】 启动wifi模块

概述 树莓派3内置了wifi和蓝牙模块,我们不用像以前的版本那样,再去购买一个外接的模块练到raspberry上。 当我们第一次启动了树莓派的时候,必然使用了网线,但是之后的每一次使用,我们当然更希望使用wifi连接树莓派和路…

python如何写一个图片进去_python写个图片爬虫

[rootMGServer pythonscript]# vim getimg.py#!/usr/bin/python#encoding:utf8import requests,sys,re#定义一个方法,获取网站图片,并下载def getimg(url):#请求url内容pagerequests.get(url)#获取内容pagetextpage.content#定义正则表达式。regrsrc.*?…

广域信息服务器,网络工程师之广域信息服务

1、广域信息服务WAIS(Wide Area Information Search)是一种网络信息查询系统,它可以和关键字对服务器数据库进行全文索引,获取索引所得的信息。2、WAIS运行模式,采用客户机和服务器方式。运行方式,standalone和inetd方式。包括三部…

长方形与圆最近连线LISP_餐桌到底选方还是圆?可千万别买错了,今天我们好好聊聊...

最近我被所潜装修群里一则消息刷屏了,几个人你争我夺、言辞激烈,爬楼一看原来是纠结「餐桌选圆还是方」。要说我们中国人真的是什么都能纠结起来,今天我也给大家好好聊聊餐桌究竟该怎么选!1、方桌 VS 圆桌1.方桌的特点现代家庭方桌…

jquery 字符串去首尾空格_jquery $.trim()去除字符串空格详解

jquery $.trim()去除字符串空格详解语法jQuery.trim()函数用于去除字符串两端的空白字符。作用该函数可以去除字符串开始和末尾两端的空白字符(直到遇到第一个非空白字符串为止)。它会清除包括换行符、空格、制表符等常见的空白字符。参数如果参数str不是字符串类型&#xff0c…

python 当前时间的前一天_python中time、datetime模块的使用

python中time、datetime模块的使用1、前言如果您从事过python web的开发,那一定有过这样的经历,对于各种复杂繁琐的业务逻辑,掺杂着各种各样的时间约束,让人很容易搞的头晕眼花,比如展示出一天内用户进行过的所有操作记…

mycat 分表子查询_还不懂MyCat?一文带你深入剖析,实现MySQL读写分离

前言系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中…

常量

定义常量:(const 关键字) 例如:const int a100; 1、必须在声明时初始化,指定了其值后不再改写(存在改写现象会编译器报错) 2、不能从一个变量中提取值来初始化常量(如需这么做应该用只读字段) 3、转载于:https://www.c…

浪潮服务器5112面板灯_SA5112M4 – IPMI设置

SA5112M4 – IPMI设置1. 浪潮IPMI管理模块简介浪潮IPMI管理模块是按照IPMI2.0标准实现对服务器系统管理功能。IPMI管理模块实现的功能有:系统的实时监控在检测到故障的情况下可实现告警的上报、告警的指示和启动系统的自我保护。系统的远程控制能通过命令行和Web实现…

sqlserver如何读写操作windows系统的文件

DECLARE object int DECLARE hr int DECLARE src varchar(255), desc varchar(255) Declare tmp int declare msg varchar(3000) -------------------------1.写文件-------------------------------------- --将这串字符写到SQL …

springmvc重定向到另一个项目_spring mvc的转发与重定向

转发与重定向spring mvc底层其实就是一个servlet,因此在spring mvc中也存在转发和重定向的概念。对于转发的页面,可以是在WEB-INF目录下的页面;而重定向的页面,是不能在WEB-INF目录下的。因为重定向相当于用户再次发出一次请求&am…

MySQL备份和还原数据库及慢查询日志使用

转载于:https://www.cnblogs.com/NiceTime/p/6665495.html

Oracle 11gR2 +sqldeveloper 安装过程(学习记录)

Oracle 11g 和SQL developer安装过程 一、Oracle 11g的安装 背景:由于课程学习需要Oracle 11g,但在Oracle官方网页(https://www.oracle.com/index.html)中没有直接找到Oracle 11的版本,所以自己在网上找到相关的压缩包进行的。 …

zemax设计35mm镜头_ZEMAX怎样优化MTF?

什么是MTF?MTF即调制传递函数是描述一个光学系统很重要的方法。在成像光学系统中运用傅立叶理论的目的就是让MTF能描述图像中所要观察的空间频率场的对比度。位图分析窗口显示了三个孩子的图像的部分,展示了“好的”图像质量:但是好到底是怎样…

网线重新插拔后恢复正常_生活小窍门之网线不够长怎么办,毕亚兹网线连接器轻松搞定...

很多朋友在家中装修完时候,为了整齐和方便收纳都会把每个屋中的网口和光纤输出口集中到一起,放置到网络箱中,看起来更加整齐划一,但是装修时都不会考虑到网线要预留很长,很多时候都只留了很短的一节网线,还…

利用IDEA部署过的Tomcat开发Web Service

(1)使用idea开发一个Web Service; (2)开发一个客户端来调用该Web Service并展现出相应j结果; (3)编程调用网络上提供的天气预报Web Service并显示结果。 (1)开…

平衡的括号[UVA-673]

UVA673 Parentheses Balance 书上习题6-1,题比较简单,主要是使用栈这个“后进先出”的数据结构。因为平衡的括号,必然可以在左半括号进行push而右半括号进行pop,当到达序列末尾而栈不空,显然不满足题意了。 抛开题目说…