前言

许久不维护服务,感觉有些生疏,连screen的使用都忘了,近期操作过程中生疏的点,还是稍微记录梳理下。

Screen

远程登陆链接不稳定时推荐工具,能够在当前的shell窗口中开启子窗口,当链接意外段开时,窗口中正在执行的命令,下载等等操作不会断。

# 查看yum已安装的包
yum list installed
# install
yum install screen
# 查看列表
screen -ls
# 链接已经Detached的 screen,其中 自窗口 id 17168,如果是Aetached则不可链接
screen -r 17168  
# 链接Aetached的 screen,其中 自窗口 id 17167
screen -x 17168
# 从子窗口中返回
ctrl + a + d

nginx

太久没有配置nginx,基本的配置文件都生疏了,常用 http 的 conf配置

upstream example_upstream {
     server 127.0.0.1:8000 max_fails=3 fail_timeout=10s weight=100;
}

server {
        listen       80;
        server_name  your_domain;
        location / {
            proxy_pass   http://example_upstream;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection keep-alive;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_cache_bypass $http_upgrade;
        }
}

https的配置:

upstream example_upstream {
  server 127.0.0.1:8080 max_fails=3 fail_timeout=10s weight=100;
}

# 监听80端口,做http -> https 强调转
server {
    listen              80;
    server_name         your_domain;

    return 301 https://$host$request_uri;
}

server {
    listen              443 ssl;
    server_name         your_domain;

    ssl_certificate     your_ssl_pem_file;
    ssl_certificate_key your_ssl_key_file;

    location / {
      proxy_set_header        Host $host:$server_port;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;
      proxy_redirect          http:// https://;
      proxy_pass              http://example_upstream;
      proxy_http_version      1.1;
      proxy_request_buffering off;
      proxy_buffering         off;
    }
}

Note

  1. 上述example的conf文件需要根据需要自己填写 your_ 起始的字段
  2. 对于 websocket 的 nginx 的配置可参考之前 kubernetes web terminal
  3. 对于同一机器,nginx下的多个 conf文件,只要server对应的访问域名不同,可以同时监听80端口,用不同的域名访问时nginx解析出对应的不同conf,路由至不同的server

docker

早先 docker 笔记一docker 笔记二 都做过些介绍,这里补充下centos下 docker-ce 安装。

centos内置源上的docker版本都是低版本,正常安装docker可以使用清华源安装docker-ce,操作如下:

# 访问链接,将内容输出到目标 docker-ce.repo 文件
curl https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
# 修改上述生成文件中的源为清华源
sed -i 's#download.docker.com#mirrors.tuna.tsinghua.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo
# 安装 docker-ce
yum install docker-ce
# 启动docker
systemctl start docker

docker有一些可选配置,首先可以看docker的 systemctl 启动文件,

# 查看机器的 docker.service 文件地址
systemctl start docker
# 如果对其中某些配置项修改,则需要reload,然后restart docker,否则不会生效
systemctl daemon-reload 

docker 运行时,默认所有的数据都存储在默认目录 /var/lib/docker 下,包括启动的 container的信息,本地下载的镜像,如果觉得默认目录容量小,可以进行修改,暂且略过,docker的配置文件默认在 /etc/docker/daemon.json ,可以在其中设置 镜像的加速下载地址:

{
    "registry-mirrors": [
         "https://dockerhub.azk8s.cn",
         "https://docker.mirrors.ustc.edu.cn/"
    ]
}

docker 安装 gitlab

利用docker 安装 gitlab

# 拉取镜像
docker pull gitlab/gitlab-ce
# 创建gitlab需要使用的 配置文件,log,数据data 目录
mkdir -p /srv/gitlab/config
mkdir -p /srv/gitlab/logs 
mkdir -p /srv/gitlab/data
# 建议先配置一个域名your_git_domain,解析到对应的机器,启动gitlab
docker run --detach \
  --hostname your_git_domain \
  --publish 8443:443 --publish 8880:80 --publish 8222:22 \
  --name gitlab \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  --privileged=true \
  gitlab/gitlab-ce:latest

之前的笔记对上述参数多数都说明过,这里 privileged=true 表示 使容器内的 root用户,具备宿主机的 root权限
结合上面 nginx的conf,配置gitlab的 反向代理:

upstream gitlab{
    server 127.0.0.1:8880;
}

server {
    listen 80;
    server_name  your_git_domain;
    access_log     /var/log/nginx/your_git_domain-access.log;
    error_log     /var/log/nginx/your_git_domain-error.log;
    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://gitlab;
    }
}

这里的 your_git_domain 在docker内和实际解析保持一致,访问 http://your_git_domain 即可。如果不实用域名,使用IP,则稍作修改,该用ip + port 访问亦可。
首次访问gitlab是直接进入密码设置页面,因为此时需要设置gitlab的默认 root 用户密码,设置完后,可以root用户登陆。

root

linux经常会有root用户和root权限,所谓root权限,就是常说的sudo权限

# 让一个 john 用户拥有sudo权限,修改 /etc/sudoers,添加 john 
vim /etc/sudoers 
# 添加 john       ALL=(ALL)       ALL
# 切换root用户
sudo -i
# 等价于上述 -i,此时是完全切换,由 john 切换到 root用户,并且切换 home目录以及环境变量
sudo su -
# 切换root 用户不切换 目录,不切换环境变量
sudo su
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