自建本地伺服器,自建Web伺服器——保姆級教程!

搭建本地伺服器,Web伺服器——保姆級教程!

本文首發於//blog.chens.life/How-to-build-your-own-server.html

先上圖!大致思路就是如此。

思維導圖

前言

暑假因為疫情在家無事可做,便白嫖了阿里雲大半年的虛擬主機。雖然它只有1核2G,1M的頻寬,但也給了我一個實踐的機會,讓我有機會了解學習apache、php、js、Linux等等······

顯然!我們已經不再滿足於一百多KB的頻寬,緩慢的cpu速度和狹小的50G系統盤了!自建一個性能強大,頻寬300M(這取決於自己的寬頻),硬碟容量隨意增加的本地伺服器勢在必得!終於,功夫不負有心人,我在折騰了一個通宵之後就肝了出來,於此將我的經驗分享出來,希望能幫助到大家。

本地伺服器的好處

毋庸置疑,那就是可操控性、可拓展性和極致性價比。相比於各類雲服務廠商(阿里雲、騰訊雲等)動輒一年好幾千的「高端」配置,我這個窮人還是老實折騰我的本地伺服器吧(不爭氣的眼淚流了下來,嗚嗚嗚~~)

本地伺服器的弊端

當然了,本地伺服器畢竟不是專業的伺服器。況且國家對於互聯網的管控還是很嚴格的,所以這就導致了本地伺服器的一些弊端。例如,

  1. 本地伺服器不夠穩定,容易受到停電、機器故障、網路故障等各類不可控因素的影響;
  2. 我們所部署的本地伺服器並不是專業的伺服器,本身的並發能力不強,所以不適合用戶數量特別巨大的人;
  3. 電信運營商對於家用寬頻做了諸多限制,封禁了80,22等常用埠。雖然能夠通過埠映射或修改埠來解決,但還是不太美觀。幸運的是,我這裡的443埠沒有被封,不要太開心~~

前提準備

公網IP

這是至關重要的一項。打開//ip.3322.net,查看返回的IP地址與光貓普通用戶後台的IP地址是否相同,如果相同,則當前IP為公網IP。如果不相同,則需要向電信運營商申請公網IP。打給自己的運營商客服,告訴她家裡要裝NAS或者監控,申請公網IP。

路由器改為橋接

一般我們安裝的光貓都自帶路由器和撥號功能,但是不具有埠映射功能,無法將本地區域網內的伺服器映射到公網上面。所以我們需要讓路由器來進行撥號任務,而光貓單獨進行光電訊號轉換。

將光貓改為橋接需要用超級管理員登錄光貓後台,一般為192.168.1.1/admin不同的光貓情況不同,去百度搜搜自己的光貓型號。另外超級管理員密碼要找裝機師傅要,他們一般以各種理由推辭,難搞哦。如果搞不定就去萬能的淘寶吧!(別怪我沒提示哦)我自己也是找的淘寶。。。

一台舊電腦

我是用的是一台老式的Dell靈越筆記型電腦,4G RAM,i5 八代U,500G HDD。這對於個人部落格伺服器來說是綽綽有餘了,足以抵得上阿里雲好幾千的伺服器了。

一個域名

為什麼需要域名

在這裡我說一下為什麼我們還需要一個域名呢?直接適用IP地址訪問不就好了?反正是自己使用的。

因為我們向電信運營商申請的公網IP是動態的,也就是說隔一段時間就會改變,不是固定的IP地址。那麼能不能申請固定的IP地址呢?答案是可以,但是非常貴,面對大性企業的。我這種窮學生就算了吧。

所以,在有個一個域名之後就可以使用動態域名解析,將域名解析到變化的IP地址上,這樣不論IP地址如何變化,我們總是能夠訪問得到本地的伺服器。況且,如果是想做個人部落格,只有域名才能夠被百度和Google收錄,才有機會被別人看見。

申請域名

註冊域名可以去阿里雲萬網,也可以去騰訊雲,找個合適的域名即可。直接買,即可直接開始使用。

備案

不過我建議,有空的時候去備個案,也不麻煩,時間也不長。況且這樣能為以後免去很多麻煩。

各大雲服務廠商都有提供代備案服務,直接按照流程走即可。都是免費的,不收取任何費用。

中間部署

安裝CentOS 7 作業系統

市面上有很多可供選擇的伺服器系統,Linux是毋庸置疑必選的——由於它的穩定性。至於為何選CentOS 7,當然是因為我對它熟悉啊~~ 咳咳,那當然是因為CentOS本身就很適合做web伺服器,況且用戶多,問題容易解決。

具體安裝步驟見另一篇文章//blog.chens.life/how-to-install-CentOS.html

在這裡, 我們需要選擇安裝 基本的網頁伺服器,我們不需要圖形介面,這將會更加省電和高效。

02

配置網卡驅動

剛安裝好的 基本網頁伺服器可能無法連接外網,在Linux終端上使用ping baidu.com測試一下,如果不通,則需要配置一下相關文件。參考這篇文章//www.php.cn/centos/445305.html。這裡是有線網路的配置方法,至於無線網卡如何驅動,請自行百度Google。

