当前位置: 首页 > news >正文

nssm 工具把asp.net core mvc变成 windows服务,使用nginx反向代理访问

nssm工具的作用:把项目部署成Windows服务,可以在系统后台运行
1.创建一个asp.net core mvc的项目weblication1
在这里插入图片描述
asp.net core mvc项目要成为windows服务需要安装下面的nuget包

<ItemGroup><PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.0" />
</ItemGroup>

在program中添加代码
在这里插入图片描述
在创建一个asp.net core mvc项目 webapplication2
把program中的usePathBase改为(“/app2”)
我这里没添加
builder.Host.UseWindowsService();也成功了。有可能是我使用.net 8版本的原因,低版本的应该不可以。
在这里插入图片描述

2.发布项目(两个项目都发布)
在这里插入图片描述
3.使用nssm工具安装服务
这里就不提供安装包了,可以自己在网上下载
找到文件目录,在地址栏输入 cmd
在这里插入图片描述
安装 命令:nssm install
在这里插入图片描述
进入图形化界面
在这里插入图片描述

配置项说明:

Path:运行应用程序的程序

Startup directory:应用程序所在的目录

Arguments:应用运行的参数

Service name:生成服务的名称

最后点击install service 完成windows服务安装,在windows服务列表就能看到创建的服务了。

常用命令:

nssm install servername //创建servername服务,弹出配置界面
nssm start servername //启动服务
nssm stop servername //暂停服务
nssm restart servername //重新启动服务
nssm remove servername //删除创建的servername服务
nssm edit servername//更改servername服务,弹出修改界面
nssm set servername 参数名 参数值 //设置服务参数值
sc delete servername//windows删除服务命令
直接使用windows的服务管理也可以实现服务的操作,服务右键属性 - 恢复即可设置服务挂掉重启等内容。

将应用作成服务(两个项目都要,记得改名称)

1.应用的启动命令是:

dotnet WebApplication1.dll --urls=http://*:8888/ --port=8888

2、安装服务:
安装两个一个8888,一个8889。这边就演示一遍

Path:C:\Program Files\dotnet\dotnet.exe
Startup directory:C:\Users\pzx\source\repos\WebApplication1\WebApplication1\bin\Release\net8.0\publish
Arguments:WebApplication1.dll --urls=http://localhost:8888/ --port=8888
Service name:webapp1

填入上面的信息,提示succful 安装成功!
在这里插入图片描述
查看服务,是否已安装。
在这里插入图片描述
需要,右击启动服务(服务可以设置为自动,服务器重启了,也可以直接访问)
webapp1
直接在浏览器里输入:http://localhost:8888/
在这里插入图片描述
webapp2
在这里插入图片描述

下载nginx服务器

下载地址
https://nginx.org/en/download.html
选择稳定版,windows版本
在这里插入图片描述
双击exe即可,这个是绿色版的,无需安装
在这里插入图片描述

安装成功(默认80端口)输入IP或localhost 显现下面页面
在这里插入图片描述
配置ngixn.conf
在这里插入图片描述
在server里面添加下面的配置:

    location / {root   html;index  index.html index.htm;}location /app1  {# 去除路径前缀,以便正确代理rewrite ^/app1(/.*)$ $1 break;proxy_pass  http://localhost:8888;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_read_timeout 300s;proxy_redirect    off;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $http_host;proxy_next_upstream http_502 http_504 error timeout invalid_header;}#此配置css,js失效时可添加location ~ .*\.(js|css|jpg|jpeg|gif|png|ico|pdf|txt)$ {# 去除路径前缀,以便正确代理rewrite ^/app1(/.*)$ $1 break;proxy_pass http://localhost:8888;}location /app2 {# 去除路径前缀,以便正确代理rewrite ^/app2(/.*)$ $1 break;proxy_pass  http://localhost:8889;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_read_timeout 300s;proxy_redirect    off;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $http_host;proxy_next_upstream http_502 http_504 error timeout invalid_header;}#此配置css,js失效时可添加location ~ .*\.(js|css|jpg|jpeg|gif|png|ico|pdf|txt)$ {# 去除路径前缀,以便正确代理rewrite ^/app2(/.*)$ $1 break;proxy_pass http://localhost:8889;}

修改后,要把nginx进程结束,在重启启动
直接在浏览器输入
http://localhost/app1
在这里插入图片描述
http://localhsot/app2
在这里插入图片描述
上面就一台服务器代理两个不同的服务。
Linux下也一样的配置
使用 vim 打开

vim /etc/nginx/sites-enabled/default

配置一样
nginx语法检查

 nginx -t

重启服务

systemctl restart nginx
http://www.lryc.cn/news/331834.html

相关文章:

  • String Encryptor custom Bean not found with name ‘jasyptStringEncryptor‘...
  • FastAPI+React全栈开发14 FastAPI如何开发REST接口
  • 在 DDD 中,如何处理领域对象的持久化?
  • centos 如何安装nvidia-container-runtime
  • 非写代码无以致远
  • 刷题之Leetcode34题(超级详细)
  • 从0到1构建uniapp应用-store状态管理
  • Uinx线程详解
  • 线性代数笔记23--马尔可夫矩阵、傅里叶级数
  • Elasticsearch 压测实践总结
  • Spirngboot JWT快速配置和使用
  • 【Java SE】继承
  • 设计模式(19):策略模式
  • Linux 命令 top 详解
  • Android安卓开发 - 简单介绍(一)
  • AJAX —— 学习(二)
  • CSC博士联培申请时间线
  • 大数据实验三-HBase编程实践
  • 【Python】Pillow支持的图像文件格式
  • 算法——最小生成树
  • OpenHarmony相机和媒体库-如何在ArkTS中调用相机拍照和录像。
  • 【EasyExcel】多sheet、追加列
  • 韩顺平 | 零基础快速学Python
  • docker部署DOS游戏
  • 基于单片机的无线红外报警系统
  • 【JAVAEE学习】探究Java中多线程的使用和重点及考点
  • Day81:服务攻防-开发框架安全SpringBootStruts2LaravelThinkPHPCVE复现
  • .kat6.l6st6r勒索病毒肆虐,这些应对策略或许能帮到你
  • maya移除节点 修改节点
  • 嵌入式算法开发系列之卡尔曼滤波算法