寫在前面:本文的Nginx是在Linux環境下使用的,需要掌握Linux知識和JavaWeb知識
Linux教學:
保姆級教學!Linux操作3天快速入門系列 第一天【篇一】(常用命令)
保姆級教學!Linux操作3天快速入門系列 第二天【篇二】(整合常用命令)
保姆級教學!Linux操作3天快速入門系列 第三天【篇三】(附帶CentOS7的jdk,Tomcat安裝)作者公衆號:小白編碼
本文目錄:
什麼是 nginx
Nginx 是高性能的 HTTP 和反向代理的服務器,處理高併發能力是十分強大的,能經受高負載的考驗 有報告表明能支持高達 50,000 個併發連接數。
Nginx安裝
1.安裝編譯工具及庫文件
yum -y install make zlib zlib-devel gcc-c ++ libtool openssl openssl-devel
2.安裝pcre包的時候提示缺少c++編譯器
使用yum安裝
yum -y install gcc-c++
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
3.安裝 pcre 依賴
-
第一步 聯網下載 pcre 壓縮文件依賴
wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre 8.37.tar.gz -
第二步 解壓壓縮文件使用命令
tar -xvf pcre8.37.tar.gz
-
進入:
cd pcre-8.37
-
第三步
./configure
完成後, -
編譯且安裝
make && make install
-
安裝
openssl 、 zlib 、 gcc
依賴yumy install make zlib zlib devel gcc c++ libtool openssl openssl devel
4.安裝 nginx
- 使用命令解壓好nginx
tar
包 - 進入解壓後的nginx目錄然後執行
./configure
- 編譯安裝:
make && make install
- 進入目錄 /usr/local/nginx/sbin/
- 測試,輸入ip地址
Nginx 的常用的命令
以下命令需要先進入/nginx/sbin下
首先:
cd /usr/local/nginx/sbin
1 查看 nginx 版本號
./nginx -v
2 啓動 nginx
./nginx
3 停止 nginx
./nginx -s stop
4 重新加載 nginx
./nginx -s reload
5.修改配置文件
cd /usr/local/nginx/conf/
vim nginx.conf
Nginx配置文件介紹:
配置文件地址:cd /usr/local/nginx/conf/
使用Vim可以修改vim nginx.conf
配置文件中的內容
全局塊: 配置服務器整體運行的配置指令
比如 worker_processes 1; 處理併發數的配置
events 塊 : 影響 Nginx 服務器與用戶的網絡連接
比如 worker_connections 1024; 支持的最大連接數爲 1024
http 塊:包含兩部分:http 全局塊,server 塊
location 指令說明
1、= :用於不含正則表達式的 uri 前,要求請求字符串與 uri 嚴格匹配,如果匹配成功,就停止繼續向下搜索並立即處理該請求。
2、~:用於表示 uri 包含正則表達式,並且區分大小寫。
3、~:用於表示 uri 包含正則表達式,並且不區分大小寫。
4、^~:用於不含正則表達式的 uri 前,要求 Nginx 服務器找到標識 uri 和請求字符串匹配度最高的 location 後,立即使用此 location 處理請求,而不再使用 location 塊中的正則 uri 和請求字符串做匹配。 注意:如果 uri 包含正則表達式,則必須要有 ~ 或者 ~* 標識。
反向代理介紹
反向代理就是:暴露的是代理服務器地址,隱藏了真實服務器 IP 地址。然後反向代理到指定的服務器。
負載均衡介紹
增加服務器的數量,然後將請求分發到各個服務器上,將原先請求集中到單個服務器上的情況改爲將請求分發到多個服務器上,將負載分發到不同的服務器,也就是我們所說的負載均衡
動靜分離介紹
動靜分離就是通過nginx設置,將靜態資源和動態資源分開存放,若客戶端請求的是靜態資源,nginx自動轉發到靜態資源的目錄,而當客戶端請求的是動態資源,那麼nginx將會請求轉發到動態資源目錄,獲取動態資源。
動態資源有: jsp,servlet等等
靜態資源有: html,css,img等等
Nginx使用:
首先配置多個Tomcat
tomcat/conf/server.xml 是tomcat服務配置文件,下面把該配置文件中各端口的含義說明下.
<Server port=“8005” shutdown=“SHUTDOWN”>接受服務器關閉指令的端口號,我們叫關閉指令端口.
<Connector port=“8080” protocol="HTTP/1.1 connectionTimeout=“20000”
redirectPort=“8443” />`
http請求處理端口,我們在網頁上輸入的普通url地址包含的端口就是他 .這個端口叫http端口.
<Connector port=“8080” protocol="HTTP/1.1"connectionTimeout="20000"redirectPort=“8443” />
https請求的處理端口.這個端口叫https端口.
<Connector port=“8009” protocol=“AJP/1.3” redirectPort=“8443” />接收AJP協議的處理端口.這個端口叫ajp端口.
<Connector port=“8009” protocol=“AJP/1.3” redirectPort=“8443” />
https請求的處理端口,實際上就4個端口 。
下面我以一個系統裏啓動3個tomcat爲例,說明下操作步驟
分配端口
Tomcat8080端口分配表(tomcat1全部採用默認配置)
端口 | 端口號 |
---|---|
關閉指令端口 | 8005 |
http端口 | 8080 |
https端口 | 8443 |
Ajp端口 | 8009 |
Tomcat8081端口分配表
端口 | 端口號 |
---|---|
關閉指令端口 | 8006 |
http端口 | 8081 |
https端口 | 8444 |
Ajp端口 | 8010 |
Tomcat8082端口分配表
端口 | 端口號 |
---|---|
關閉指令端口 | 8007 |
http端口 | 8082 |
https端口 | 8445 |
Ajp端口 | 8011 |
然後啓動這三個tomcat即可
配置4個tomcat
分別解壓到這4個文件夾
tomcat8080建test8080
tomcat8081建test8081
tomcat8082建test8082
tomcat8083建test8083
修改端口
進入tomcat的conf中,修改 vim server.xml(以上方式)
Nginx 反向代理一:
配置Nginx
實現效果: 通過輸入ip地址,訪問的是tomcat的8080端口頁面
效果圖:
Nginx反向代理二:
第一步,準備兩個 tomcat ,一個 8001 端口,一個 8002 端口,並準備好測試的頁面
第二步,修改 nginx 的配置文件
在http 塊中添加 server{}
實現效果:
使用 nginx 反向代理, 根據訪問的路徑跳轉到不同端口的服務中nginx 監聽端口爲 80
訪問 http://ip地址/test8080/ 直接跳轉到 ip地址:8080
訪問 http://ip地址/test8081/ 直接跳轉到 ip地址:8081
配置Nginx
測試:
訪問test8080
訪問test8081
Nginx 動靜分離
通過 location 指定不同的後綴名實現不同的請求轉發。通過 expires 參數設置,可以使瀏覽器緩存過期時間,減少與服務器之前的請求和流量。具體 Expires 定義:是給一個資源設定一個過期時間,也就是說無需去 服務端驗證,直接通過瀏覽器自身確認是否過期即可,所以不會產生額外的流量。此種方法非常適合不經常變動的資源。(如果經常更新的文件,不建議使用 Expires 來緩存),我這裏設置 3d ,表示在這 3 天之內訪問這個 URL ,發送一個請求,比對服務器該文件最後更新時間沒有變化,則不會從服務器抓取,返回狀態碼 304如果有修改,則直接從服務器重新下載,返回狀態碼 200 。
動態請求: 通俗的講:需要查詢數據,則要經過tomcat
靜態請求: 通俗的講,需要查詢靜態的圖片,nginx轉發到靜態資源服務器
前提: 在根目錄下創建/data,放靜態資源
配置Nginx
測試效果:
靜態網頁:
靜態圖片:
Nginx 負載均衡
nginx 分配服務器策略
第一種 輪詢(默認)
每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器 down 掉,能自動剔除。
第二種 weight
weigh t 代表權重默認爲 1, 權重越高被分配的客戶端越多
第三種 ip_hash
每個請求按訪問 ip 的 hash 結果分配,這樣每個訪客固定訪問一個後端服務器
第四種 fair (第三方
按後端服務器的響應時間來分配請求,響應時間短的優先分配。
在每個tomcat中加入一個文件avgtest分別放入a.html:
配置Nginx:
測試:
第一次刷新
第二次刷新:
3個分配服務器策略配置:
權重:
ip_hash:
fair分配:
最後:
以上就是Nginx的簡單介紹與使用,如果對你有幫助可以點贊支持^ _ ^
公衆號:小白編碼