更換中國yum源

中國速度太慢,目前中國的大公司有許多開源鏡像站,例如阿里雲、網易、清華大學、華為等等,這裡使用阿里雲的yum源。

參考官方文檔//developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11bXrW8A,依次執行

su
輸入root密碼
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
curl -o /etc/yum.repos.d/CentOS-Base.repo //mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache

安裝ssh

sudo yum install oppenssh -y

啟動ssh的服務:

systemctl start sshd.service

設置開機自動啟動ssh服務

systemctl enable sshd.service

配置文件在/etc/ssh/sshd_config,一般不用修改。

安裝ftp

sudo yum install ftp -y

ssh和ftp服務都是22埠的,我們目前在內網進行部署,所以不必更改埠,後面會進行埠映射,已解決運營商封禁22埠的問題。

至此,我們就可以使用shell和ftp軟體進行遠程連接了,推薦xftp和xshell,學生和家庭用戶免費,在這裡申請,//www.netsarang.com/zh/free-for-home-school/。也可使用免費版的FinalShell,私有雲,密碼:chens.life

安裝寶塔面板

寶塔面板可以更簡單明了的進行網站的部署和伺服器的監控,非常值得推薦。參考官方網站//www.bt.cn/bbs/thread-19376-1-1.html

一鍵安裝命令

sudo yum install -y wget && wget -O install.sh //download.bt.cn/install/install_6.0.sh && sh install.sh

耐心等待其安裝完成,之後會得到一個訪問地址和賬戶密碼,我們先使用內網訪問地址進行操作。

03

第一次配置

使用內網登錄面板,同意使用條款後進入介面。選擇LNMP方案安裝web環境,極速安裝。注意!php版本選擇7.2版本,以後許多開源好用的軟體必須高版本php的支援,例如nextcloud。

04

耐心等待安裝完成。

修改安全設置

安裝完成之後會提醒你

當前面板使用的是默認埠[8888],有安全隱患,請到面板設置中修改面板埠!

所以我們到 面板設置中修改面板埠安全入口面板用戶面板密碼,按照自己的需求修改。,例如我將埠修改為5656,安全入口修改為blogtest。這樣設置之後就避免了面板被暴力破解的幾率,更加的安全。

06

修改默認建站目錄

如果/目錄容量太小,而其他目錄空間較大,就可以將默認建站目錄修改為自己想要的位置。在面板設置 -> 默認建站目錄修改。本例中只有/目錄,所以不再演示。

配置路由器埠映射

到了這一步就基本完成了伺服器環境的搭建,最重要的一步就是如何讓外網能夠訪問自己的伺服器,並打開寶塔面板。

首先我們登錄自己的路由器控制台,綁定自己伺服器的內網IP地址,這樣防止了埠映射因為伺服器內網IP地址變動而出錯。之後,我們需要進入埠映射這一高級功能,填上要映射的外網埠和內網IP和埠,即可使用自己的公網IP加埠訪問到寶塔面板,證明埠映射成功。例如這樣

07

08

寶塔面板的外部和內部埠可以相同,這主要看自己的電信運營商有沒有封禁使用的埠。例如要想訪問80埠的web伺服器,我們只能把99(舉個例)映射到內網IP的80埠,這樣就實現了外網訪問。就是有點難看罷了。

不過,如果你所在的電信運營商沒有封禁443埠,就可以使用https加密來不加埠訪問自己的網頁了。這需要在埠映射中添加轉發規則.

09

而你的網址也要申請ssl證書,才能開啟https加密。我們後面會講到,直接使用寶塔的一鍵部署功能。

dns解析

登錄dns解析管理後台,把域名解析到自己當前的公網IP。即可通過域名加埠的方式訪問自己的網站。

後期完善

動態域名解析

關於動態域名解析,雖然有花生殼等服務商,但都是收錢的,況且自定義域名也是收費的。我目前再用GitHub上的一個開源項目//github.com/NewFuture/DDNS,根據相關說明配置好以後,讓寶塔計劃任務每10分鐘執行一次,即可實現動態域名解析。

10

ssl證書部署

在寶塔面板網站設置的ssl中,申請Let’s Encrype證書,選擇阿里雲ddns驗證(根據自己的雲服務商)。寶塔ssl證書在自建伺服器的條件下不可用。

11

筆記型電腦禁止盒蓋休眠

vim /etc/systemd/logind.conf,將HandleLidSwitch:後面改為ignore,將前面的#去掉。保存退出。然後執行systemctl restart systemd-logind即可生效。

常見錯誤

https無法訪問

只設置了80埠的映射,沒有設置443埠的映射。或者設置了,但是沒有點擊 立即生效

CentOS無法ping通,無法連接外網

參考這篇文章即可解決//blog.csdn.net/sinat_32079337/article/details/70238107

結尾

這就是我自建web伺服器的大致過程了,因為使用了虛擬機模擬的一部分內容,所以可能不是100%的資訊一致。但是,道理都是一樣的,我們也要合理的利用百度和Google。希望這會對你有所幫助。

歡迎在下方留言,或者給我發郵件:[email protected]

歡迎訪問我的個人部落格//blog.chens.life

Tags: