小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

服務(wù)器重新部署踩坑記

 小仙女本仙人 2022-05-22 發(fā)布于北京

服務(wù)器重新部署踩坑記

Intro

之前的服務(wù)器是 Ubuntu 18.04 ,上周周末想升級一下服務(wù)器系統(tǒng),從 18.04 升級到 20.04,結(jié)果升級升掛了...
后來 SSH 始終連不上,索性刪除重新部署了一個,新部署了一個 Centos 8 的系統(tǒng),新部署之后很多東西需要配置,折騰了好幾天,簡單記錄一下容易踩的坑。

虛擬機配置

Azure 上的服務(wù)器默認新建的時候需要配置網(wǎng)絡(luò)安全組(NSG),這次新建之后想著使用之前的網(wǎng)絡(luò)安全組配置,這樣就不需要再配置一下端口白名單了,結(jié)果這樣部署了之后,SSH 經(jīng)常超時,但是從內(nèi)網(wǎng)走的話會很快,沒有問題,使用 Azure Cloud Shell SSH 沒有超時的問題,從另外一個服務(wù)器上 SSH 也是正常的。
后來刪除了,又重新建了一個,這次完全是新建的,沒有用之前的網(wǎng)絡(luò)安全組配置,這次 SSH 再沒有超時的問題了……

新建的時候可以指定服務(wù)器要開放的端口,一般 22,80,443 先打開,SSH以及 web server 的端口先開放

服務(wù)器新建完成后,修改 IP 地址,默認是動態(tài) IP,修改為靜態(tài) IP,這樣可以方便做 DNS 解析

新建的服務(wù)器和之前的 IP 不一致,需要修改域名解析,將原來的域名解析配置修改為新的服務(wù)器的 IP

有幾個應(yīng)用使用的是云數(shù)據(jù)庫,需要修改數(shù)據(jù)庫服務(wù)器防火墻,把原來服務(wù)器的 IP 修改為新的服務(wù)器 IP 地址

Nginx 配置

使用 suo yum install nginx -y 來安裝 nginx,安裝完成之后可以通過上面配置的域名解析或者直接用 IP 地址在瀏覽器中訪問,應(yīng)該可以看到 nginx 的默認頁面

執(zhí)行 sudo systemctl enable nginx 來配置開機啟動

安裝之后默認的配置是 /etc/nginx 目錄,默認的 nginx 配置修改 /etc/nginx/nginx.conf 文件,如果要新增配置可以添加在 /etc/nginx/conf.d 目錄下面

修改默認的 nginx 配置,將默認站點轉(zhuǎn)發(fā)到后端服務(wù)中,修改 location 配置,添加 proxy_pass

location / {
    proxy_pass http://172.18.0.2:31230;
}

添加了之后發(fā)現(xiàn)服務(wù)轉(zhuǎn)發(fā)有問題,后來終于在網(wǎng)上找了解決方案,原來默認 nginx 不能進行 Http 的轉(zhuǎn)發(fā),要轉(zhuǎn)發(fā)需要配置一下 selinux 的一個配置 httpd_can_network_connect

可以參考:https:///questions/27435655/proxy-pass-isnt-working-when-selinux-is-enabled-why

后來在配置 HTTPS 的時候讀取證書文件的時候出現(xiàn)了 Permission Denied 的情況,后來排查下來也是 SELinux 的問題,關(guān)掉 SELinux 之后就可以了,后來在網(wǎng)上看了看,很多人推薦直接關(guān)掉 SELinux,于是就索性直接把 SELinux 給關(guān)掉了。

HTTPS 配置

HTTPS 證書使用的是免費的 Let's Encrypt 的證書,使用 進行配置,安裝好 ,配置好 DNS 的 Access Key 執(zhí)行一行命令就可以了,而且還會生成一個 crontab 定時任務(wù)定期會更新證書(Let's Encrypt 免費證書默認 90 天內(nèi)有效)

通過執(zhí)行 curl https://get. | sh 來安裝

安裝成功之后配置 DNS 的配置,我的域名在阿里云上,從阿里云生成 AccessKey 來更新域名配置,會添加或更新一個 _acme-challenge 的域名解析記錄

我的域名在阿里云上,就以阿里云為例子,將下面的 Key 和 Secret 替換成自己實際的 Key 和 Secret

export Ali_Key="111111"
export Ali_Secret="222222"

申請泛域名證書,泛域名證書需要指定兩個 domain,如下面的示例:

 --issue --dns dns_ali -d *.weihanli.xyz -d weihanli.xyz

執(zhí)行之后會看到類似下面這樣的截圖:

Nginx 配置:

