乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      服務器重新部署踩坑記

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

      服務器重新部署踩坑記

      Intro

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

      虛擬機配置

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

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

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

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

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

      Nginx 配置

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

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

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

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

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

      添加了之后發(fā)現(xiàn)服務轉(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 的問題,關掉 SELinux 之后就可以了,后來在網(wǎng)上看了看,很多人推薦直接關掉 SELinux,于是就索性直接把 SELinux 給關掉了。

      HTTPS 配置

      HTTPS 證書使用的是免費的 Let's Encrypt 的證書,使用 進行配置,安裝好 ,配置好 DNS 的 Access Key 執(zhí)行一行命令就可以了,而且還會生成一個 crontab 定時任務定期會更新證書(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)。但是配置起來很是繁瑣,很容易因為這個導致很多問題,浪費很多時間,所以還是直接關掉好了。

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

      • Enforcing: 默認的配置,默認強制使用,發(fā)生權限問題的時候就直接報錯,阻止應用程序的執(zhí)行
      • Permissive:允許訪問,當出現(xiàn)權限問題的時候不會阻止應用程序的執(zhí)行,但是會記錄一條 Wanring 級別的日志
      • Disabled: 完全禁用,應用程序的執(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 的時候都要使用管理員權限 sudo

      K8S 配置

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

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

      之前的 kind 都會有一個問題,每次系統(tǒng)重啟或 docker daemon 重啟的時候會導致原來的創(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 到服務器上,如果沒有安裝 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ǎng)絡安全組配置中開放需要的端口?

      More

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

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

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

      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;
          }
      }
      

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

      Reference

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多