CentOS8安装Web相关服务

其它
2022年04月29日
3187

nginx

安装 nginx

shell
dnf install nginx

image-20220429103833719.png

输入 y 回车就可以安装了。

安装完毕后,控制台输入nginx -v,如果有版本号输出,证明我们的 nginx 已经安装完成。

image-20220429104043113.png

启动 nginx

shell
# 启动 nginx systemctl start nginx # 设置开机自动启动 nginx systemclt enable nginx

上面两条命令可以简化成一条

shell
# 设置开机自动启动 nginx,通过 --now 参数让 nginx 立即启动 systemctl enable --now nginx

通过 systemctl status nginx 来查看 nginx 的运行状态,出现以下界面,证明我们的 nginx 服务成功地运行起来了:

image-20220429104425101.png

active(running) 表示 nginx 当前的状态是运行中。

nginx 简单配置 web 服务

使用 whereis nginx 查看 nginx 服务所在目录。

image-20220429104642204.png

其中 /etc/nginx 是 nginx 配置相关的目录,/etc/nginx/.conf 是 nginx 的默认配置文件。我们可以看到在配置文件中,他会引入所有在 /etc/nginx/conf.d/ 目录下所有的 .conf 相关的配置文件:

image-20220429105011841.png

所以,我们可以直接在 /etc/nginx/conf.d 目录下管理我们的 web 服务。

shell
cd /etc/nginx/conf.d vi test.conf

输入以下内容:

plain-text
server { listen 443 ssl; server_name test.humandetail.com; root /home/www/test/dist; # ssl 证书 ssl_certificate /home/cert/test.humandetail.com.pem; ssl_certificate_key /home/cert/test.humandetail.com.key; # ssl 验证相关 ssl_session_timeout 5m; # 缓存有效期 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 加密算法 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 安全链接可选的加密协议 ssl_prefer_server_ciphers on; # 使用服务器端的首选算法 # gzip gzip on; #需要压缩的常见静态资源 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; #由于nginx的压缩发生在浏览器端而微软的ie6很坑爹,会导致压缩后图片看不见所以该选项是禁止ie6发生压缩 gzip_disable "MSIE [1-6]\."; #如果文件大于1k就启动压缩 gzip_min_length 1k; #以16k为单位,按照原始数据的大小以4倍的方式申请内存空间,一般此项不要修改 gzip_buffers 4 16k; #压缩的等级,数字选择范围是1-9,数字越小压缩的速度越快,消耗cpu就越大 gzip_comp_level 2; #启用应答头"Vary: Accept-Encoding" gzip_vary on; location / { try_files $uri $uri/ /index.html; } location /api { proxy_pass http://127.0.0.1:10086; } } server { listen 80; server_name test.humandetail.com; return 301 https://$server_name$request_uri; }

输入 nginx -t 可以查看配置是否正确

image-20220429112812486.png

出现上面的提示,就说明 nginx 的配置没有问题,使用 systemctl restart nginx 重启 nginx 服务,这样我们就能正常访问了。

MySQL

使用 dnf 安装 mysql-server

shell
# 使用 -y 表示所有询问都直接确认 # 默认会安装最新版本的 mysql dnf install mysql-server -y # 安装完成之后启动 mysqld systemctl enable --now mysqld

image-20220429113308709.png

设置

启动完之后,使用 root 账户登入

shell
mysql -u root -p

因为我们还没设置 root 账户的密码,所以在输入密码时,直接回车便可以登录。

接下来我们需要先给 root 账户设置一个密码

mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD';

然后创建远程访问

mysql
use mysql; -- 更新数据,授权外部访问 UPDATE user SET host = '%' WHERE user = 'root' AND host='localhost'; -- 刷新权限 FLUSH PRIVILEGES;

MySQL8 以上更改密码认证插件

mysql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password by 'root';

创建管理员账号

mysql
-- 创建 CREATE user 'YOUR_USER_NAME'@'%' IDENTIFIED BY 'YOUR_PASSWORD'; -- ALL 表示所有权限 -- *.* 第一个*表示所有数据库,第二个*表示所有表 GRANT ALL ON *.* TO 'YOUR_USER_NAME'@'%'; -- 刷新权限 FLUSH PRIVILEGES;

输入 exit 退出 mysql,回到控制台。

MongoDB

/etc/yum.repos.d 目录中创建一个回购文件,以在 CentOS 8 服务器中安装 MongoDB yum 存储库。

shell
vi /etc/yum.repos.d/mongodb-org-5.0.repo

添加以下配置内容并保存

plain-text
[mongodb-org-5.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/6/mongodb-org/5.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc

为 MongoDB yum 存储库构建缓存。

shell
dnf clean all dnf makecache dnf repolist

image-20220429113749995.png

我们需要根据MongoDB软件的要求在centos8服务器中设置资源限制。
为此,为MongoDB创建资源限制配置文件,如下:

shell
vi /etc/security/limits.d/mongod.conf

添加以下内容并保存

plain-text
mongod soft nproc 64000 mongod hard nproc 64000 mongod soft nofile 64000 mongod hard nofile 64000

然后我们可以从新添加的yum存储库在 CentOS 8 服务器上安装 MongoDB。

使用以下 dnf 命令安装 MongoDB 服务器的最新稳定版本。

shell
dnf list -y mongodb-org dnf install -y mongodb-org

创建管理员用户

默认情况下, MongoDb服务器从未启用访问控制,因此任何人都可以访问 MongoDB 服务器并执行管理操作。所以我们需要创建一个 admin 用户并在 MongoDB 服务器中启用访问控制。

shell
# 连接 MongoDB mongo # 连接管理数据库 use admin; # 创建管理员用户 db.createUser( { user: "admin", pwd: "YOUR_PASSWORD", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ); # 列出 MongoDB 数据库中所有用户 show users;

创建完用户之后,我们需要为 MongoDB.service 编辑 system 单元文件。

shell
vi /usr/lib/systemd/system/mongod.service

在文件中找到 Environment=``"OPTIONS=-f /etc/mongod.conf",将其替换成

plain-text
Environment="OPTIONS=--auth -f /etc/mongod.conf"

重载 systemd 并重启 MongoDB 服务器以更改应用

shell
systemctl daemon-reload systemctl restart mongod

检测是否启用了访问控制

shell
mongo use admin; show users;

image-20220412140741582.png

这次 show users; 命令引发身份验收错误,它确认在我们的 MongoDB 服务器中已启用访问控制。

现在,以管理员身份连接

shell
db.auth("admin", passwordPrompt()); show users;

这时就应该可以看到用户列表。

开启外网访问

shell
vi /etc/mongod.conf

找到 bindIp: 127.0.0.1 这一行改成 bindIp: 0.0.0.0

Redis

shell
dnf install redis systemctl enable --now redis

修改配置/etc/redis.conf

  1. 允许远程连接访问:找到 bind 127.0.0.1 这一行,注释掉# bind 127.0.0.1,如果还是无法访问,那就改成 bind: 0.0.0.0
  2. 启用密码访问:找到 # requirepass foobared 把前面的 # 去掉,然后把 foobared 改为你自己的密码。

然后重启 redis systemclt restart redis

git

shell
dnf install git -y

Node

使用 n 来管理 Node

安装 n 来管理 Node,因为我们服务器上还没有安装 npm,所以通过以下方式来安装 n

shell
curl -L https://raw.githubusercontent.com/tj/n/master/bin/n -o n bash n lts # Now node and npm are available npm install -g n

image-20220429134313709.png

pm2

shell
npm i -g pm2

jenkins

因为Jenkins是使用Java编写的,所以需要安装Java环境,Jenkins需要Java8或更高版本。

这里使用OpenJDK,首先通过一下命令安装OpenJDK.

shell
dnf install java-1.8.0-openjdk-devel

启用 Jenkins 存储库,运行以下命令并导入 GPG 密钥:

shell
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

安装最新稳定版本 Jenkins

shell
dnf install jenkins

启用 Jenkins

shell
systemctl enable --now jenkins

修改 Jenkins 默认端口

shell
vi /etc/sysconfig/jenkins

找到 JENKINS_PORT=8080 这一行,把端口改成你想要的。

然后重启一下 Jenkins

shell
systemctl restart jenkins

如果修改端口还是失效,则用以下方法进一步修改

vi /usr/lib/systemd/system/jenkins.service

找到 Environment="JENKINS_PORT=8080" 把 8080 改成你想要的端口,之后重新加载配置文件 systemctl daemon-reload ,最后重启 jenkins

vsftpd

shell
dnf install vsftpd systemctl enable --now vsftpd

安装完后,我们需要创建一个用于访问 FTP 服务器的用户。YOUR_USER_NAME 替换成你想创建的用户名

shell
adduser YOUR_USER_NAME passwd YOUR_USER_NAME

FTP 用户就位后,我们将继续创建 FTP 目录,并分配以下权限

shell
mkdir -p /home/ftp chmod -R 750 /home/ftp chown -R YOUR_USER_NAME /home/ftp

我们还需要将 FTP 用户添加到 /etc/vsftpd/user_list 中,以允许用户访问 vsftp 服务器

shell
bash -c 'echo YOUR_USER_NAME >> /etc/vsftpd/user_list'

进一步配置

允许本地用户远程访问 FTP 服务器并阻止匿名用户

shell
vi /etc/vsftpd/vsftpd.conf

找到 anonymous_enable 这一行,设置为NO, local_enable 这一行设置为 YES

plain-text
anonymous_enable=NO local_enable=YES

授予用户运行任何 FTP 命令和进行更改的权限

plain-text
write_enable=YES

出于安全目的,你可以选择限制用户访问其主目录之外的任何文件和目录。

plain-text
chroot_local_user=YES

授予用户对其各自主目录的读写权限

plain-text
allow_writeable_chroot=YES

最后保存文件,重启 vsftpd 服务

shell
systemctl restart vsftpd

配置 swap

我们在安装系统的时候已经建立了 swap 分区。swap 分区通常被称为交换分区,这是一块特殊的硬盘空间,即当实际内存不够用的时候,操作系统会从内存中取出一部分暂时不用的数据,放在交换分区中,从而为当前运行的程序腾出足够的内存空间。

也就是说,当内存不够用时,我们使用 swap 分区来临时顶替。这种“拆东墙,补西墙”的方式应用于几乎所有的操作系统中。

使用 swap 交换分区,显著的优点是,通过操作系统的调度,应用程序实际可以使用的内存空间将远远超过系统的物理内存。由于硬盘空间的价格远比 RAM 要低,因此这种方式无疑是经济实惠的。当然,频繁地读写硬盘,会显著降低操作系统的运行速率,这也是使用 swap 交换分区最大的限制。

使用以下命令来查看 swap 配置情况

shell
free -m

image-20220429140848407.png

从上图我们可以看到 swap 是还没有配置的

通过 dd 命令增加 swap 空间

shell
# 增加 5G 的 swap 空间 dd if=/dev/zero of=/var/newswap bs=1M count=5120 # 设置权限 chown root:root /var/newswap chmod 0600 /var/newswap

创建 swap 文件

shell
mkswap /var/newswap

加载 swap

shell
swapon /var/newswap

然后运行 free -m 查看 swap 是否生效,看到 swap 里面有值就说明配置成功了。

image-20220429142212250.png

最后编辑 /etc/fstab 文件,把 swap 配置写入,防止重启后 swap 变为0

shell
vi /etc/fstab

在最后一行写入

plain-text
/var/newswap swap swap defaults 0 0

为了防止写错,我们用 mount -a 命令校验一下,如果没报错,那就证明没有问题。

卸载 swap

shell
swapoff /var/newswap rm -rf /var/newswap