listen       443 ssl default_server;
listen       [::]:443 ssl default_server;
ssl_certificate            /home/liweihan/./*.weihanli.xyz/*.weihanli.xyz.cer;
ssl_certificate_key      /home/liweihan/./*.weihanli.xyz/*.weihanli.xyz.key;

if ($scheme = http) {
    return  301 https://$host$request_uri;
}

SELinux 配置

SELinux(Security-Enhanced Linux) 是美國國家安全局(NSA)對于強制訪問控制的實現(xiàn),是 Linux歷史上最杰出的新安全子系統(tǒng)。但是配置起來很是繁瑣,很容易因為這個導(dǎo)致很多問題,浪費很多時間,所以還是直接關(guān)掉好了。

SELinux 有三種狀態(tài),分別是:

  • Enforcing: 默認的配置,默認強制使用,發(fā)生權(quán)限問題的時候就直接報錯,阻止應(yīng)用程序的執(zhí)行
  • Permissive:允許訪問,當出現(xiàn)權(quán)限問題的時候不會阻止應(yīng)用程序的執(zhí)行,但是會記錄一條 Wanring 級別的日志
  • Disabled: 完全禁用,應(yīng)用程序的執(zhí)行不會被 SELinux 所影響,也不會有任何日志

通過 sestatus 可以查看 SELinux 當前的狀態(tài)

如果要臨時修改 selinux 的狀態(tài)可以通過命令 sudo setenforce 0 禁用 selinux 或 sudo setenforce Permissive

如果要永久性的修改 selinux 狀態(tài)需要修改配置文件 /etc/selinux/config

Docker 配置

參考 docker 官方文檔或者參考 Centos 安裝 docker

需要注意的是,你可能會需要配置 docker group,把需要的用戶配置到 docker 這個用戶組里以免每次 docker ps 的時候都要使用管理員權(quán)限 sudo

K8S 配置

自己玩 k8s 的話推薦使用 kind 部署 k8s,我自己就是在使用 kind 部署 k8s,具體的安裝步驟可以參考之前的文章介紹

https://www.cnblogs.com/weihanli/p/12831225.html

之前的 kind 都會有一個問題,每次系統(tǒng)重啟或 docker daemon 重啟的時候會導(dǎo)致原來的創(chuàng)建的集群不可用,需要重新創(chuàng)建才可以,從 0.8 版本開始,kind 不再需要重新創(chuàng)建集群了,基于這個集群的資源部署也會自動重啟,無需再手動重新部署了,非常方便了

SSR 配置

SSR 的配置在 Github 上找了一個基于 docker 部署的,可以參考 https://github.com/winterssy/SSR-Docker

開啟 BBR

首先可以執(zhí)行 lsmod | grep bbr 命令,如果已經(jīng)有 bbr 則證明已經(jīng)開啟了 BBR 加速,如果沒有進行下面的配置

sudo echo "net.core.default_qdisc=fq" | sudo tee --append /etc/sysctl.conf
sudo echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee --append /etc/sysctl.conf
sudo sysctl -p

執(zhí)行之后再執(zhí)行 lsmod | grep bbr 命令,如果已經(jīng)有 bbr 則證明已經(jīng)開啟了 BBR 加速

安裝 docker-compose

如果沒有安裝 docker-compose 可以執(zhí)行下面的命令來進行安裝

compose_version=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
sudo curl -L "https://github.com/docker/compose/releases/download/${compose_version}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

配置

可以將項目 clone 到服務(wù)器上,如果沒有安裝 Git,可以 sudo yum install git -y 來安裝,之后 git clone https://github.com/winterssy/SSR-Docker.git

克隆到本地之后可以根據(jù)自己需要修改 /etc/config.json 文件中的配置

config.json 配置可以參考:https://github.com/winterssy/SSR-Docker/blob/f0439c232add3a4addbbce68f3c1be32464e0d18/etc/README.md

可以根據(jù)需要修改 docker-compose 映射到本地的端口

配置好之后執(zhí)行 docker-compose up -d 即可啟動 SSR 服務(wù),啟動之后在虛擬機對應(yīng)的網(wǎng)絡(luò)安全組配置中開放需要的端口?

More

還有一些配置,腳本需要準備一下來部署服務(wù),索性大多數(shù)的服務(wù)我都是有 k8s deploy yaml 的,只是有些 configMap 里的數(shù)據(jù)要更新一下。
整理一下放在服務(wù)器上,最后整理出一個 k8s 服務(wù)部署腳本

如果出現(xiàn)了什么意外情況或者要重新部署 k8s 只要執(zhí)行一下這個腳本即可~

其他服務(wù)的 Nginx 配置,需要新增服務(wù)配置的時候只要在 /etc/nginx/conf.d 目錄下增加對應(yīng)服務(wù)的配置即可

server {
    listen 443;
    server_name sparktodo.weihanli.xyz;
    location / {
        proxy_pass http://172.18.0.2:31256;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

折騰的遇到最多的問題就是服務(wù)器 SSH 超時問題和 Nginx SELinux 的問題,以后再部署的時候服務(wù)器資源要完全新建,SELinux 要禁用

Reference

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多