.net core入门之web应用

本文介绍如何使用Visual Studio 2015部署ASP.NET Core应用程序,并通过Nginx实现反向代理。包括解决端口冲突、设置开机自启及异常重启等常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

其实铺垫了那么久,终于到重点了,迫不及待了吧,那么我们用重量级工具Visual Studio 2015,安装Update3, 安装DotNetCore.1.0.1-VS2015Tools.Preview2.0.2.exe,打开Visual Studio 2015 vs模板vs模板 点击,创建,修改自寄宿代码,

  var host = new WebHostBuilder()
                .UseKestrel()
                .UseStartup<Startup>()
                .UseUrls("http://*:5000/")    //配置监听端口
                .Build();

            host.Run();

编译并发布到开发环境,并上传到服务器/test目录下,执行命令

# cd test
# dotnet WebApplication1.dll
Hosting environment: Production
Content root path: /test
Now listening on: http://*:5000
Application started. Press Ctrl+C to shut down.

访问http://192.168.91.128:5000/ webapplication 可以看到运行成功了,Control+Z取消web网站运行,可知我们的网站运行在bash中,那么web网站 可不可以开机启动,并且异常重启吗? 当然可以,这就用上我们我们上节说到的守护进程了,添加文件WebApplication1.conf

[program:WebApplication1]
command=dotnet WebApplication1.dll ; 运行程序的命令
directory=/test ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/var/log/WebApplication1.err.log ; 错误日志文件
stdout_logfile=/var/log/WebApplication1.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行

上传至/etc/supervisord.d,执行命令

# supervisorctl reload
Restarted supervisord

访问http://192.168.91.128:9001/ 输入图片说明 打开/var/log/WebApplication1.err.log,发现 Unhandled Exception: System.AggregateException: One or more errors occurred. (Error -98 EADDRINUSE address already in use) ---> Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvException: Error -98 EADDRINUSE address already in use 由此可知此端口已被占用,查看谁占用了此端口

# ss -lnp | grep 5000
tcp    LISTEN     2      128      :::5000                 :::*                   users:(("dotnet",pid=8210,fd=204))
# kill 8210

发现一直kill不掉,执行命令

# systemctl status 8210
● session-1.scope - Session 1 of user root
   Loaded: loaded
  Drop-In: /run/systemd/system/session-1.scope.d
           └─50-After-systemd-logind\x2eservice.conf, 50-After-systemd-user-sessions\x2eservice.conf, 50-Description.conf, 50-SendSIGHUP.conf, 50-Slice.conf
   Active: active (running) since 六 2016-09-17 05:43:12 CST; 6h ago
   CGroup: /user.slice/user-0.slice/session-1.scope
           ├─ 2262 sshd: root@pts/0
           ├─ 2266 -bash
           ├─ 8210 dotnet WebApplication1.dll
           └─12212 systemctl status 8210
# systemctl kill session-1.scope

访问http://192.168.91.128:9001/ supervisor控制台 排查文章向上,可以看到取Application started. Press Ctrl+C to shut down, 但是我按了Ctrl+Z,实际上没进行shut down

我们都知道nginx是一个轻量级高性能web反向代理服务器,做缓存和负载均衡都很方便, 下面来安装,执行命令

# yum install -y nginx
# systemctl start nginx.service
# systemctl enable nginx.service
# systemctl status nginx.service
# nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since 六 2016-09-17 12:59:37 CST; 30s ago
 Main PID: 4197 (nginx)
   CGroup: /system.slice/nginx.service
           ├─4197 nginx: master process /usr/sbin/nginx
           └─4198 nginx: worker process

由此可以看到nginx启动成功了,访问http://192.168.91.128/ nginx配置成功 查看nginx配置文件位置

# nginx -V #查看配置参数
--conf-path=/etc/nginx/nginx.conf

注释掉原有配置,添加配置

 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;
        }
    }

执行命令

# nginx -t   #测试配置文件
# nginx -s reload  #重新加载配置文件

将nginx添加至SELinux的白名单。

yum install policycoreutils-python

  sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

  sudo semodule -i mynginx.pp

访问http://192.168.91.128/ webapplication

转载于:https://my.oschina.net/weidedong/blog/747431

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值