Docker

使用官方安装脚本自动安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

Docker Compose

安装 Docker Compose:

curl -L https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

如果要安装其他版本的 Compose,请替换 v2.22.0。

将可执行权限应用于二进制文件:

chmod +x /usr/local/bin/docker-compose

测试是否安装成功:

docker-compose version

Java Development Kit


1. 查看 JDK 软件包列表

yum search java | grep -i --color jdk

2. 安装 JDK(安装包可以根据上面查看的列表选择)

yum install -y java-1.8.0-openjdk.x86_64


1. 下载 JDK
进入 Oracle 官网下载对应版本的 jdk

可以在 Oracle 官网下载过往版本的 jdk

注意要下载 RPM Package 类型的
以 jdk8 中最后一个免费版本 8u202 版本为例:

Oracle 官网.png)

2. 安装 JDK

rpm -ivh jdk-8u202-linux-x64.rpm


MySQL

下载脚本

此脚本使用 Docker Compose 进行安装,请确保执行前安装了 Docker Compose

该部分仅登录用户可见

使用脚本

# 给脚本赋予执行权限
chmod u+x mysql.sh

# 运行脚本
./ mysql.sh

Node.js

yum 安装

# 设置Node.js版本(setup_16里的16是nodejs的版本号)
curl --silent --location https://rpm.nodesource.com/setup_16.x | sudo bash

# yum安装Node.js
yum -y install nodejs

# 查看Node.js版本
node -v

# 查看npm版本
npm -v

# 为npm配置淘宝镜像
npm config set registry https://registry.npmmirror.com

pnpm

安装 pnpm

# 全局安装 pnpm
npm install -g pnpm

# 查看 pnpm 版本
pnpm -v

PM2

安装 PM2

# 全局安装PM2
npm install -g pm2

PM2 的使用

Nginx

yum 安装

# 添加 nginx 到 yum 源中
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# 安装nginx
yum install -y nginx

# 启动nginx
systemctl start nginx

配置信息

  • 网站文件存放默认位置(Welcome to nginx 页面)
    /usr/share/nginx/html
  • 网站默认站点配置
    /etc/nginx/conf.d/default.conf
  • 自定义 nginx 站点配置文件存放目录
    /etc/nginx/conf.d/
  • nginx 全局配置文件
    /etc/nginx/nginx.conf
  • 检查 nginx 配置文件是否正确
    nginx -t

常用配置

侦听端口

server {
  # Standard HTTP Protocol
  listen 80;
  # Standard HTTPS Protocol
  listen 443 ssl;
  # For http2
  listen 443 ssl http2;
  # Listen on 80 using IPv6
  listen [::]:80;
  # Listen only on using IPv6
  listen [::]:80 ipv6only=on;
}

访问日志

server {
  # Relative or full path to log file
  access_log /path/to/file.log;
  # Turn 'on' or 'off'
  access_log on;
}

域名

server {
  # Listen to yourdomain.com
  server_name yourdomain.com;
  # Listen to multiple domains
  server_name yourdomain.com www.yourdomain.com;
  # Listen to all domains
  server_name *.yourdomain.com;
  # Listen to all top-level domains
  server_name yourdomain.*;
  # Listen to unspecified Hostnames (Listens to IP address itself)
  server_name "";
}

静态资源

server {
  listen 80;
  server_name yourdomain.com;
  location / {
          root /path/to/website;
  }
}

重定向

server {
  listen 80;
  server_name www.yourdomain.com;
  return 301 http://yourdomain.com$request_uri;
}

server {
  listen 80;
  server_name www.yourdomain.com;
  location /redirect-url {
     return 301 http://otherdomain.com;
  }
}

反向代理

server {
  listen 80;
  server_name yourdomain.com;

  location / {
     proxy_pass http://0.0.0.0:3000;
     # where 0.0.0.0:3000 is your application server (Ex: node.js) bound on 0.0.0.0 listening on port 3000
  }
}

SSL 协议

server {
  listen 443 ssl;
  server_name yourdomain.com;
  ssl on;
  ssl_certificate /path/to/cert.pem;
  ssl_certificate_key /path/to/privatekey.pem;
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_trusted_certificate /path/to/fullchain.pem;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_session_timeout 1h;
  ssl_session_cache shared:SSL:50m;
  add_header Strict-Transport-Security max-age=15768000;
}

# Permanent Redirect for HTTP to HTTPS
server {
  listen 80;
  server_name yourdomain.com;
  return 301 https://$host$request_uri;
}

if ($server_port !~ 443){
  rewrite ^(/.*)$ https://$host$1 permanent;
}

负载均衡

upstream node_js {
  server 0.0.0.0:3000;
  server 0.0.0.0:4000;
  server 123.131.121.122;
}

server {
  listen 80;
  server_name yourdomain.com;
  location / {
     proxy_pass http://node_js;
  }
}

Supervisor

yum 安装

# 安装supervisor
yum install -y supervisor

# 如果遇到错误安装一下依赖
yum install epel-release
yum install python-setuptools

# 设置开机自启
systemctl enable supervisord

# 启动supervisor服务
systemctl start supervisord

# 设置开机自启
systemctl enable nginx

supervisor 配置

配置文件所在位置

# 修改配置文件
vim /etc/supervisor.conf

supervisor 配置示例

; 需要管理的进程
[program:demo]
; 进程运行前,会切换到此目录下,非必需
directory=/app/demo
; 启动进程的命令路径
command=java -jar demo.jar
; 在supervisord启动的时候也自动启动 (default true)
;autostart=true
; 进程挂掉后自动重启,可选值: [false,unexpecte,true] (default unexpected)
; unexpected: 退出码不在exitcodes里定义时才退出
;autorestart=unexpected
; 和上面autorestart=unexpected对应 (default 0,2)
;exitcodes=0,2
; 启动几秒后没有异常退出,就表示进程正常启动了 (default 1)
;startsecs=1
; 启动失败自动重试次数 (default 3)
;startretries=3
; 启动进程的用户 (default root)
;user=root
; 进程的stdout的日志路径,可选值: [auto none 指定路径]
; auto: 随机找一个地方生成日志文件,当supervisor重新启动时以前的日志文件会被清空
stdout_logfile=/app/demo/logs
; 日志文件大小 (default 50MB)
stdout_logfile_maxbytes=1MB
; 日志文件备份数 (default 10)
stdout_logfile_backups=10

supervisor 常用命令

# 查看进程运行状态
supervisorctl status
# 启动进程
supervisorctl start [进程名]
# 关闭进程
supervisorctl stop [进程名]
# 重启进程
supervisorctl restart [进程名]
# 重新载入配置文件
supervisorctl update
# 关闭supervisor
supervisorctl shutdown
最后修改:2023 年 10 月 18 日
温柔的好天气总是和我一样,帅的鸭皮!