zoukankan      html  css  js  c++  java
  • 把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
  • 相关阅读:
    Day4
    Day 4 -E
    Day4
    Day4
    Day4
    Day4
    Day4-F-产生冠军 HDU
    Day4
    Day4-B-最短路径问题 HDU3790
    HackerRank
  • 原文地址:https://www.cnblogs.com/dacc123/p/8257450.html
Copyright © 2011-2022 走看看