服务器
Wei Jieyang Lv4

前言

本部分主要讲解服务器对应的各类环境的配置过程

Linux

简介

一般来说著名的linux系统基本上分两大类:

  1. RedHat系列:Redhat、Centos、Fedora等
  2. Debian系列:Debian、Ubuntu等

RedHat 系列

  • 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数”
  • 包管理工具 yum (阿里云服务器)
  • 支持tar包

Debian系列

  • 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数”
  • 包管理工具 apt-get
  • 支持tar包

启动

教程

启动时会访问目录 /usr/lib/systemd/system 下的 *.service 服务,并自动启动

在目录 /etc/init.d 下编写启动文件,并执行一下命令

启动文件可在网上自行查找

1
2
3
4
5
6
7
8
$ chmod +x /etc/init.d/<serviceName>
$ chkconfig --add /etc/init.d/<serviceName>
$ chkconfig nginx on

# 验证启动文件是否可执行
$ /etc/init.d/<serviceName> start
# 或者
$ service <serviceName> start

RedHat - yum

java

mysql

nginx

安装

1、先安装PCRE pcre-develZlib,配置nginx的时候会用到这两个东西

1
2
$ yum install -y pcre pcre-devel
$ yum install -y zlib zlib-devel
  • PCRE(Perl Compatible Regular Expressions): 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库
  • zlib: 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

如果安装的时候有问题的话可能需要安装GCC和OpenSSL以下提供命令

1
2
$ yum install gcc-c++
$ yum install -y openssl openssl-devel

2、获取nginx的安装文件

1
2
3
4
5
$ wget -c https://nginx.org/download/nginx-1.16.0.tar.gz

# 下载到当前目录,之后解压并进入文件夹
$ tar -zxvf nginx-1.16.0.tar.gz
$ cd nginx-1.16.0

3、安装nginx

1
2
3
4
5
6
7
8
9
# 使用nginx的默认配置
./configure

# 编译安装
$ make
$ make install

# 获取安装路径
$ whereis nginx
3687C2497677AF45A94FFC66728813F8

4、运行nginx

1
2
3
# 进入项目文件夹下的 sbin 目录
$ cd /usr/local/nginx/sbin
$ ./nginx
  • 启动nginx后,访问服务器ip可以看到如下的欢迎界面
  • F9AA439B-ADFB-496B-B5BF-9236B63D2A1A

停止

1、从容停止

1
2
# 查看进程号
$ ps -ef|grep nginx
F5E94C142787E2BD1E7B6F8F1CE825CE
1
$ kill -QUIT 17465

2、快速停止

1
2
$ kill -TERM 17465
$ kill -INT 17465

3、强制停止

1
$ pkill -9 nginx

重启

方法一:在sbin目录下输入命令 ./nginx -s reload

1
2
$ cd /usr/local/nginx/sbin
$ ./nginx -s reload

方法二:查找当前nginx进程号,然后输入命令:kill -HUP 进程号 实现重启

1
2
$ ps -ef|grep nginx
$ kill -HUP 进程号

配置

配置文件 nginx.conf

1
2
# 进入 sbin 目录下执行
$ ./nginx -t
  • 该命令将获取配置文件nginx.conf路径,同时检查文件是否正确
  • 3A0AEDE17161462E1EC9272F2A5A185E
https配置

1、安装ssl模块

1
2
3
4
# 安装之前先检查是否已有
# 进入nginx安装目录sbin下
$ cd /usr/local/nginx/sbin
$ ./nginx -v
  • 如果显示 configure arguments: --with-http_ssl_module 则已安装
  • 未安装:截屏2021-06-23 上午9.48.08

一般情况下都是不存在ssl模块的,接下来进入到你的解压缩后的nginx目录,注意这里不是nginx安装目录,是解压缩后的目录,我的是在(/root/nginx-1.16.0),进入目录后,输入下面两步

1
2
$ ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
$ make # 切记不要执行make install,否则会重新安装nginx

然后备份原有已安装好的nginx

