Linux 服务器搭建配置,开发效率一飞冲天 - Centos 篇

这篇具有很好参考价值的文章主要介绍了Linux 服务器搭建配置,开发效率一飞冲天 - Centos 篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,我是比特桃。最近白嫖了一台 Centos 云服务器,用来做日常开发,特此记录一下搭建配置的过程。
我之前有篇文章是基于 Ubuntu 的:Linux 服务器搭建配置,开发效率一飞冲天 - Ubuntu 篇
如同个人电脑一样,每个人都有各自的喜好及需求。我个人用的所有终端,都遵循大道至简的基本思想。其含义就是:软件能不多装就不多装,能简化就尽量简化。一切原生化,只在乎让它干活的专注性,不希望有太多花里胡哨的东西。

一、安全加固

行走江湖之前,必须把防护工作做好。要不然很容易被人攻击,到时候备份迁移得不偿失。我们先更新一下系统:

sudo yum clean all
sudo yum update -y
sudo reboot

所有人都知道 Linux 服务器的 ssh 默认端口是 22,超级管理员账号是 root。所以我们先把这些默认值的给改了,并且不允许密码登录,只通过秘钥认证:

yum list installed | grep openssh-server
// 如果没有安装
yum install openssh-server
vim /etc/ssh/sshd_config

将相关配置改成如下所示:

Port 666
PasswordAuthentication no
UseDNS no
PubkeyAuthentication yes

在让配置生效之前,我们现将手头的这台电脑的公钥给传上去。(不然待会自己都没法访问了,别问我怎么知道的。)

vim ~/.ssh/authorized_keys

创建开机自启,并重启将配置生效。

systemctl enable sshd.service
systemctl restart sshd

除此之外,云服务器还需要在云厂商防火墙的基础上,再使用系统自带的防火墙做二道防护。Centos 自带的是 Firewall,Ubuntu自带的是 ufw。

firewall-cmd --state
systemctl start firewalld.service
// 开机自启
systemctl enable firewalld.service
// 开放/取消 防火墙端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent
// 查看目前防火墙规则
firewall-cmd --list-ports
// 载入防火墙配置
firewall-cmd --reload      
systemctl restart firewalld.service

二、原生软件

我们将常用且不会随意切换变动的软件,通过原生安装。

// Java
yum -y install java-11-openjdk

// Maven
yum -y install maven

// 切换默认 Java 版本
update-alternatives --config java

// Node
curl -fsSL https://rpm.nodesource.com/setup_16.x | sudo bash -
yum -y install nodejs

// Nginx
sudo yum -y install nginx
sudo systemctl enable nginx
sudo service nginx start # 启动 nginx 服务
sudo service nginx stop # 停止 nginx 服务
sudo service nginx restart # 重启 nginx 服务
sudo service nginx reload # 重新加载配置

其实这些软件也完全可以通过容器安装,但我个人需求是通过这台服务器的 Gitlab Runner 实现最基本的自动化部署,所以需要这些软件原生化。

sudo yum install gitlab-runner

Gitlab Runner 可以实现注册到 Gitlab 上,通过脚本实现自动部署应用到服务器上。比如我可以将这台服务器上的 Runner,监听我 Gitlab 中某一个分支,一旦更新代码即可自动在这台服务器上实现更新部署。关于如何实现服务器自动化部署,可以参考我这篇文章:基于Gitlab Runner 快速实现 Gitlab 自动部署

三、容器软件

下面我们安装容器的基石 Docker,可直接参考官网:

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

由于我这台机器是 VSP,大容量的磁盘我挂载到了 /data目录下。其 Centos 系统自带的目录容量很小,Docker 默认将容器存储路径放到了/var/lib/docker。我们后面会有大量的容器使用,这会存在系统盘爆满的隐患。所以需要修改 Docker 默认的存储路径:

// 将原目录复制到想要切换的位置
cp -a /var/lib/docker /data/docker/
// 备份
mv -u /var/lib/docker /var/lib/docker.bak
// 关闭 Docker
sudo systemctl stop docker
// 创建软连接
sudo ln -fs /store/software/docker /var/lib/docker
// 重启生效
sudo systemctl start docker
# or
sudo service docker start

然后就可以开心的部署容器了,这块其实大家根据自身需求来就行,常见的 Docker 命令可以参考我这篇文章:Docker实用命令手册。
下面是我这次 Centos 需要用到的容器:
Gitlab,可参考官网:

// 设置 Gitlab 容器映射本机路径
export GITLAB_HOME=/data/software/gitlab
sudo docker run --detach \
  --hostname baidu.com \
  --publish 8001:8001 --publish 8003:80 --publish 8002:22 \
  --name gitlab \
  --restart always \
  --volume $GITLAB_HOME/config:/etc/gitlab \
  --volume $GITLAB_HOME/logs:/var/log/gitlab \
  --volume $GITLAB_HOME/data:/var/opt/gitlab \
  --shm-size 256m \
  gitlab/gitlab-ce:latest

这里说明一下这三个端口,8001是https,8003是80端口,8002是ssh端口。8003是我们刚启动容器后,进入调试用的,默认账号root密码执行下面命令查看。

docker exec -it 容器名字或容器ID grep 'Password:' /etc/gitlab/initial_root_password

然后进入容器,配置 https 证书、邮件服务、功能配置等。

docker exec -it gitlab /bin/bash

编辑/etc/gitlab/gitlab.rb文件,还记得我们映射的 https 和 ssh 端口嘛,就是在这里修改成我们需要的 8001、8002,这样用户在网页上直接复制的时候也是这俩地址。Gitlab 的所有配置都通过这个文件,其它文件不用动。

// 将gitlab.rb配置文件生效,如果有错误可看到非常明确的日志进行修改
gitlab gitlab-ctl reconfigure
// 重启 gitlab
gitlab gitlab-ctl restart
// 进入控制台,测试邮件服务是否可用
gitlab-rails console
Notify.test_email('收件人邮箱', 'title', 'body').deliver_now

另外,由于 Gitlab 平时太占用内存了,可以尝试官方的建议进行内存优化:在内存受限的环境中运行

MongoDB:

docker run -d --name mongo --restart=always -p 8016:27017\
      -e MONGO_INITDB_ROOT_USERNAME=admin \
      -e MONGO_INITDB_ROOT_PASSWORD=123456 \
      mongo --auth

禅道:

 docker run -it \
    -v /data/software/zentao:/data \
    -p 8018:80 \
    -e MYSQL_INTERNAL=false \
    -e ZT_MYSQL_HOST=172.18.56.66 \
    -e ZT_MYSQL_PORT=8004 \
    -e ZT_MYSQL_USER=root \
    -e ZT_MYSQL_PASSWORD=123456! \
    -e ZT_MYSQL_DB=zentao \
    -e PHP_MAX_EXECUTION_TIME=300 \
    -e PHP_POST_MAX_SIZE=512M \
    -e PHP_UPLOAD_MAX_FILESIZE=512M \
    -d hub.zentao.net/app/zentao:18.5 

四、总结

这是我周末刚装的一台云服务器的记录文章,如果对你有帮助的话,希望给我点个赞。有问题可以留言交流~文章来源地址https://www.toymoban.com/news/detail-675388.html

