您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 如何在Linux+Jexus中发布和部署
## 前言
在当今的互联网时代,Linux服务器因其稳定性、安全性和开源特性成为企业级应用部署的首选平台。而Jexus作为一款高性能的国产Web服务器,特别适合.NET Core应用的部署。本文将详细介绍如何在Linux系统中使用Jexus进行应用的发布和部署。
## 一、环境准备
### 1.1 系统要求
- **操作系统**:Ubuntu 20.04 LTS/CentOS 7+(本文以Ubuntu为例)
- **运行时环境**:.NET Core 3.1/5.0/6.0
- **权限要求**:root或sudo权限
### 1.2 基础环境安装
```bash
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装基础工具
sudo apt install -y curl wget git unzip
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt update
sudo apt install -y dotnet-sdk-6.0
dotnet --version
# 应输出类似:6.0.301
curl https://jexus.org/release/x64/install.sh|sudo sh
jws -v
# 应输出类似:Jexus-5.8.3
在开发机上执行:
dotnet publish -c Release -r linux-x64 --self-contained false
/var/www/
└── myapp/
├── app/
│ ├── app.dll
│ ├── appsettings.json
│ └── wwwroot/
└── logs/
/etc/jexus/jws.conf
sudo nano /etc/jexus/siteconf/myapp
示例配置:
port=80
root=/ /var/www/myapp/app/wwwroot
hosts=myapp.com,*.myapp.com
apphost=/
approot=/var/www/myapp/app
apptype=dotnet
command=dotnet /var/www/myapp/app/app.dll
推荐使用rsync:
rsync -avz ./publish/ user@server:/var/www/myapp/app
sudo chown -R www-data:www-data /var/www/myapp
sudo chmod -R 750 /var/www/myapp
# 启动站点
sudo jws start myapp
# 查看状态
sudo jws status
# 重启服务
sudo jws restart
sudo apt install certbot python3-certbot-nginx
sudo certbot certonly --webroot -w /var/www/myapp/app/wwwroot -d myapp.com
port=443
certFile=/etc/letsencrypt/live/myapp.com/fullchain.pem
certKey=/etc/letsencrypt/live/myapp.com/privkey.pem
workers=4
worker_affinity=0 1 2 3
location=/
{
cache=10m
}
errpage=404 /error/404.html
/var/log/jexus/default/error.log
# 检查SELinux状态
sestatus
# 临时关闭
sudo setenforce 0
sudo netstat -tulnp | grep :80
maxworker=100
maxconn=10000
在appsettings.json中添加:
"Kestrel": {
"Limits": {
"MaxConcurrentConnections": 10000
}
}
示例post-receive脚本:
#!/bin/bash
TARGET="/var/www/myapp/app"
GIT_DIR="/var/repo/myapp.git"
mkdir -p $TARGET
git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f
cd $TARGET && dotnet publish -c Release
sudo jws restart myapp
GitLab CI示例:
deploy_prod:
stage: deploy
script:
- rsync -avz ./publish/ prod-server:/var/www/myapp/app
- ssh prod-server "sudo jws restart myapp"
only:
- master
/var/log/jexus/default/access.log
使用systemd:
[Unit]
Description=MyApp Service
[Service]
WorkingDirectory=/var/www/myapp/app
ExecStart=/usr/bin/dotnet /var/www/myapp/app/app.dll
Restart=always
RestartSec=10
SyslogIdentifier=myapp
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
通过本文的详细指导,您应该已经掌握了在Linux系统上使用Jexus部署.NET Core应用的完整流程。从环境准备到高级配置,从基础部署到性能优化,Jexus以其轻量级和高性能的特点,成为.NET Core应用在Linux平台部署的优质选择。
最佳实践提示:建议在正式环境部署前,先在测试环境验证所有配置,并建立完整的回滚机制。
命令 | 说明 |
---|---|
jws start sitename |
启动站点 |
jws stop sitename |
停止站点 |
jws -v |
查看版本 |
jws -h |
查看帮助 |
”`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。