1. 程式人生 > 其它 >nginx基礎(1) ->(個人學習記錄筆記)

nginx基礎(1) ->(個人學習記錄筆記)

@

目錄

nginx

1. Nginx概述

1.1 nginx簡介

Nginx (engine x) 是一個高效能的HTTP和反向代理web伺服器,同時也提供了IMAP/POP3/SMTP服務。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點(俄文:Рамблер)開發的,第一個公開版本0.1.0釋出於2004年10月4日。

其將原始碼以類BSD許可證的形式釋出,因它的穩定性、豐富的功能集、簡單的配置檔案和低系統資源的消耗而聞名。2011年6月1日,nginx 1.0.4釋出。

Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等。

1.2 正向代理

正向代理,意思是一個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理髮送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端才能使用正向代理。

1.3 反向代理

反向代理伺服器位於使用者與目標伺服器之間,但是對於使用者而言,反向代理伺服器就相當於目標伺服器,即使用者直接訪問反向代理伺服器就可以獲得目標伺服器的資源。同時,使用者不需要知道目標伺服器的地址,也無須在使用者端作任何設定。反向代理伺服器通常可用來作為Web加速,即使用反向代理作為Web伺服器的前置機來降低網路和伺服器的負載,提高訪問效率。

1.4 負載均衡

負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬、增加吞吐量、加強網路資料處理能力、提高網路的靈活性和可用性。

負載均衡(Load Balance)其意思就是分攤到多個操作單元上進行執行,例如Web伺服器、FTP伺服器、企業關鍵應用伺服器和其它關鍵任務伺服器等,從而共同完成工作任務。

  • 未負載均衡前
    - 負載均衡後

1.5 動靜分離

動靜分離是指在web伺服器架構中,將靜態頁面與動態頁面或者靜態內容介面和動態內容介面分開不同系統訪問的架構設計方法,進而提升整個服務訪問效能和可維護性。

2. 防火牆查詢操作

firewall-cmd [選項 ... ]

選項

通用選項

-h, --help    # 顯示幫助資訊;
-V, --version # 顯示版本資訊. (這個選項不能與其他選項組合);
-q, --quiet   # 不列印狀態訊息;

狀態選項

--state                # 顯示firewalld的狀態;
--reload               # 不中斷服務的重新載入;
--complete-reload      # 中斷所有連線的重新載入;
--runtime-to-permanent # 將當前防火牆的規則永久儲存;
--check-config         # 檢查配置正確性;

日誌選項

--get-log-denied         # 獲取記錄被拒絕的日誌;
--set-log-denied=<value> # 設定記錄被拒絕的日誌,只能為 'all','unicast','broadcast','multicast','off' 其中的一個;

具體程式碼:

firewall-cmd --version  # 檢視版本
firewall-cmd --help     # 檢視幫助
 
# 檢視設定:
firewall-cmd --state  # 顯示狀態
firewall-cmd --get-active-zones  # 檢視區域資訊
firewall-cmd --get-zone-of-interface=eth0  # 檢視指定介面所屬區域
firewall-cmd --panic-on  # 拒絕所有包
firewall-cmd --panic-off  # 取消拒絕狀態
firewall-cmd --query-panic  # 檢視是否拒絕
 
firewall-cmd --reload # 更新防火牆規則
firewall-cmd --complete-reload
# 兩者的區別就是第一個無需斷開連線,就是firewalld特性之一動態新增規則,第二個需要斷開連線,類似重啟服務
 
 
# 將介面新增到區域,預設介面都在public
firewall-cmd --zone=public --add-interface=eth0
# 永久生效再加上 --permanent 然後reload防火牆
 
# 設定預設介面區域,立即生效無需重啟
firewall-cmd --set-default-zone=public
 
# 檢視所有開啟的埠:
firewall-cmd --zone=dmz --list-ports
 
# 加入一個埠到區域:
firewall-cmd --zone=dmz --add-port=8080/tcp
# 若要永久生效方法同上
 
# 開啟一個服務,類似於將埠視覺化,服務需要在配置檔案中新增,/etc/firewalld 目錄下有services資料夾,這個不詳細說了,詳情參考文件
firewall-cmd --zone=work --add-service=smtp
 
# 移除服務
firewall-cmd --zone=work --remove-service=smtp
 
# 顯示支援的區域列表
firewall-cmd --get-zones
 
# 設定為家庭區域
firewall-cmd --set-default-zone=home
 
# 檢視當前區域
firewall-cmd --get-active-zones
 
# 設定當前區域的介面
firewall-cmd --get-zone-of-interface=enp03s
 
# 顯示所有公共區域(public)
firewall-cmd --zone=public --list-all
 
# 臨時修改網路介面(enp0s3)為內部區域(internal)
firewall-cmd --zone=internal --change-interface=enp03s
 
# 永久修改網路介面enp03s為內部區域(internal)
firewall-cmd --permanent --zone=internal --change-interface=enp03s