nginx部署.net core站点的方法

  

下面是详细讲解“nginx部署.net core站点的方法”的完整攻略。

一. 安装和配置.NET Core SDK

  1. 首先,需要在服务器上安装.NET Core SDK,这样才能运行.NET Core应用程序。

  2. 打开终端并运行以下命令安装.NET Core SDK:

shell
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get update
sudo apt-get install -y dotnet-sdk-3.1

  1. 安装完成后,为了确保.NET Core SDK已正确安装,请运行以下命令:

shell
dotnet --version

如果返回版本号,则证明.NET Core SDK已经成功安装。

二. 构建.NET Core应用程序

  1. 创建.NET Core项目,并确保它能够在本地正常运行。

  2. 确保您的.NET Core应用程序配置了正确的端口,一般使用80或8080端口。

  3. 在命令行中进入您的.NET Core应用程序目录,然后执行以下命令进行构建:

shell
dotnet publish -c Release

此命令会将您的应用程序编译生成发布版,并将其放置在bin/Release/netcoreapp3.1/publish目录中。

三. 安装Nginx

  1. 使用以下命令安装Nginx:

shell
sudo apt-get install -y nginx

  1. 安装完成后,启动Nginx服务:

shell
sudo service nginx start

四. 创建Nginx站点配置文件

  1. /etc/nginx/sites-available目录中创建一个新文件,用于配置应用程序的Nginx站点。

shell
sudo nano /etc/nginx/sites-available/your-domain.com

注意:将your-domain.com替换为您的实际域名。

  1. 将以下内容复制到此文件中:

```
server {
listen 80;
server_name your-domain.com; #将your-domain.com替换为您的域名

 location / {
     proxy_pass         http://localhost:5000; #将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;
 }

}
```

  1. 保存配置文件并退出编辑器。

五. 连接站点配置

  1. /etc/nginx/sites-enabled目录中创建一个符号链接,指向刚才创建的配置文件。

shell
sudo ln -s /etc/nginx/sites-available/your-domain.com /etc/nginx/sites-enabled/

注意:将your-domain.com替换为您的实际域名。

  1. 测试语法并重新加载nginx服务器配置:

shell
sudo nginx -t
sudo service nginx reload

六. 发布.NET Core应用程序

  1. 推回应用程序,然后在服务器中的/var/www/your-domain.com目录中创建一个新文件夹。

  2. .NET Core应用程序发布版的内容从本地复制到服务器中新建的文件夹中:

shell
scp -r /path/to/published/app/* user@yourserver:/var/www/your-domain.com/

注意:将/path/to/published/app替换为您的应用程序发布版的路径,并将user@yourserver替换为您的服务器用户名和IP地址。

  1. 确认应用程序的文件夹拥有应当拥有的权限:

shell
sudo chown -R www-data /var/www/your-domain.com

  1. 启动应用程序:

shell
dotnet your-app.dll

注意:将your-app.dll替换为您的.NET Core应用程序的启动文件。

现在,您已经成功将.Net Core应用程序部署到Nginx上,并且可以通过您的域名进行访问。

两条实际操作示例

示例一:使用默认端口80

  • 修改配置文件
sudo nano /etc/nginx/sites-available/your-domain.com
  server {
-     listen 80 default_server;
+     listen 80;
      server_name your-domain.com; #将your-domain.com替换为您的域名

      location / {
          proxy_pass         http://localhost:5000; #将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;
      }
  }
  • 测试语法并重新加载nginx服务器配置
sudo nginx -t
sudo service nginx reload
  • 启动应用程序
dotnet your-app.dll

示例二:使用自定义端口8080

  • 修改配置文件
sudo nano /etc/nginx/sites-available/your-domain.com
  server {
-     listen 80;
+     listen 8080;
      server_name your-domain.com; #将your-domain.com替换为您的域名

      location / {
          proxy_pass         http://localhost:5000; #将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;
      }
  }
  • 测试语法并重新加载nginx服务器配置
sudo nginx -t
sudo service nginx reload
  • 启动应用程序
dotnet your-app.dll --urls http://localhost:5000;http://your-domain.com:8080

注意:将your-app.dll替换为您的.NET Core应用程序的启动文件,并将your-domain.com替换为您的实际域名。此命令中,-urls参数用于指定应用程序的监听地址,包括本地地址http://localhost:5000和外部地址http://your-domain.com:8080,确保应用程序可以通过8080端口访问。

相关文章