Linux 系统初探的过程大约用了一周的时间, 这周基本将 Linux 系统安装, PostgreSQL 安装, Nginx 服务器安装, ASP.NET Core 应用部署都走了一遍. 由于以前没有怎么接触和使用过 Linux 平台上的东西, 因此在这一周也可以说是踩坑无数. 准备将这几天遇到的问题总结一下, 以备后查.
Linux 系统安装过程中遇到的问题
GUI 界面: Linux 系统版本选择了 CentOS, 从 CentOS 官网下载了 Dvd 版本的镜像文件, 因为也不了解 CentOS 文件 "全包" 与 "最小包" 区别, 就下载了 "全包". 大约有 4G 多, 在安装时使用了默认安装, 安装完成后发现是带 GUI 管理界面的, 一开始还以为自己是不是下得 Desktop 的版本, 后来又去官网详细了看了一下说明. CentOS 全包的默认安装就是带 GUI 管理界面的, 心想不愧是面向企业级的版本, 这么贴心. 用了一天, 感觉和 Windows Server 在操作方式上比较相似. 但感觉如果继续使用 GUI 就无法学习 Linux 系统命令了, 因此又使用最小包重装了系统.
CentOS 最小包: 使用最小包重新安装后发现这个最小安装, 内容还是真少. 基本什么都没有, 常用的功能包都需要安装, 像 "vim","lsof","wget","xorg-x11-xanth" 等都得现装.
PostgreSQL 安装过程中遇到的问题
PostgresSQL 的安装还是比较简单的, 只要按照 PostgreSQL 官网上提供的安装命令及步骤执行后就可以顺利的完成安装过程.
ASP.NET Core 应用部署遇到的问题.
Apache 服务器
因为 CentOS7 系统是稳定为主, 因此其软件库不提供软件最新版本. 默认软件源中通常都是最稳定的版本, 但是在部署 Apache 的反向代理服务器时就遇到了一些问题. CentOS7 上通过 yum 安装的 Apache 版本只有 5.4, 这个版本并不支持最新的反向代理功能 . 如果要将 Apache 配置为反向代理服务器, 需要将 Apache 升级至最新版本. 所以需要在升级前先安装第三方的软件源, 我是在安装了 CodeIT 库后, 才将 Apache 升级到最新版本. 接下来的安装就比较顺利了.
Nginx 服务器
安装 Nginx 服务器时, 存在与安装 Apache 时同样的问题. 就是需要先更新 CentOS 上的第三方软件源后, 再使用 yum 进行安装. 虽然 Nginx 也可以使用离线安装, 但我依然建议使用 yum 进行安装. 少了很多需要自己对 Nginx 进行配置的步骤. 不知道为什么 Nginx 服务器的默认配置文件中的用来运行服务的用户名是 "apache", 而不是 "nginx". 在启动服务前, 要记得修改 Nginx.conf 中的 "User" 设置为已经存在的用户, 如果不知道就干脆用 root. 总得来说, Nginx 的反向代理服务器配置还是要比 Apache 简单一些.
ASP.NET Core Runtime
ASP.NET Core Runtime 的安装可以参考微软提供的安装步骤, 微软针对 Linux 不同版本, 提供了相应的安装步骤. 不过目前的. Net Core 2.2 中的 Identity 好像有些问题, 原来在 2.1 好用的程序更新为 2.2 后, 出现了异常.
ASP.NET Core 应用
ASP.NET Core 应用在 Linux 上只能通过 Kestrel 服务器解析, Apache 或 Nginx 只是作为反向代理服务器使用. 我觉得这是出于最佳实践的考虑, 在安全与负载均衡方面, 反向代理是现在使用最多的解决方案. 因此. Net Core 从一开始就采取这种模式工作. 实际上在 Linux 内核没有原生支持. Net Core 时, 这也是一个折中的解决办法.
SELinux
在配置完 Nginx 服务器和部署完 ASP.NET Core 应用后, 还有一项工作是必须的. 就是关闭 SELinux 或是将 httpd_can_network_connect --> on , 否则两个进程间是无法直接通信的.
最后, 需要补充一点. 在这次的整个 Linux 平台探索的过程, 有好几次服务或应用表现不正常. 例如: 我刚刚部署完 ASP.NET Core 应用时, 在内网进行测试. 发现有的客户端上的浏览器正常, 有的客户端就会显示 "无法找到页面". 查看日志, 发现 Nginx 根本就没处理请求, 最后居然都是重启服务器解决的. 因此, 我觉得在配置 Linux 服务器都完成后, 最好重启一次服务器. 以上就是这次 Linux 平台初探过程的简单概括, 今后还要继续深入的学习 Linux 系统的相关知识外, 还要深入学习. Net Core 与 ABP 框架的相关知识. 真是一入 Linux 深似海, 从此 Windows 是路人.
来源: http://www.bubuko.com/infodetail-2964259.html