在CentOS 7服务器中使用Jexus发布.net core webapi
环境:
服务器:CentOS 7 64位
.net core 2.1
Jexus独立版
官网:https://www.jexus.org/
按照官网安装独立版命令:curl https://jexus.org/release/x64/install.sh|sudo sh
[root@localhost ~]# curl https://jexus.org/release/x64/install.sh|sudo sh% Total % Received % Xferd Average Speed Time Time Time CurrentDload Upload Total Spent Left Speed 100 398 100 398 0 0 228 0 0:00:01 0:00:01 --:--:-- 228 sh:行7: wget: 未找到命令 tar (child): jexus-6.1-x64.tar.gz:无法 open: 没有那个文件或目录 tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable: exiting now cp: 无法获取"jexus" 的文件状态(stat): 没有那个文件或目录 sh: 第 10 行:cd: /usr/jexus: 没有那个文件或目录 chmod: 无法访问"/usr/jexus/jws": 没有那个文件或目录 sh:行12: /usr/jexus/jws: 没有那个文件或目录 sh: 第 16 行:cd: /usr/jexus: 没有那个文件或目录 OK, Jexus has been installed in /usr/jexus.
如提示wget: 未找到命令则需要先安装wget,用来下载Jexus。
CentOS安装wget:yum install wget
[root@localhost ~]# yum install wget 已加载插件:fastestmirror Determining fastest mirrors epel/x86_64/metalink | 6.1 kB 00:00:00 * base: mirrors.163.com* epel: mirror01.idc.hinet.net* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com base | 3.6 kB 00:00:00 epel | 5.3 kB 00:00:00 extras | 3.4 kB 00:00:00 packages-microsoft-com-prod | 2.9 kB 00:00:00 updates | 3.4 kB 00:00:00 epel/x86_64/primary_db FAILED http://fedora.cs.nctu.edu.tw/epel/7/x86_64/repodata/f36c8c0adcbde109e842436bc378f32c2cbcc6c06be1bff16765ab782fc1e6f0-primary.sqlite.bz2: [Errno 14] HTTP Error 404 - Not Found 正在尝试其它镜像。 To address this issue please refer to the below wiki article https://wiki.centos.org/yum-errors If above article doesn't help to resolve this issue please use https://bugs.centos.org/. (1/5): extras/7/x86_64/primary_db | 200 kB 00:00:00 (2/5): epel/x86_64/updateinfo | 977 kB 00:00:00 (3/5): updates/7/x86_64/primary_db | 5.0 MB 00:00:01 (4/5): packages-microsoft-com-prod/primary_db | 170 kB 00:00:01 (5/5): epel/x86_64/primary_db | 6.7 MB 00:00:03 正在解决依赖关系 --> 正在检查事务 ---> 软件包 wget.x86_64.0.1.14-18.el7_6.1 将被 安装 --> 解决依赖关系完成依赖关系解决===============================================================================================================Package 架构 版本 源 大小 =============================================================================================================== 正在安装:wget x86_64 1.14-18.el7_6.1 updates 547 k事务概要 =============================================================================================================== 安装 1 软件包总下载量:547 k 安装大小:2.0 M
Is this ok [y/d/N]: y
安装完后输入y
然后安装jexus.
安装成功会提示:
OK, Jexus has been installed in /usr/jexus.
可以看到Jexus的安装目录是/usr/jexus
查看Jexus本部命令:/usr/jexus/jws -V
Jexus网站配置目录为/usr/jexus/siteconf/
打开Xshell上面的Xfpt,可以进入该目录,下面有个default的文件,这个就是配置网站的文件,一个网站一个该配置文件。
使用Xftp的记事本打开该文件
port=80 #网站端口
root=/ /var/www/default #网站目录
hosts=* #OR your.com,*.your.com #网站域名
因为我使用的服务器80端口已经使用了,把该default里的内容都注释掉,重新建一个文件web60的配置文件
通过Xftp上传一个html页面到该路径
然后到Xshell中启动Jexus:
启动命令:sh /usr/jexus/jws start
重启命令:sh /usr/jexus/jws restart
启动成功,在浏览器中输入改IP及端口,可以看到Jexus已经托管该网站。
CentOS下安装.net core 运行时可以参考微软的官方文档:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install
1.注册.net core
sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
2.更新Linux内核(生成环境慎用)
sudo yum update
3.安装.net SDK
sudo yum install -y dotnet-sdk-2.1
4.查看.net core版本(安装成功后)
dotnet --version
创建一个.net core的webapi,
设置Json样式
// This method gets called by the runtime. Use this method to add services to the container.public void ConfigureServices(IServiceCollection services){//services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);//全局配置Json序列化处理 services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1).AddJsonOptions(options =>{//忽略循环引用options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;//不使用驼峰样式的keyoptions.SerializerSettings.ContractResolver = new DefaultContractResolver();//设置时间格式options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";});}
调试环境需要注释启动配置文件launchSettings.json的$schema属性去掉默认的Json样式
设置.net core api访问的端口
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>WebHost.CreateDefaultBuilder(args).UseUrls("http://*:5002").UseStartup<Startup>()/*.UseKestrel(options =>{options.Limits.MaxConcurrentUpgradedConnections = 1000;})*/.ConfigureAppConfiguration((builderContext, configBuilder) =>{var env = builderContext.HostingEnvironment;configBuilder.SetBasePath(env.ContentRootPath).AddJsonFile("appsettings.json", optional: true, reloadOnChange: true).AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true).AddEnvironmentVariables();// Add to configuration the Cloudfoundry VCAP settings});
发布网站,部署模式选框架依赖,目标运行时选可移植。
将文件通过ftp上传到服务器
在xshell运行改网站:dotnet 程序集名称.dll,运行成功,直接在浏览器打开发现无法访问,这是服务器防火墙没开放该端口。
另起一个终端标签,使用curl访问该API,可以成功返回数据。
curl http://localhost:5002/api/values
Ctrl+C关闭.net core控制台 ,使用Jexus做外部端口监听和网站服务器。(类似Nginx方向代理+Linux进程守护)
创建一个Jexus网站配置
port=70 # 外部访问的端口号,可以改成你想要的端口号,外部访问通过 ip/域名:端口号 即可访问 root=/ /home/web70/应用程序文件夹/ # 应用程序的工作根目录(全路径) hosts=* #OR your.com,*.your.com # 如果为服务器设置了DNS解析,则可以填写解析到服务器的域名,如:www.myweb.comAppHost={ # .net core 网站配置cmd=dotnet 应用程序名称.dll; # 命令,启动Asp.Net Core应用要执行的命令root=/var/www/应用程序文件夹/; # Asp.Net Core应用程序所在的全路径 port=5002; # Asp.Net Core应用程序所使用的端口号,如果在程序中使用了UsrUrls自定义端口则使用UsrUrls中填写的端口(不建议使用UsrUrls自定义端口),# 在没有使用UsrUrls自定义端口的情况下端口号设置为 0,Jexus会在运行时与Asp.Net Core进行"协商"具体使用的端口号,避免多个应用分配 # 端口的麻烦和冲突的风险。 }
重启Jexus,然后用浏览器访问该API地址
将Jexus设置为开机自动启动
使用xftp打开路径/usr/lib/systemd/system ,在该路径下新建服务文件jexus.service
文件内容:
[Unit] Description=jexus After=network.target [Service] Type=forking ExecStart=/usr/jexus/jws start ExecReload=/usr/jexus/jws restart ExecStop=/usr/jexus/jws stop PrivateTmp=true [Install] WantedBy=multi-user.target
添加服务:systemctl enable jexus.service
启动Jexus服务:systemctl start jexus.service
查看Jexus服务状态:systemctl status jexus.service
状态为active(running)表示已启动服务成功。
重启服务器后就会自动启动Jexus了。
参考资料:
https://www.cnblogs.com/nsky/p/10386460.html
https://www.cnblogs.com/alan-lin/p/9817331.html
https://www.linuxdot.net/
https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install
Liunx下使用top命令查看CPU、内存等:
https://www.cnblogs.com/dragonsuc/p/5512797.html
转载于:https://www.cnblogs.com/townsend/p/10969091.html
在CentOS 7服务器中使用Jexus发布.net core webapi相关推荐
- Linux服务器部署mono+jexus发布asp.net网站
Linux服务器部署mono+jexus发布asp.net网站 Mono简介 1.mono的背景 由于Linux/Unix等有更强的安全性.运行效率高.拥有大量优秀的开源组件,而.Net则有着其他语言 ...
- centos 下载文件很慢_【已解决】Mac中从远程CentOS服务器中加速下载大文件
折腾: 期间, 需要从远程的CentOS服务器中,下载一个1G多的大文件. 之前对于普通小文件,直接用命令行的sz即可下载. 现在对于大文件,需要看看是否有更好的办法. 用sz或sftp? 不过还是先 ...
- 远程访问 Linux 服务器中的 redis 数据库(腾讯云服务器 CentOS 8.0)
远程访问 Linux 服务器中的 redis 数据库(腾讯云服务器 CentOS 8.0) 1. 开放腾讯云服务器防火墙端口 2. 修改 redis.conf 文件配置 3. 设置服务器防火墙状态 4 ...
- centos 远程安装java程序_centos7远程服务器中redis的安装与java连接
1.下载安装redis 在远程服务器中你想下载的位置执行以下命令来下载redis文件到服务器中 $ wget http://download.redis.io/releases/redis-4.0.9 ...
- centos服务器中木马后的处理和预防
背景 自己用的一台服务器中了挖矿木马,根据清木马的经历,特意写了这篇文章,这不能算是一个权威教程,因为自己对木马的机制并没有彻底的了解,只当是一个记录和讨论的方式. 中木马的迹象 如果你的服务器出现以 ...
- 基于centos7.0+mono+jexus配置https(阿里云服务器最全配置jexus https教程)
终于经过一下午的折腾,https可以正常访问: 效果如下: 怎么在jexus上配置https.png 我的环境为: 购买的阿里云centos 7.0 服务器,后台采用的是c#开发,因此部署的是mono ...
- linux7启动某个服务器,如何在单用户模式下启动RHEL 7 CentOS 7服务器
对于Linux系统管理员,以单用户模式引导RHEL 7 / CentOS 7服务器是最常见的日常活动.单用户模式被视为维护或紧急模式,我们可以执行我们的故障排除步骤.以下是我们需要在单用户模式下启动R ...
- 服务器新建文件命令,云服务器中新建文件夹命令
云服务器中新建文件夹命令 内容精选 换一换 使用mount命令挂载文件系统到云服务器,云服务器提示access denied,挂载失败.原因1:文件系统已被删除.原因2:执行挂载命令的云服务器和被挂载 ...
- ftp 服务器的目录文件,ftp服务器中文件目录下
ftp服务器中文件目录下 内容精选 换一换 如果DDK和Atlas 200 DK Atlas 300不在同一服务器,请执行1~7.如果DDK和Atlas 200 DK Atlas 300在同一服务器, ...
最新文章
- 强化学习在机器人中的应用
- Hyper-V 配置网络 (高级篇)
- 用C#操作word替换字符,用spire
- DataTable to byte[]、DataTable to XML(string)
- 紫东太初:自动化所开源图-文-音三模态的预训练大模型
- java打印整个向量_Java中Vector向量的用法
- bpmn2.0业务过程模型和符号_IT帮业务架构学习小组学习内容
- 音视频开发(37)---麦克风阵列语音增强(二)
- 滴滴货运首批试点城市揭晓 23日起在成都、杭州上线
- 家里的狗为什么打不过猫
- 基于MATLAB的电力系统短路故障分析与仿真
- 企业如何实践开源协同
- 【硬石STM32f407开发板_DIY入门】模块化编程实例
- 计算机显示器的分辨率可以调节吗,电脑分辨率何如调?电脑无法调整屏幕分辨率怎么办?...
- Spring Security基于数据库认证用户登录
- 二、 Unity 游戏入门 创建角色 Main Character and First Script
- python 堆叠柱状图,Python可视化matplotlib12-垂直|水平|堆积柱形图详解
- 深拷贝和浅拷贝的几种方法
- 张一鸣的“成事哲学”:取势、明道、优术、践行、合众
- A006-AndroidManifest.xml解析
热门文章
- python编程学习笔记_python编程:从入门到实践学习笔记-Django开发用户账户(一)...
- eclipse显示服务器地址,eclipse怎样添加服务器地址
- 卸载 流程_「工具」Windows 卸载软件,这一个就够了
- swift4 linux,Swift 4正式发布,新功能概览
- java jolt调用tuxedo_Jolt调用Tuxedo服务,该怎么处理
- vscode更改编码_装上后这 10个扩展后,VSCode 真的是无敌的存在
- mysql5.7gtid_MySQL5.7 GTID 运维实战
- Linux权限管理(基本权限、默认权限、
- 实战Transformer在NLP和医学图像分割领域的应用
- 【PL/SQL的优点】