详解将ASP.NET Core应用程序部署至生产环境中(CentOS7)
在本攻略中,我们将深入讲解如何将ASP.NET Core应用程序部署至生产环境中的CentOS7服务器,并提供两个示例说明。
准备工作
在开始部署ASP.NET Core应用程序之前,您需要完成以下准备工作:
- 在CentOS7服务器上安装.NET Core运行时环境。
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install dotnet-sdk-3.1
- 在CentOS7服务器上安装Nginx。
sudo yum install epel-release
sudo yum install nginx
部署步骤
以下是将ASP.NET Core应用程序部署至生产环境中的CentOS7服务器的步骤:
- 在CentOS7服务器上创建应用程序文件夹。
sudo mkdir /var/www/myapp
- 将应用程序文件夹的所有权分配给Nginx用户。
sudo chown -R nginx:nginx /var/www/myapp
- 在应用程序文件夹中上传应用程序文件。
您可以使用FTP或SCP等工具将应用程序文件上传到应用程序文件夹中。
- 在应用程序文件夹中创建systemd服务文件。
sudo nano /etc/systemd/system/myapp.service
在myapp.service文件中添加以下内容:
[Unit]
Description=My ASP.NET Core Application
After=network.target
[Service]
WorkingDirectory=/var/www/myapp
ExecStart=/usr/bin/dotnet /var/www/myapp/MyApp.dll
Restart=always
RestartSec=10
SyslogIdentifier=myapp
User=nginx
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
在上面的代码中,我们创建了一个名为myapp的systemd服务,它将在/var/www/myapp文件夹中运行MyApp.dll文件,并在需要时自动重启。
- 启动myapp服务并设置开机自启。
sudo systemctl start myapp
sudo systemctl enable myapp
- 配置Nginx反向代理。
sudo nano /etc/nginx/conf.d/myapp.conf
在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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
在上面的代码中,我们创建了一个名为myapp的Nginx虚拟主机,它将代理所有来自example.com的HTTP请求,并将它们转发到ASP.NET Core应用程序运行的端口5000。
- 重新加载Nginx配置文件。
sudo systemctl reload nginx
示例一:部署ASP.NET Core Web API应用程序
以下是部署ASP.NET Core Web API应用程序的示例代码:
- 在应用程序文件夹中上传应用程序文件。
您可以使用FTP或SCP等工具将应用程序文件上传到应用程序文件夹中。
- 在应用程序文件夹中创建systemd服务文件。
sudo nano /etc/systemd/system/myapi.service
在myapi.service文件中添加以下内容:
[Unit]
Description=My ASP.NET Core Web API
After=network.target
[Service]
WorkingDirectory=/var/www/myapi
ExecStart=/usr/bin/dotnet /var/www/myapi/MyApi.dll
Restart=always
RestartSec=10
SyslogIdentifier=myapi
User=nginx
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
在上面的代码中,我们创建了一个名为myapi的systemd服务,它将在/var/www/myapi文件夹中运行MyApi.dll文件,并在需要时自动重启。
- 启动myapi服务并设置开机自启。
sudo systemctl start myapi
sudo systemctl enable myapi
- 配置Nginx反向代理。
sudo nano /etc/nginx/conf.d/myapi.conf
在myapi.conf文件中添加以下内容:
server {
listen 80;
server_name api.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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
在上面的代码中,我们创建了一个名为myapi的Nginx虚拟主机,它将代理所有来自api.example.com的HTTP请求,并将它们转发到ASP.NET Core Web API应用程序运行的端口5000。
- 重新加载Nginx配置文件。
sudo systemctl reload nginx
示例二:部署ASP.NET Core MVC应用程序
以下是部署ASP.NET Core MVC应用程序的示例代码:
- 在应用程序文件夹中上传应用程序文件。
您可以使用FTP或SCP等工具将应用程序文件上传到应用程序文件夹中。
- 在应用程序文件夹中创建systemd服务文件。
sudo nano /etc/systemd/system/mymvc.service
在mymvc.service文件中添加以下内容:
[Unit]
Description=My ASP.NET Core MVC
After=network.target
[Service]
WorkingDirectory=/var/www/mymvc
ExecStart=/usr/bin/dotnet /var/www/mymvc/MyMvc.dll
Restart=always
RestartSec=10
SyslogIdentifier=mymvc
User=nginx
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
在上面的代码中,我们创建了一个名为mymvc的systemd服务,它将在/var/www/mymvc文件夹中运行MyMvc.dll文件,并在需要时自动重启。
- 启动mymvc服务并设置开机自启。
sudo systemctl start mymvc
sudo systemctl enable mymvc
- 配置Nginx反向代理。
sudo nano /etc/nginx/conf.d/mymvc.conf
在mymvc.conf文件中添加以下内容:
server {
listen 80;
server_name www.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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
在上面的代码中,我们创建了一个名为mymvc的Nginx虚拟主机,它将代理所有来自www.example.com的HTTP请求,并将它们转发到ASP.NET Core MVC应用程序运行的端口5000。
- 重新加载Nginx配置文件。
sudo systemctl reload nginx
结
在本攻略中,我们深入讲解了如何将ASP.NET Core应用程序部署至生产环境中的CentOS7服务器,并提供了两个示例说明。通过遵循这些步骤,您应该能够成功将ASP.NET Core应用程序部署至生产环境中,并通过Nginx反向代理提供服务。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解将ASP.NET Core应用程序部署至生产环境中(CentOS7) - Python技术站