到了这里,关于Linux 服务器搭建配置,开发效率一飞冲天 - Centos 篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux中搭建和配置Apache服务器的详细步骤

    Apache是一款强大的开源Web服务器,广泛用于搭建和托管网站。在Linux系统上,搭建和配置Apache服务器是一个常见的任务,本文将提供详细的步骤和示例代码,帮助大家轻松完成这项任务。 首先,需要在Linux系统上安装Apache服务器。具体命令因Linux发行版而异,以下是一些示例:

    2024年02月03日
    浏览(63)
  • 『Linux』Linux环境搭建 | 阿里云云服务器白嫖 | Xshell环境配置

    🔥 博客主页 : 小羊失眠啦 🔖 系列专栏 : C语言 、 Linux 🌥️ 每日语录 : 时间,都是公平的,不公平的,只是现在的自己,对未来的自己。 ❤️ 感谢大家点赞👍收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家

    2024年02月08日
    浏览(64)
  • Linux高并发服务器开发---笔记1(环境搭建、系统编程、多进程)

    0613 首先这整个系列笔记属于笔记①:牛客校招冲刺集训营—C++工程师中的 第四章 笔记。 视频课链接: 视频1:Linux高并发服务器开发(40h); 视频2:第4章 项目制作与技能提升(录播)(26h30min); 视频课3: 第5章 高频考点与真题精讲(录播)中的 5.10-5.13 项目回顾 有个学

    2024年02月15日
    浏览(67)
  • 『Linux从入门到精通』第 ① 期 - Linux环境搭建 | 云服务器购买 | Xshell环境配置

    目录 💐专栏导读 💐文章导读  🌷Linux环境的搭建方式 🌷云服务器购买 🌷Xshell的安装及使用 🌺Xshell安装 🌺Xshell使用 🌷如何进行共享账号? 🌺创建账号 🌺设置密码 🌺如何登录自己的账号 🌺root与普通用户的区别 🌸作者简介: 花想云 ,在读本科生一枚,致力于 C/

    2024年02月01日
    浏览(72)
  • linux下MQTT服务器(EMQX)搭建及paho.mqtt.c客户端开发

    前言: MQTT 是一种基于客户端服务端架构的发布 / 订阅模式的消息传输协议。它的设计思想是轻巧、开放、 简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与 机器的通信( M2M )以及物联网环境( IoT )。        ---

    2024年02月06日
    浏览(72)
  • Linux中搭建FTP服务器,匿名用户访问、本地用户访问、虚拟用户访问(详细解答安装配置步骤)

    对于Linux搭建服务器步骤详解:可以基于匿名访问、本地用户访问、虚拟用户访问 FTP服务访问可分为三种 匿名用户:用户名为ftp或者anonymous,提供任意密码或无密码访问即可. 本地用户:要求有用户名和相对应密码,适用于使用者都是使用此服务器的人。 虚拟用户(出于安全

    2024年02月10日
    浏览(65)
  • C++项目——集群聊天服务器项目(一)项目介绍、环境搭建、Boost库安装、Muduo库安装、Linux与vscode配置

    今天开始想更新一个C++项目,实现一个 支持跨服务器通信、支持负载均衡的集群聊天服务器项目 。项目会应用muduo网络库、CMake编译、MySQL数据库、JSon序列化与反序列化、Redis消息订阅模式以及Nginx负载均衡功能。 有兴趣的宝可以跟我一起实操起来,巩固自己的C++学习吧~ 本项

    2024年04月14日
    浏览(61)
  • Linux系列:开发环境搭建:ubuntu图形界面安装samba服务器、SSH使用、mount -t cifs 挂载windows共享目录方法与问题解决

    samba一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。 通常linux开发环境要和windows平台进行文件交互,使用samba进行文件夹共享,这样会给开发带来很大的便利性,samba安装很简单,下面介绍一下在ubunt

    2024年02月21日
    浏览(73)
  • 搭建本地开发服务器

    :::warning 注意 在上一个案例的基础上添加本地开发服务器,请保留上个案例的代码。如需要请查看 Webpack 使用。 ::: 搭建本地开发服务器这一个环节是非常有必要的,我们不可能每次修改源代码就重新打包一次。这样的操作是不是太繁琐了。所以本地开发服务器的作用就能体

    2024年02月13日
    浏览(43)
  • 【Linux环境搭建】用云服务器搭建Linux环境

    目录 1. 我们为什么要学Linux 2. 云服务器购买 3. 远程连接云服务器 4. 如何创建新用户   5. 第一个Linux程序 总结: 写在最后: 作为一个程序员,你必须学好Linux,至于为什么,这个问题, 在我们日后的学习中,自然会慢慢展现出来,而校招对于Linux也有掌握的要求, 所以我们

    2024年02月03日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包