Linux 笔记 -- nginx,docker,gitlab
前言许久不维护服务,感觉有些生疏,连screen的使用都忘了,近期操作过程中生疏的点,还是稍微记录梳理下。Screen远程登陆链接不稳定时推荐工具,能够在当前的shell窗口中开启子窗口,当链接意外段开时,窗口中正在执行的命令,下载等等操作不会断。# 查看yum已安装的包yum list installed# installyum install screen# 查看列表scre...
前言
许久不维护服务,感觉有些生疏,连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
- 上述example的conf文件需要根据需要自己填写
your_
起始的字段 - 对于 websocket 的 nginx 的配置可参考之前 kubernetes web terminal
- 对于同一机器,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
更多推荐
所有评论(0)