From 98601007b2f5705fad1f18769cc2b939a870ab6a Mon Sep 17 00:00:00 2001 From: queyongzhen <14089735+queyongzhen@user.noreply.gitee.com> Date: Sun, 24 Nov 2024 20:16:57 +0800 Subject: [PATCH] =?UTF-8?q?11.22=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0241118(Linus\351\203\250\347\275\262).md" | 90 +++++++++++++++++++ ...241120(Debian\351\203\250\347\275\262).md" | 43 +++++++++ .../20241122(\344\274\240\345\217\202).md" | 83 +++++++++++++++++ 3 files changed, 216 insertions(+) create mode 100644 "\351\230\231\346\263\263\347\217\215/20241118(Linus\351\203\250\347\275\262).md" create mode 100644 "\351\230\231\346\263\263\347\217\215/20241120(Debian\351\203\250\347\275\262).md" create mode 100644 "\351\230\231\346\263\263\347\217\215/20241122(\344\274\240\345\217\202).md" diff --git "a/\351\230\231\346\263\263\347\217\215/20241118(Linus\351\203\250\347\275\262).md" "b/\351\230\231\346\263\263\347\217\215/20241118(Linus\351\203\250\347\275\262).md" new file mode 100644 index 0000000..ac1fb2f --- /dev/null +++ "b/\351\230\231\346\263\263\347\217\215/20241118(Linus\351\203\250\347\275\262).md" @@ -0,0 +1,90 @@ +# MVC项目部署指南 +## 1. 域名解析 +- 确保域名已备案,并在网站解析域名。 + + +## 2. 访问服务器 +- 使用快捷键`Win + R`打开运行窗口。 +- 输入`cmd`打开命令提示符。 + + +## 3. 域名解析测试 +- 测试域名解析是否生效。 + + +## 4. 登录服务器 +- 使用SSH登录:`ssh root@域名`。 + + +## 5. 安装Nginx +- 安装命令:`apt install -y nginx`。 +- 测试服务状态:`systemctl status nginx`。 + + +## 6. 安装.NET SDK +- 从官网下载8.0版本SDK。 +- 针对Debian系统,执行以下命令安装: + ```bash + wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb + dpkg -i packages-microsoft-prod.deb + rm packages-microsoft-prod.deb + apt update + apt-get install -y dotnet-sdk-8.0 + +* 测试安装是否成功:dotnet --version + + +## 7. 创建项目目录 +* 在 `/var/www`下创建项目文件夹: +```bash +mkdir /var/www +cd /var/www +mkdir 域名文件夹 +cd 域名文件夹 +``` + +## 8. 创建MVC项目 +* 使用命令创建MVC项目:`dotnet new mvc -n 项目名称`。 + + +## 9. 编写并打包项目 +* 编写代码。 +* 打包项目:`dotnet publish`。 + + +## 10. 上传文件到服务器 +* 使用SCP上传:`scp -r * root@域名:/var/www/域名文件夹`。 + + +## 11. 运行项目 +* 运行项目:`dotnet 项目名称.dll`。 + + +## 12. 浏览器访问测试 +* 在浏览器中访问域名,检查是否显示拒绝访问。 + + +## 13. 服务器端测试 +* 使用 `curl`测试:`curl http://localhost:5000`。 + + +## 14. 配置Nginx反向代理 +* 编辑Nginx配置文件: +```bash + cd /etc/nginx/conf.d/ + vim 域名.conf +``` + +* 配置内容如下: +```nginx +server { + listen 80; + server_name 域名; + location / { + proxy_pass http://localhost:5000; + } +} +``` + +* 检查配置语法:`nginx -t`。 +* 重载Nginx配置:`nginx -s reload`。 diff --git "a/\351\230\231\346\263\263\347\217\215/20241120(Debian\351\203\250\347\275\262).md" "b/\351\230\231\346\263\263\347\217\215/20241120(Debian\351\203\250\347\275\262).md" new file mode 100644 index 0000000..728c778 --- /dev/null +++ "b/\351\230\231\346\263\263\347\217\215/20241120(Debian\351\203\250\347\275\262).md" @@ -0,0 +1,43 @@ +# Debian环境下部署MVC的先决条件 +## 1. 服务器运行环境配置 +- **安装SDK包管理器**: + - 从官网下载配置文件: + ```bash + wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb + ``` + - 注册配置文件: + - 更新软件源: + ```bash + apt update + ``` + - 安装SDK: + ```bash + apt-get install -y dotnet-sdk-8.0 + ``` + +- **Linux软件安装方法**: + - 通过包管理器安装。 + - 使用二进制文件安装。 + - 通过源代码编译安装。 + + +## 2. 程序文件上传 +- **使用SCP命令**: +```bash + scp -r ./* root@域名:/var/www/文件名 +``` + +* 使用XFTP工具。 + + +## 3. Nginx反向代理配置 +- **配置文件示例:** +```nginx +server { + listen 80; # 监听端口 + server_name 域名; # 服务器域名 + location / { + proxy_pass http://localhost:5000; # 代理到本地5000端口 + } +} +``` \ No newline at end of file diff --git "a/\351\230\231\346\263\263\347\217\215/20241122(\344\274\240\345\217\202).md" "b/\351\230\231\346\263\263\347\217\215/20241122(\344\274\240\345\217\202).md" new file mode 100644 index 0000000..085c441 --- /dev/null +++ "b/\351\230\231\346\263\263\347\217\215/20241122(\344\274\240\345\217\202).md" @@ -0,0 +1,83 @@ +# 修复安全漏洞 + +## 准备软件包升级 +- **安装可用更新** +- **自动解决依赖关系** +- **提高系统安全性** +- **保持系统稳定** +- **自动化和一致性** +- **维护软件的兼容性** +- **获取新功能和改进** + +## 更新软件和补丁 +执行命令:`apt upgrade -y` +- **了解这一步的实际用处意义**:确保系统和软件包是最新的,以修复已知的安全漏洞和提升性能。 + +## 传参 + +### 简单传参(单个) +```csharp +public IActionResult Edit(int id){ + return Content(id.ToString()); +} +``` + +- 如有多个简单传参形式,则需修改Program.cs中的pattern里的值,例如: +```plaindext + pattern: "{controller=Home}/{action=Index}/{age?}"; +``` + +```csharp +public IActionResult Edit(int age){ + return Content(age.ToString()); +} +``` + + +### 复杂传参 +#### 第一步 +```csharp +[HttpPost] +public IActionResult Create([FromBody]Students students){ + return Content(JsonSerializer.Serialize(students)); +} +``` +- 该方式需创建视图中创建一个与控制器相对应对视图文件(书写样式时可用),但还是在Postman软件中查看(前提要运行该程序F5)。 + + + +#### 第二步 +```csharp +// [HttpPost] +public IActionResult Create([FromBody]Students students){ + return View(students); +} +``` + +- 需创建一个类,这个类里有属性 +```csharp +public class Students{ + public string Name{get;set;}=null!; + public string Age{get;set;}=null!; + public string Weight{get;set;}=null!; + public string Height{get;set;}=null!; +} +``` + + +#### 第三步 +- 因该方法在浏览器中无法查看,需到Postman这个软件中查看结果。 + +**在控制器中构造对象并传递给视图** +```csharp +public IActionResult Index(){ + var students=new Students{ + Name="零零", + Age="33", + Weight="55", + Height="34" + }; + return View(students); +} +``` + -- Gitee