準備把服務器操作系統從Ubuntu改成CentOS,服務器程序由Apache改成Nginx,我需要準備什麼?

wenzi容謙


首先我分解下題主的問題,針對分解後的2個問題逐一進行詳細的回答,那麼拆解後的2個問題分別是:

  1. 操作系統的遷移:從Ubuntu遷移到CentOS;
  2. Web容器的遷移:Apache遷移到Nginx;

操作系統遷移

第一點操作系統從Ubuntu遷移到CentOS,這一點可以很順利的遷移,因為Ubuntu和CentOS都是基於Linux的發行版本,底層系統原理大同小異,可以無縫遷移,但還是需要注意遷移的項目用到的操作系統功能,比如如果用了系統的防火牆功能、iptable用戶黑白名單和訪問攔截功能、crontab功能、安裝插件、軟件源倉庫等等,這些配置項需要格外注意,因為系統間的差異是存在的,需要根據系統來適配最好的配置,但我強烈推薦使用CentOS做完服務器,下面是二者的詳細不同點:

服務器遷移

相對於第一點的服務器遷移,Apache遷移到Nginx就是個大工程了,因為二者的技術架構完全不同,配置規則也大不相同,所以在遷移過程中一定要仔細地把Apache的配置都用Nginx的方式重新配置一邊,而且一定要經過全面的測試,針對每個url,每個接口都要測試到才能正式替換。其實Apache和Nginx不存在誰替換誰的問題,他們各有所長,而且一般項目中都是前端nginx 抗併發,後端 apache 集群抗壓,這樣混合著用更能提供整個服務的健壯性和可靠性。

Apache擁有豐富的模塊組件支持,穩定性強,BUG少,動態內容處理強。

Nginx輕量級,佔用資源少,負載均衡,高併發處理強,靜態內容處理高效。


綜上,題主在遷移服務器的時候,一定要好好學習下Nginx的配置規則,確保把Apache的配置完整的遷移過來,而且一定要全面回滾的測試,要對上線的功能存在敬畏心,相信我,這都是作為一個過來人對你的真誠的忠告,如果有什麼想法歡迎留言討論。


碼農胖哥


如果要把服務器操作系統由Ubuntu改為CentOS、另外將WEB容器Apache改為Nginx,這就涉及了兩方面的工作,即:系統遷移、應用程序遷移,這兩方面涉及的工作各有重點,主要有以下:

1、服務器操作系統更換

由於Ubuntu和CentOS都是Linux發行版本,兩者差異化並不大,所以這方面程序移植是沒問題的,我們要做的就是:

  • 統計Ubuntu服務器上哪些軟件包是必須安裝的,然後在CentOS上一樣安裝上,避免遷移後運行程序缺少依懶;

  • 數據備份,如:網站程序、應用程序、數據庫備份、必要的日誌文件等;

  • 統計定時任務清單,要清楚哪些任務是要定時自動執行的;

  • 確認開機啟動程序/服務有哪些;

  • 統計服務器上的用戶和群組,另外要清楚知道服務器上目錄權限的劃分;

2、WEB容器遷移

由於Apache和Nginx配置不同,所以遷移前要做好確認,主要注意事項是:

  • 站點配置的方法不同;

  • URL Rewrite設置不同;

考慮到Nginx是專業的代理服務器,所以我們建議遷移後依舊由Apache做為WEB容器,前面加上Nginx作為前端代理,這種模式更能適應高流量站點。



綜上,服務器操作系統換成CentOS是非常正確的選擇,而WEB容器這塊建議是 Nginx+Apache這種模式。

以上就是我的觀點,我是科技領域創作者,十年互聯網從業經驗,歡迎關注我瞭解更多科技知識!如果大家有不同看法,歡迎在下方評論區發表自己的觀點 ~


網絡圈


1、就目前來說,ubuntu 和 centos 操作系統都比較穩定,我公司也有很多產品跑在 ubuntu 上,也沒見出現過什麼問題。所以選擇 ubuntu 還是 centos 完全是看個人的想法,熟悉哪個就用那個便是。ubuntu 使用 apt-get 管理包,對非專業的系統管理員更加友好些,因為它可以在使用未安裝的命令時給出安裝提示;centos 使用 yum 或 rpm 管理包,是開源主流的服務器選擇對象。

2、涉及遷移問題,思想很簡單,先備份數據和應用程序。作為運維人員,最穩妥的做法預先先做好安全備份,不然誤操作的話,就要準備好跑路了,哈哈。

3、在 centos 上安裝相同版本的所需軟件,比如 PHP、MySQL等,如果確認版本不會影響應用程序的運行,可以安裝最新版本即可。Nginx 是一個開源輕量大併發的代理中間件,處理靜態資源的效率很高,反向代理;Apache 在處理動態請求上比 nginx 有優勢,rewrite 強大,模塊多。

4、方案:1). 直接使用 Nginx ----> PHP,配置好 location即可;2). Nginx + Apache ----> PHP,nginx proxy apache,讓 apache 去處理 PHP。但只要資源給夠,使用方案1就已經足夠。

5、安裝好需要先調式,調式通過後,恢復數據,測試驗收,最後開放上線。


運維技術圈


弱弱地問一句,大家在答題之前,都不看題的描述嗎?

解題

主功能 Ubuntu->CentOS, Apache->Nginx。換操作系統,這個真的是考慮的因素太多太多。而題主貼出的圖片,是Dockerfile。

那麼題主指的是Docker鏡像遷移嗎。我們不說物理機,或雲服務器的操作系統遷移了。說說docker鏡像的切換。

ADD src /var/www

程序文件放置在Dockerfile文件夾下。將其拷貝到鏡像的/var/www目錄下。

其他的軟件包使用 yum -y install 安裝。

下面的ENV是配置APACHE需要的額系統用戶,和修改相關目錄的屬主屬組

EXPOSE 80

容易暴露80端口對外提供訪問。

最末一句,開始apache服務。


Docker搭建LNMP環境

那麼題主,你的docker鏡像運行的是微服務嗎?那麼我們只要定製一個docker鏡像就OK了。下面我們嘗試按照題主給定的環境,搭建一個同等版本的的centos + php5 + nginx的docker鏡像。


為了版本一直,docker內的軟件包,可以使用yum指定同版本號安裝。或者,使用源碼編譯安裝,保持與原系統的一致即可。


Dockerfile內容如下:


FROM centos:7

ENV TIME_ZOME Asia/Shanghai

RUN rpm -Uvh

http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

RUN yum -y install nginx

RUN yum -y install git curl php5 php5-mcrypt php5-mysql

COPY nginx.conf /usr/local/nginx/conf/

WORKDIR /usr/local/nginx/

EXPOSE 80

CMD ["./sbin/nginx\

程序員小助手


最簡單的辦法就是直接上nginx反向代理:

好處:

1、為以後網站集群擴容做了一個好的鋪墊;

2、對源站apache做了一個隱藏,安全同時也提高了。

3、nginx反向代理對多網站(虛擬機主機)的支持極佳。

步驟如下:

先把apache、數據庫相關數據備份,然後更換操作系統,centos最好使用7版本的,考慮以後程序依賴內核的問題,然後把apache相關數據還原回去。

另外,我的建議是,在apache前段加一個nginx即可,直接使用反向代理,如果你apache使用php等動態網站,沒必須花大量的時候去折騰更換網站架構。

nginx也要使用最新版的,避免老版本的漏洞問題

使用nginx反向代理的好處就是,以後網站集群擴容,增加新的網站、二級域名是很方便的,而且不需要做很大的改動。

架構圖如下:


https://www.toutiao.com/c/user/5844231468/#mid=1634198915259405


懸鐘Mr


以我的經驗,ubuntu沒必要換,兩個都是很優秀的linux,也都很穩定,並沒有一個比另一個強很多,或者必須的功能一個有另一個沒有。何況兩個操作系統命令還是有細微差異,習慣了ubuntu熟悉另外一個還是要時間。

至於apache換nginx很容易,nginx配置簡單可以在相同環境配置好把配置文件拿到正式服務器用就好。把appache自動啟動停了,再把nginx自動啟動就好了。


LarryLe


1. 服務器操作系統更換

從ubuntu直接更換成centos,只需要替換yum源,優化系統內核,安裝好docker環境以及配置好docker加速服務器。順便熟悉一下yum安裝軟件的使用即可。

2. 備份好原來服務器上代碼,數據庫,靜態文件,日誌等到新的服務器上。

3.在centos使用docker重新構建你web運行環境,然後用docker啟動容器。

4. 由於nginx與php交互是以fastcgi模式進行的,因此你需要構建兩個容器,分別是nginx容器與php-fpm容器,然後用docker-compose來控制。


web架構師自我修煉


你需要程序員陪你一起加班,Ubuntu改成centos還好說,Apache 改成ngnix可能就涉及到工作量了。


鴆鴆銪鷀


關於系統更換其實很簡單,你在本地或者測試環境安裝一臺CentOS,然後就開始部署你的應用就行,無非就是依賴包名及包管理命令不一樣。

再都apache改nginx也比較簡單,就是按nginx配置對應的代理規則就行。


基於Linux的運維


很高興回答您的問題。如果您要更換服務器操作系統以及web服務器,建議您

1、先將原始的系統做一個備份,避免更換系統和程序之後出現問題 無法恢復

2、備份完成後,更換操作系統之前,先將一些操作系統的配置,比如 開啟即啟動的軟件、用戶組、用戶權限、訪問日誌 、防火牆、FTP、定時任務、必備軟件等等這些配置 備份下來,更換系統之後 對應的在新的centos系統上都添加上

3、更換為apache服務器之前,先將 網站程序和數據 、以及訪問日誌、虛擬主機的配置等相關的這些都備份下,更換為nginx之後需要對應更換,由於apache和nginx是兩個不同的服務器,有一些配置項目(比如虛擬主機的配置 重寫模塊的配置)可能有所不同,需要對應的更改下

4、系統和程序都更換完成之後需要對應檢查下 所有的網站是否能正常訪問,系統是否能正常運行,如果系統能正常運行 即切換成功,否則需要根據報錯對應排查原因

以上回答希望能對您所有幫助


分享到:


相關文章: