下面是CentOS7系统下搭建.NETCore2.0+Nginx+Supervisor环境的完整攻略。
1. 安装.NET Core 2.0首先,我们需要在CentOS 7上安装.NET Core 2.0,采用的是官方提供的yum源方式安装。具体命令如下:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.0.0
执行完毕后,可以通过运行以下命令验证.NET Core是否成功安装:
dotnet --version
如果输出了.NET Core 2.0的版本信息,则安装成功。
2. 安装Nginx接下来,我们需要安装Nginx作为我们的Web服务器。可以执行以下命令来安装:
sudo yum install epel-release
sudo yum install nginx
安装完成后,可以使用以下命令来启动Nginx服务:
sudo systemctl start nginx
如果Nginx启动成功,可以在浏览器中输入服务器的IP地址,即可看到Nginx的欢迎页面。
3. 配置Nginx反向代理接下来,我们需要将Nginx配置为反向代理,以便我们的.NET Core应用程序可以通过Nginx进行访问。在/etc/nginx/conf.d/目录下,新建一个名为myapp.conf的文件,并加入以下内容:
server {
listen 80;
server_name example.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;
}
}
上面的配置指令会将所有的HTTP请求都代理到本地的5000端口,即我们将在下一步中为.NET Core应用程序创建的Kestrel服务器所使用的端口。
自由互联热门推荐:PDF电子发票识别软件,一键识别电子发票并导入到Excel中!10大顶级数据挖掘软件!人工智能的十大作用!重新加载配置文件,以便Nginx重新启动并从新的myapp.conf文件中读取配置:
sudo nginx -s reload
4. 安装Supervisor
为了方便管理.NET Core应用程序,我们使用Supervisor将其作为后台服务启动。可以使用以下命令来安装Supervisor:
sudo yum install supervisor
5. 具体的.NET Core应用程序
在这个示例中,我们将编写一个简单的ASP.NET Core Web应用程序,并将其部署到我们的服务器上。在服务器上的任意位置上使用以下命令创建一个名为myapp的ASP.NET Core项目:
dotnet new web --name myapp --output /var/www/myapp
通过将ASP.NET Core应用程序的根目录指定为/var/www/myapp,我们完成了应用程序的创建。
接下来,我们需要设置Supervisor来自动启动并管理我们的应用程序。在/etc/supervisor/conf.d/目录下,创建一个名为myapp.conf的文件,并加入以下内容:
[program:myapp]
command=/usr/bin/dotnet /var/www/myapp/myapp.dll
directory=/var/www/myapp
autostart=true
autorestart=true
startretries=3
stdout_logfile=/var/log/myapp.log
stderr_logfile=/var/log/myapp.err.log
stdout_logfile_maxbytes=5MB
stderr_logfile_maxbytes=5MB
其中,myapp表示应用程序的名称,command项指定了我们的应用程序的启动命令,directory项指定了应用程序的根目录,stdout_logfile和stderr_logfile分别指定了应用程序的标准输出和错误输出的日志文件路径。
重新加载配置文件以启动Supervisor管理服务:
sudo systemctl reload supervisord
重启Supervisor以应用新配置:
sudo systemctl restart supervisord
现在,应用程序应该已经在后台运行了。可以使用以下命令来查看当前正在运行的Supervisor服务:
sudo supervisorctl status
6. 验证
最后,我们需要验证在如上几个步骤中安装的所有服务是否都已正确配置。在浏览器中输入服务器的IP地址,即可访问我们的ASP.NET Core应用程序了。可以从应用程序的日志文件中获取详细的错误信息,并在必要时进行调试。
以上就是CentOS 7下搭建.NETCore2.0+Nginx+Supervisor环境的完整攻略。