服务器基本环境部署

由于最近某个项目要实现从 0-1 部署上线,所以需要对服务器环境进行部署,需要记录一下
产品说需要支撑三十万用户,考虑公司运营情况(其他项目用户不到一千人)、项目复杂度、开发周期,决定采用单体架构部署,压力太大再做集群,另外虽然 CentOS 停止维护,并且有阿里、腾讯的国产操作系统,但还是不做小白鼠,任然采用 CentOS7

环境:CentOS7 + Java8 + Redis + MySQL + Nginx

安装

  1. centos 7 安装 mysql
  2. centos 7 安装 nginx,另外,如果需要启用 https 模块,需要加上 --with-http_v2_module 安装,否则后续需要重新编译,可能会导致配置文件被覆盖(本人就是,但是配置文件没有被覆盖,注意做好备份)
  3. centos 7 安装 redis

安全

听说之前公司被黑客搞过,赔了几万美金,我挺好奇怎么弄的,老板说不出大概,从那之后就有点 ptsd 哈哈哈,不过最基本的防护还是得做的

  1. 为 MySQL 配置 mysql 用户组,数据文件所属组配置为 mysql
  2. 为 nginx、redis 配置 www 用户组
  3. 修改 MySQL、redis 默认密码、端口、使用加强密码,其中 MySQL 禁止 root 用户远程登录,每个环境配置创建不同的用户,只能访问对应的 db
  4. nginx 由于不是 root 身份,所以在绑定低于 1024 端口的时候,会提示无法绑定,解决步骤
  5. nginx 配置只能通过域名方式访问,禁止 ip 直连,参照步骤
  6. nginx 通过不同的路径转发到不同的后端服务,云服务器控制台关闭除了 80 443 MySQL redis 的所有端口(其实 MySQL 和 redis 也应该关闭,但是开发、测试、生产都在一台机子上)
  7. 关闭 ssh 连接,使用密钥方式
  8. 项目中关于线上的配置使用外部配置,禁止提交到代码中

自启动

防止突发情况挂了,没有监控消息

  1. 将 MySQL 加入到 Systemctl
  2. nginx 和 redis 同理

....后续再补充

这是一段防爬代码块,我不介意文章被爬取,但请注明出处
console.log("作者主页:https://www.cnblogs.com/Go-Solo");
console.log("原文地址:https://www.cnblogs.com/Go-Solo/p/18331803");
posted @ 2024-07-30 11:16  Go_Solo  阅读(27)  评论(0编辑  收藏  举报