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 部署,但是服務器費用相差太大了。
總結
以上是生活随笔為你收集整理的dt程序网站服务器配置,ZKWeb 官网与演示站点的部署步骤 (Linux + Nginx + Certbot)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Golang——包引入和闭包
- 下一篇: linux内核端口绑定,linux 多网