如何在Linux+Jexus中发布和部署

发布时间:2021-12-23 13:38:25 作者:柒染
来源:亿速云 阅读:212
# 如何在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

二、安装.NET Core SDK

2.1 添加微软包仓库

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

2.2 安装SDK(以.NET 6为例)

sudo apt update
sudo apt install -y dotnet-sdk-6.0

2.3 验证安装

dotnet --version
# 应输出类似:6.0.301

三、安装Jexus服务器

3.1 独立版安装(推荐)

curl https://jexus.org/release/x64/install.sh|sudo sh

3.2 验证安装

jws -v
# 应输出类似:Jexus-5.8.3

四、项目发布准备

4.1 项目构建

在开发机上执行:

dotnet publish -c Release -r linux-x64 --self-contained false

4.2 目录结构建议

/var/www/
└── myapp/
    ├── app/
    │   ├── app.dll
    │   ├── appsettings.json
    │   └── wwwroot/
    └── logs/

五、Jexus配置详解

5.1 主配置文件位置

/etc/jexus/jws.conf

5.2 创建站点配置文件

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

5.3 关键参数说明

六、部署实战

6.1 文件传输

推荐使用rsync:

rsync -avz ./publish/ user@server:/var/www/myapp/app

6.2 权限设置

sudo chown -R www-data:www-data /var/www/myapp
sudo chmod -R 750 /var/www/myapp

6.3 服务管理

# 启动站点
sudo jws start myapp

# 查看状态
sudo jws status

# 重启服务
sudo jws restart

七、HTTPS配置

7.1 申请证书(以Let’s Encrypt为例)

sudo apt install certbot python3-certbot-nginx
sudo certbot certonly --webroot -w /var/www/myapp/app/wwwroot -d myapp.com

7.2 修改Jexus配置

port=443
certFile=/etc/letsencrypt/live/myapp.com/fullchain.pem
certKey=/etc/letsencrypt/live/myapp.com/privkey.pem

八、高级配置技巧

8.1 负载均衡配置

workers=4
worker_affinity=0 1 2 3

8.2 静态文件缓存

location=/
{
    cache=10m
}

8.3 自定义错误页

errpage=404 /error/404.html

九、常见问题排查

9.1 502 Bad Gateway

9.2 权限问题

# 检查SELinux状态
sestatus

# 临时关闭
sudo setenforce 0

9.3 端口冲突

sudo netstat -tulnp | grep :80

十、性能优化建议

10.1 Jexus参数调优

maxworker=100
maxconn=10000

10.2 .NET Core优化

在appsettings.json中添加:

"Kestrel": {
    "Limits": {
        "MaxConcurrentConnections": 10000
    }
}

十一、自动化部署方案

11.1 使用Git钩子

示例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

11.2 CI/CD集成

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

十二、监控与维护

12.1 日志管理

12.2 进程监控

使用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 查看帮助

参考资源

  1. Jexus官方文档
  2. .NET Core官方文档
  3. Linux系统管理手册

”`

推荐阅读:
  1. 如何在Linux中安装和部署keepalived
  2. 如何在Kubernetes上部署和伸缩Jenkins

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

asp.net core linux jexus

上一篇:java中List接口怎么实现类

下一篇:mysql中出现1053错误怎么办

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》