在剛接觸時,我對 VPS 主機、虛擬主機、雲服務器等名詞真的是一臉懵,爲了讓後來接觸的人少走一些彎路,同時也給本身作一些筆記,也就出現了本篇文章。本篇文章講述了 瞭解服務器 ---> 選擇服務器 ---> 購買服務器 ---> 使用服務器 ---> 項目部署 這幾方面。文章前半部分主要是爲了區分不一樣的服務器。若是單單隻須要瞭解操做,能夠從購買服務器開始。但願你們看完有所收穫!javascript
服務器一般分爲獨立服務器(物理服務器)、VPS 主機、虛擬主機、雲服務器這幾類。同時,無論是虛擬主機、VPS 主機仍是雲服務器,其本質上都是一臺電腦,它們都由操做系統和服務器資源組成。css
VPS 主機是將一臺物理服務器利用虛擬化技術劃分紅多個操做系統,每一個 VPS 均可分配獨立公網 IP 地址、獨立操做系統、獨立超大空間、獨立內存、獨立 CPU 資源、獨立執行程序和獨立系統配置等,有很大的自主權。它獨享一份操做系統和服務器資源(一份 VPS 資源)。html
相比 VPS 主機,多個虛擬主機共用一份操做系統及服務器資源,能夠說是多個用戶共用一份 VPS 資源。同時阿里雲將虛擬主機分爲兩種。共享型虛擬主機和獨享型虛擬主機,他們主要的區別就是 IP 的不一樣,共享型虛擬主機是共享 IP 而獨享型虛擬主機是獨享型 IP。前端
根據 IP 分類虛擬機,能夠分爲共享 IP 虛擬機和獨立 IP 虛擬機 其區別在於:java
雲服務器是將服務器集羣的資源池(多臺物理服務器)利用虛擬化實現的,換句話說就是將計算機資源整合在一塊兒,作成隨用隨取形式,此時就能夠自由申請資源及釋放資源。這也就是爲何能夠彈性擴展雲服務器資源的緣由。linux
常見雲服務器:nginx
注意:若是 VPS 的母服務器出問題了,就意味着所有在裏面的虛擬主機也出問題了,屬於一損俱損。而云服務器的集羣一臺服務器出問題,還有鏡像文件,不會有任何中斷。shell
虛擬主機又被稱爲虛擬服務器,它是利用虛擬技術將一臺物理服務器或 VPS 主機劃分爲多臺「虛擬」服務器。全部的虛擬主機相互獨立,有各自的 IP 、內存、CPU 、文檔存儲空間等。在外界看來虛擬主機至關於一臺獨立的主機,因此這種虛擬化的邏輯主機被稱爲「虛擬主機」。數據庫
雲服務器(Elastic Compute Service,ECS)的標準定義是指一種簡單高效、安全可靠、處理能力可彈性伸縮的計算服務。其管理方式比物理服務器更簡單高效。雲主機是對多臺物理服務器資源的虛擬化,這意味着跟好的容災能力和伸縮性,具備具備獨立的寬帶和 IP
,用戶能夠根據需求自主安裝各類操做系統和配置相應的運行環境,同時能夠根據本身的需求來升級降級其功能。ubuntu
上手成本高:須要有專業能力的人員管理。
依賴網絡,不像物理服務器同樣數據存儲在本地。
因爲我是學習如何配置nginx,最終我選擇了阿里的雲服務器ECS。
Nginx
是什麼?
Nginx
是一款輕量級的 HTTP 服務器,採用事件驅動的異步非阻塞處理方式框架,這讓其具備極好的 IO 性能,時經常使用於服務端的反向代理和負載均衡。
Nginx
和 Node.js
語言的關係:Node.js
能夠實現 Nginx
中絕大部分功能,可是因爲它們側重不一樣因此能夠配合使用達到更好的效果。Node.js
擅長於具體業務邏輯的處理,而 Nginx
擅長於底層服務端資源的處理,例如靜態資源的轉發、方向代理、負載均衡等。
咱們一般使用的 kexue 上網工具就是正向代理,他能夠把用戶的請求代理到一個能夠訪問外網的服務器上,而後再把返回的信息返回給客戶。代理服務器對於用戶來講是不透明的,用戶須要本身手動選擇代理。
在大型網頁中,大部分都使用了反向代理。當客戶端請求服務端數據的時候。其實是先請求到了代理服務器,而後由代理服務器再轉發到其同個局域網下的服務器。即向外部客戶端提供了一個統一的代理入口,客戶端的請求,都先通過這個 Proxy 服務器,至於在內網真正訪問哪臺服務器內容,由這個 Proxy 去控制。
同時用戶無需進行操做,對於用戶來講反向代理是透明的。
這裏的方向就是正向代理,代理的是客戶端,反向代理代理的是服務器 Nginx
就是來充當這個 Proxy 的做用。
使用反向代理的緣由有:
1.安全及權限:能夠經過 Nginx
過濾一部分沒有權限或者不安全的請求。同時因爲用戶沒法直接訪問到真正的服務器,從而提升了安全性。
2.負載均衡:當有多個服務器時,能夠用 Nginx
作負載均衡,Nginx
會查詢服務器是否異常,若是異常就不發送請求到該服務器上,知道服務器恢復正常。同時還會將請求分到各個服務器上。保證了服務器的安全和穩定性。
地域和可用區:是指 ECS 實例所在的物理位置。
實例:等同於一臺虛擬機,包含 CPU、內存、操做系統、網絡、磁盤等最基礎的計算組件。
實例規格:是指實例的配置,包括 vCPU 核數、內存、網絡性能等。實例規格決定了 ECS 實例的計算和存儲能力。
鏡像:是指ECS實例運行環境的模板,通常包括操做系統和預裝的軟件。操做系統支持多種 Linux 發行版本和不一樣的 Windows 版本。
塊存儲:包括基於分佈式存儲架構的 雲盤和共享塊存儲,以及基於物理機本地硬盤的 本地存儲。
快照:是指某一個時間點上一塊彈性塊存儲的數據備份。
網絡類型:
專有網絡:基於阿里雲構建的一個隔離的網絡環境,專有網絡之間邏輯上完全隔離。更多信息,請參考專有網絡 VPC
。
經典網絡:統一部署在阿里雲公共基礎內,規劃和管理由阿里雲負責。
安全組:由同一地域內具備相同保護需求並相互信任的實例組成,是一種虛擬防火牆,用於設置實例的網絡訪問控制。
是由阿里雲官方或第三方合做商家提供的系統基礎鏡像,僅包括初始系統環境。請根據您的實際狀況自助配置應用環境或相關軟件配置。
基於用戶系統快照生成,包括初始系統環境、 應用環境和相關軟件配置 。選擇自定義鏡像建立雲服務器,節省您的重複配置時間。
是其餘帳號的自定義鏡像主動共享給您使用的鏡像。阿里雲不保證其餘帳號共享給您的鏡像的完整性和安全性,使用共享鏡像須要自行承擔風險。瞭解共享鏡像詳情>
提供經嚴格審覈的優質鏡像,預裝操做系統、應用環境和各種軟件,無需配置,可一鍵部署雲服務器。知足建站/應用開發/可視化管理等個性化需求。瞭解鏡像市場服務>
公共鏡像,中 CentOS
和 Ubuntu
是 Linux 的 2 個主流的發行版。
CentOS | Ubuntu |
---|---|
基於 Red Hat Linux Enterprise | 基於 Debian |
更新頻度較少 | 常常更新 |
更穩定和更安全一些,由於不常常更新。 | 更新的軟件包可能不穩定,不安全?不會,由於他們在發佈到正式版本前進行了大量測試。 |
沒有足夠的教程和用戶羣較少(LCTT 譯註:多是因爲國內外狀況不一樣,在國內,相對 Ubuntu 來講,人們更喜歡用 CentOS 作服務器) | 豐富的文檔,活躍的社區和大量的在線教程 |
對初學者困難,由於基於 Red Hat 桌面發行版不流行 | 更容易爲已經熟悉桌面版 Ubuntu 的初學者使用 |
支持 cPanel | 不支持 cPanel |
.rpm 軟件包和 「yum」 軟件包管理器 | .deb 軟件包和 「apt-get」 軟件包管理器 |
新手:更適合使用 Ubuntu
。
1.因爲他社區強大,不少問題能夠馬上找到解決方案
2.Ubuntu
服務器對於之前使用過 Ubuntu
桌面的人來講會容易得多。其餘發行版也同樣,可是 Ubuntu
桌面版比任何其餘基於 Linux 的家用桌面更受歡迎。
商用: 使用 Centos
1.CentOS
相對更穩定以及更安全,因爲更新頻率低,測試時間長,因此存在的 Bug 不多。
2.大多數控制面板(包括最受歡迎的控制面板 - cPanel
)僅支持 CentOS
。若是你須要控制面板那麼選擇 Centos
是更好的。
購買雲服務器 ECS 具體看本身需求,分爲一鍵購買和自定義購買。
先進入 ECS
控制檯找到按圖中步驟進行鏈接,最後遠程登錄的帳號爲 root,密碼爲服務器密碼。
注意:密碼必須複雜否則容易被入侵。而後把全部相關帳號密碼保存起來以避免丟失。鏈接遠程服務器時,我使用xShell
。其登陸時能夠自動保存登陸態。
Xshell + Xftp 我的版下載地址,輸入名稱和郵箱能夠得到下載鏈接下載。
新建會話,填入實例中的公網 IP。
因爲接入端口爲 22,因此須要在安全組容許端口 22 被接入。
Nginx
nginx.org
是開源社區,管理着Nginx
開源版。
nginx.com
是商業社區,管理着Nginx Plus
商業版。這裏咱們使用的是開源版Nginx官網
使用 Xshell
輸入帳號密碼進入界面,直接按官網,一頓操做。
sudo apt install curl gnupg2 ca-certificates lsb-release
複製代碼
Nginx
的 apt 存儲庫echo "deb http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
複製代碼
Nginx
sudo apt update
sudo apt install nginx
複製代碼
Linux
命令cd 路徑 //進入文件
ps -ax | grep nginx //查看正在運行進程中包含nginx的
kill 端口號 //上個命令可查到端口號kill 掉進程
mkdir dirName1 dirName2 //建立文件夾
ls //查看當前目錄
ll //查看當前目錄及其權限
rm -rf path //強制刪除path沒法恢復
rm path //刪除path文件
cp dirName //賦值文件夾
vim //編輯文件夾,退出且保存須要先按Esc 後輸入 :wq
cat //查看文件夾
複製代碼
ll // 查看當前目錄
複製代碼
cd .. // 到上一層(最頂層)
ll // 查看當前目錄
複製代碼
cd etc/nginx // 進入到 Nginx 目錄
ll // 查看目錄
複製代碼
vim nginx.conf // 編輯配置文件
i // 進入編輯模式
複製代碼
esc // 退出編輯
:wq // 保存當前編輯
// 接下來要重啓才能生效
複製代碼
方法1:
ps -ax | grep nginx // 查看正在運行進程中包含 Nginx 的進程
kill 端口號 // 上面能夠查詢到
nginx
複製代碼
方法2:
nginx -s reload // 重啓服務器
複製代碼
nginx 直接開啓
nginx -s quit 保存後退出
nginx -s stop 直接退出
nginx -s reload 修改配置項後直接更新
#能夠配合 ps -ax | grep nginx 來查看當前 Nginx 使用的端口
複製代碼
輸入你服務器的 IP
後會直接看到 welcome nginx
頁面!這是因爲配置項默認引用 /conf.d
路徑下的全部配置文件。
若是不須要,那麼直接註釋掉。本身在 nginx.conf
文件配置便可
server {
# nginx監聽端口號,不能被其餘應用佔用a
listen 80;
# nginx綁定的域名
server_name localhost;
# 公共靜態資源
location / {
index index.html;
root /project/airport_pc;
# 項目打算放入的位置
autoindex on;
# 是否啓用目錄索引
}
}
複製代碼
下載 winSCP
或者 Xftp
後登錄
把 Vue
打包獲得dist文件下的文件放到前面配置位置下(前面配置的 /project/airport_pc
)
// /etc/nginx# vim nginx.conf 文件
default_type application/octet-stream;
# 默認文件類型
# Load modular configuration files from the /etc/nginx/conf.d directory.
# 加載模塊化配置文件
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
# include /etc/nginx/conf.d/*.conf;
gzip on;
gzip_comp_level 6;
gzip_types text/plain application/javascript application/x-javascript text/css text/javascript ;
gzip_static on;
gzip_vary on;
gzip_buffers 2 4k;
gzip_http_version 1.1;
server {
# nginx監聽端口號,不能被其餘應用佔用a
listen 80;
# nginx綁定的域名
server_name localhost;
# 公共靜態資源
location / {
index index.html;
root /project/airport_pc/;
autoindex on;
# 是否啓用目錄索引
# 開啓強緩存
add_header Cache-Control max-age=360000;
}
}
}
複製代碼
注意:
海外服務器和國內服務器的區別主要在於國內服務器須要備案,主要訪問者是中國人。
備案完成後,若是須要更換服務器不須要從新備案,只須要把以前備案過的域名解析到新的服務器便可。
備案完成後,想要更換其餘域名解析到該服務器,沒法直接經過域名訪問到該服務器,須要從新備案。
終於結束了!本篇文章主要是總結,網上資料存在矛盾以及重複,若是發現錯誤,歡迎留言指出!
若是對你有用,點個贊再走唄!
Nginx
進階可看 Nginx與前端開發、Nginx 從入門到實踐,萬字詳解!
參考文檔: