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

news2024/11/28 14:52:36

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.coloradmin.cn/o/1576871.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小红书商业IP变现策略与实操经验分享

一、个人介绍与背景 1. 创业者背景 作为连续创业者&#xff0c;我创立了树叶有光品牌&#xff0c;并在多个领域有所涉猎&#xff0c;如人生陪跑师、财富卡点爆破师等。这些多重身份让我在创业过程中积累了丰富的经验和独特的视角。 二、小红书账号运营经验 1. 运营成果 经…

基于ssm办公用品管理系统开发与设计论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本办公用品管理系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

【边缘智能】00_边缘计算发展背景

本系列是个人学习《边缘就算基础知识入门》的笔记&#xff0c;仅为个人学习记录&#xff0c;欢迎交流&#xff0c;感谢批评指正 移动物联设备产生海量数据&#xff0c;数据密集型移动智能应用&#xff0c;计算密集、动态性高&#xff0c;实时性强 传统云计算架构 基于广域互联…

JavaScript - 请你为数组自定义一个方法myFind,使其实现find方法的功能

难度级别:中级及以上 提问概率:50% 我们知道数组的find方法是ES6之后出现的,它强调找到第一个符合条件的元素后即跳出循环,不再继续执行,那么如果不用ES6的知识,为数组添加一个自定义方法实现find方法的功能,首先要想到在数组的原型pro…

✌2024/4/3—力扣—字符串转换整数

代码实现&#xff1a; int myAtoi(char *str) {long ret 0;int flag 1; // 默认正数// 去除空格及判断符号位while (*str ) {str;}if (*str -) {flag -1;str;} else if (*str ) {str;}// 排除非数字的情况if (*str < 0 || *str > 9) {return 0;}while (*str > …

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑灵活爬坡产品的虚拟电厂两阶段分布鲁棒优化运营策略》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

深入理解指针2:数组名理解、一维数组传参本质、二级指针、指针数组和数组指针、函数中指针变量

目录 1、数组名理解 2、一维数组传参本质 3、二级指针 4、指针数组和数组指针 5、函数指针变量 1、数组名理解 首先来看一段代码&#xff1a; int main() {int arr[10] { 1,2,3,4,5,6,7,8,9,10 };printf("%d\n", sizeof(arr));return 0; } 输出的结果是&…

前端师傅裸辞离开,留下我奋斗在前端一线...

原因 我在半年前入职xxxx&#xff0c;遇见了我的贵人&#xff0c;6年前端经验的程序员&#xff0c;具体信息不多说&#xff0c;从我入公司就是跟在他屁股后面学习&#xff0c;基本有问必答对我前端技术的提升简直可以用外挂形容&#xff0c;最近公司动荡不用说&#xff0c;基本…

30-ORM:CURD神器GORM包介绍及实战

目前&#xff0c;GitHub上 star数最多的是GORM&#xff0c;它也是当前Go项目中使用最多的ORM。 GORM基础知识介绍 GORM是Go语言的ORM包&#xff0c;功能强大&#xff0c;调用方便。像腾讯、华为、阿里这样的大厂&#xff0c;都在使用GORM来构建企业级的应用。 功能全。使用O…

gitcode 配置 SSH 公钥

在 gitcode 上配置SSH公钥后&#xff0c;可以通过SSH协议安全地访问远程仓库&#xff0c;无需每次都输入用户名和密码。以下是配置SSH公钥的步骤&#xff1a; 5分钟解决方案 用 OpenSSH公钥生成器 生成 公钥和私钥&#xff0c;私钥文件&#xff08;id_rsa&#xff09;下载&am…

Linux——静态库 共享库

1.库文件 1).库文件 库是一组预先编译好的方法的集合; Linux系统存储库的位置一般在/lib 和 /usr/lib (64位系统/usr/lib64) 库的头文件放在/usr/include 2).库的分类 静态库:libxxx.a(命名规则) 共享库:libxxx.so(命名规则) 3).准备文件: //add.c int add(int x,int y) { re…

基于springboot+vue+Mysql的学习平台

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

cpolar 隧道的使用

理论知识&#xff1a; cpolar是一种安全的内网穿透云服务&#xff0c;它将内网下的本地服务器通过安全隧道暴露至公网。使得公网用户可以正常访问内网服务&#xff0c;是一款内网穿透软件。只需一行命令&#xff0c;就可以将内网站点发布至公网&#xff0c;方便给客户演示。 参…

实验笔记之——Gaussian-SLAM测试与配置

之前博客对基于3DGS的SLAM进行了调研 学习笔记之——3D Gaussian Splatting及其在SLAM与自动驾驶上的应用调研_3d gaussian splatting slam-CSDN博客文章浏览阅读4.6k次&#xff0c;点赞49次&#xff0c;收藏82次。论文主页3D Gaussian Splatting是最近NeRF方面的突破性工作&a…

【蓝桥杯选拔赛真题56】C++求位数 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解

目录 C求位数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C求位数 第十四届蓝桥杯青少年创意编程大赛C选拔赛真题 一、题目要求 1、编程实现 给定一个正整数N(1<N<10^8)&#…

【Spring Security】3.底层原理

文章目录 一、引入二、Filter1&#xff09;DelegatingFilterProxy2&#xff09;FilterChainProxy3&#xff09;SecurityFilterChain4&#xff09;Multiple SecurityFilterChain 一、引入 官方文档&#xff1a;Spring Security的底层原理 Architecture&#xff1a;整个SpringS…

存储(一)

海量数据下的分布式事务&#xff1f; 单体项目中 只需要关系型数据库来保证ACID 就行。但是分布式情况下&#xff0c;数据库会分成多个库。想达到这种情况的ACID 是不可行的。 分布式下的事务一致 2PC、3PC、TCC、Saga 和 本地消息表 &#xff08;单机&#xff0c;性能好&…

[每日算法 - 阿里机试] leetcode739. 每日温度

入口 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台备战技术面试&#xff1f;力扣提供海量技术面试资源&#xff0c;帮助你高效提升编程技能&#xff0c;轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/daily-temperatures/descr…

ChatGPT基础(一) GPT的前世今生

文章目录 GPT模型简史GPT系列模型ChatGPT的应用 最近ChatGPT3.5可以免注册使用了&#xff0c;出来刨一波坟 说一说ChatGPT的来源和应用。 GPT模型简史 Generative pre-trained transformers(GPT)生成式预训练转换模型是大语言模型的一种(Large Language Model–>LLM)。它是…

带你了解CST的Frontend License Released【官方教程】

什么是Frontend License Released? 了解内部功能&#xff0c;有效使用License&#xff01; File>Release Frontend License 使用CST的过程中&#xff0c;应该见过右图的提示。这是长期没有在CST中进行Modeling、仿真分析设置等Pre-Processing操作&#xff0c;或者从结果…