1
$ cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)

1
$ cp ./objs/nginx /usr/local/nginx/sbin/

然后启动nginx,仍可以通过命令查看是否已经加入成功

1
$ /usr/local/nginx/sbin/nginx -V
  • 安装好:截屏2021-06-23 下午2.50.13

2、配置ssl证书

解压缩下载好的证书(证书一般是pem文件和key文件,这里名字可以随便改)

将下载好的证书上上传到服务器,我将证书放在了root目录下的card文件夹

1
2
3
# 在 /usr/local/nginx 目录下创建cert文件夹
$ cd /usr/local/nginx
$ mkdir cert
截屏2021-06-23 下午2.17.57

3、修改 nginx.conf 配置文件

1
2
$ cd /usr/local/nginx/conf
$ vim nginx.conf

注释掉 http 中的server,编辑 https server,如下图所示

  • ssl_certificate 处写之前上传的证书地址

275056F4-54C9-40C9-9F0E-55F4E6D2436D

问题

1、是否安装成功

1
$ ps -ef|grep nginx
F5E94C142787E2BD1E7B6F8F1CE825CE

Redis

安装

方法一:在官网下载压缩包后,通过scp远程传输到服务器并进行解压

1
2
3
$ scp localFile username@serverip:remoteFile
$ tar -zxf redis-4.0.9.tar.gz
$ mv redis-4.0.9 redis
  • 本次是在目录 /user/local 下执行,最后将在此目录下生成一个 redis 文件夹

方法二:直接使用命令远程在服务器拉取

1
2
3
4
$ cd /user/local
$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz
$ tar -zxf redis-4.0.9.tar.gz
$ mv redis-4.0.9 redis

最后:解压好后进行安装

1
2
3
4
5
6
$ cd redis
# 编译
$ make
# 安装
$ cd src
$ make install

启动

在目录/usr/local/redis 输入下面命令启动redis

1
2
3
4
$ ./bin/redis-server& ./redis.conf 
# 上面为后台启动,也可设置配置文件中属性daemonize为yes
$ ./bin/redis-server ./redis.conf
# 上面是前台正常启动

部署

开机启动

1、修改文件 /usr/local/redis/redis.conf 中的属性 daemonizedyes,使redis启动变成后台启动

2、在目录 /etc/init.d/ 下创建脚本 reids

1
$ vim /etc/init.d/redis

在脚本中填入一下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
#
# chkconfig: 2345 10 90
# description: Start and Stop redis
PATH=/usr/local/bin:/sbin:/usr/bin:/bin
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server # 改为redis-server启动的路径
REDIS_CLI=/usr/local/redis/bin/redis-cli # 改为redis-cli启动的路径
PIDFILE=/var/run/redis.pid
CONF="/usr/local/redis/redis.conf" # 改为配置文件路径
# AUTH="1234"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed."
else
echo "Starting Redis server..."
$EXEC $CONF
fi
if [ "$?"="0" ]
then
echo "Redis is running..."
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE exists, process is not running."
else
PID=$(cat $PIDFILE)
echo "Stopping..."
$REDIS_CLI -p $REDISPORT SHUTDOWN
sleep 2
while [ -x $PIDFILE ]
do
echo "Waiting for Redis to shutdown..."
sleep 1
done
echo "Redis stopped"
fi
;;
restart|force-reload)
${0} stop
${0} start
;;
*)
echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
exit 1
esac

3、设置开机启动

设置权限

1
$ chmod 755 /etc/init.d/redis

启动redis

1
2
3
$ /etc/init.d/redis start
# 或者
$ service redis start

使用 chkconfig 设置开机启动

1
2
3
4
$ cd /etc/init.d/
$ chkconfig --add redis
$ # chkconfig --list 查看是否添加成功
$ chkconfig redis on

Debian - apt

  • Post title:服务器
  • Post author:Wei Jieyang
  • Create time:2021-06-22 14:05:22
  • Post link:https://jieyang-wei.github.io/2021/06/22/服务器/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.