专栏首页算法修养把Asp.Net Core 2.0部署在Linux上,使用Nginx代理服务器,并且用Systemctl命令以服务的方式监听项目

把Asp.Net Core 2.0部署在Linux上,使用Nginx代理服务器,并且用Systemctl命令以服务的方式监听项目

在Linux上部署.net core 2.0程序:

第一步:配置Nginx代理

在/etc/nginx/sites-available/default 中添加   

server {
        listen 80;
        location /{
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        }
}

这样,访问80端口,就可以直接访问到localhost:5000端口了

第二步:如果一台服务器里要运行多个站点,就要配置Nginx 按照域名转发

server {
        listen 80;
        server_name test1.api.com;
        location /{
        proxy_pass http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        }
}

server {
        listen 80;
        server_name test2.api.com;
        location /{
        proxy_pass http://localhost:5001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        }
}

这样的话,通过域名 test1.api.com:80 访问就是localhost:5000的站点,通过域名test2.api.com:80 访问的就是localhost:5001的站点

/etc/nginx/nginx.conf 中的http{}中加入:

 include /etc/nginx/sites-enabled/*;

测试新增的配置是否正确

nginx -t

重新加载配置

nginx -s reload

第三步:设置守护进程

设置守护进程有很多方法,这里介绍利用Linux中的系统服务管理工具 Systemctl 。也是很方便的。

在/etc/systemd/system/ 文件夹下,新建一个test.service

[Unit]
Description = CNBlogs.ZzkService running on Ubuntu

[Service]
WorkingDirectory = /test
ExecStart =/usr/bin/dotnet /test/bin/Debug/netcoreapp2.0/CNBlogs.ZzkService.WebApi.dll
Restart = always
RestartSec = 3
SyslogIdentifier = dotnet-example
User = root
Environment = ASPNETCORE_ENVIRONMENT=Production

Environment = DOTNET_PRINT_TELEMETRY_MESSAGE=false

ExecStart 是运行命令

RestartSec 是每3秒检查一次

启动服务

systemctl enable test.service
systemctl start test.service

查看服务运行状态

systemctl status test.service

会出现类似下面的状态,表示运行正确:

● kestrel-hellomvc.service - Example .NET Web API Application running on Ubuntu
    Loaded: loaded (/etc/systemd/system/kestrel-hellomvc.service; enabled)
    Active: active (running) since Thu 2016-10-18 04:09:35 NZDT; 35s ago
Main PID: 9021 (dotnet)
    CGroup: /system.slice/kestrel-hellomvc.service
            └─9021 /usr/local/bin/dotnet /var/aspnetcore/hellomvc/hellomvc.dll

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LeetCode 190. Reverse Bits (位运算)

    ShenduCC
  • pta 习题集 5-15 数组循环左移

    本题要求实现一个对数组进行循环左移的简单函数:一个数组aa中存有nn(>0>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移mm(≥0≥0)个位...

    ShenduCC
  • CodeForces 156A Message(暴力)

    A. Message time limit per test 2 seconds memory limit per test 256 megabyt...

    ShenduCC
  • Nginx+Tomcat实现负载均衡

    在103和117上分别部署相同的Tomcat程序,修改index.jsp页面,把内容改为各自的IP地址。

    会跳舞的机器人
  • 人工智能面试题86问,新手找工作必备!

    祈澈菇凉
  • 使用 Apache 搭建 VPC 服务器代理

    本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

    soulteary
  • python: 自动安装缺失库文件

    Note: os.system('所需指令') 还可以完成许多其他任务,非常强大。

    JNingWei
  • CentOS yum安装Apache + PHP + Tomcat7 + MySQL

    可以参考下文在CentOS安装Apache + PHP + Tomcat7 + MySQL。 ---------------------------------...

    I Tech You_我教你
  • Flutter中的AppBar、TabBar和TabController——顶部切换栏是如何实现的

    实际上,AppBar 这个组件有许多的属性,我们通过这些属性,可以用来定义顶部导航栏的各种样式。下面我将为你一一说明这些属性的作用:

    拉维
  • WordPress数据库垃圾清理缓存插件

    前段时间博主更换了7B2的senven主题,但是部分页面却出现显示异常,由于之前的魔改 ✗额✗ 。新主题可能和之前的数据表冲突了,首先我们来学习一下WordPr...

    AlexTao

扫码关注云+社区

领取腾讯云代金券