Nginx-狂神說

Nginx概述

公司產品出現瓶頸?

我們公司項目剛剛上線的時候,并發量小,用戶使用的少,所以在低并發的情況下,一個jar包啟動應用就夠了,然后內部tomcat返回內容給用戶。
在這里插入圖片描述

但是慢慢的,使用我們平臺的用戶越來越多了,并發量慢慢增大了,這時候一臺服務器滿足不了我們的需求了。

在這里插入圖片描述

于是我們橫向擴展,又增加了服務器。這個時候幾個項目啟動在不同的服務器上,用戶要訪問,就需要增加一個代理服務器了,通過代理服務器來幫我們轉發和處理請求。

在這里插入圖片描述

我們希望這個代理服務器可以幫助我們接收用戶的請求,然后將用戶的請求按照規則幫我們轉發到不同的服務器節點之上。這個過程用戶是無感知的,用戶并不知道是哪個服務器返回的結果,我們還希望他可以按照服務器的性能提供不同的權重選擇。保證最佳體驗!所以我們使用了Nginx。

什么是Nginx?

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

其特點是占有內存少,并發能力強,事實上nginx的并發能力在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。在全球活躍的網站中有12.18%的使用比率,大約為2220萬個網站。

Nginx 是一個安裝非常的簡單、配置文件非常簡潔(還能夠支持perl語法)、Bug非常少的服務。Nginx 啟動特別容易,并且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠不間斷服務的情況下進行軟件版本的升級。

Nginx代碼完全用C語言從頭寫成。官方數據測試表明能夠支持高達 50,000 個并發連接數的響應。

Nginx作用?

Http代理,反向代理:作為web服務器最常用的功能之一,尤其是反向代理。

正向代理
在這里插入圖片描述

玩游戲時會用到VPN,打吃雞帶寬延遲的特別的慢,掛VPN就會非常快,因為中國目前不能訪問外國的網站的,比如訪問谷歌訪問不了,但是為什么掛了VPN就能夠訪問外網了,這里其實是正向代理起了作用。比如說你的電腦,掛了個VPN,就相當于你電腦做了個代理,它會幫你請求外部的資源,比如代理服務器在香港,香港就是可以訪問外網的,這個時候你的服務器請求香港服務器,香港服務器再去請求美國服務器,美國服務器就會返回數據到香港服務器,香港服務器就會返回數據給你。

代理客戶端的這種翻墻工具就是正向代理。與之同時,代理服務器端的就是反向代理。

動靜分離
比如你的項目里有非常多的靜態資源,比如你放了bootstrap、jquery的相關js文件,像這樣一堆靜態資源每次都要從你的jar包里面去加載就非常麻煩,那我希望有個靜態資源服務器用來存放這些靜態資源,他從靜態資源服務器這邊加載就好了,能夠提升一定的訪問速度

Nginx的安裝

在這里插入圖片描述

windows下安裝

linux下安裝

Nginx常用命令

cd /usr/local/nginx/sbin/
./nginx  啟動
./nginx -s stop  停止 -s 表示在當前目錄下,所以必須要先進入/usr/local/nginx/sbin目錄下執行該命令才不會出問題
./nginx -s quit  安全退出
./nginx -s reload  重新加載配置文件
ps aux|grep nginx  查看nginx進程

nginx配置文件講解

nginx.conf這個文件里的內容主要分為三大模塊,一個是nginx的全局配置,一個是events模塊,一個是http模塊。

在http模塊中有很多個server的配置,server就是可以配置不同的服務。可以看到nginx.conf配置文件中,有沒有注釋掉的80端口的服務,也有被注釋掉的443端口的服務。

# localhost配置
# 此時訪問是:http://localhost:80/
localhost / { #配置為/,當訪問80端口的根目錄,那么就會走到這里面的相關配置#xxx 相關配置
}# 此時訪問是:http://localhost:80/admin
localhost /admin { #配置為/,當訪問80端口的/admin路徑,那么就會走到這里面的相關配置#xxx 相關配置
}

謹記:所有的配置文件后面一定要以;(分號)結尾

演示

需求:我有個jar,使用java -jar xxx.jar運行起來端口分別為8080、8081的兩個服務,但是我得訪問localhost:8080/和localhost:8081,這時候需要使用nginx進行反向代理和負載均衡處理。
在這里插入圖片描述
在這里插入圖片描述

當訪問localhost:80,直接訪問到jar包里內容時,就成功了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15967.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15967.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15967.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTTP 各版本差異

http1.0 它的特點是每次請球和響應完畢后都會銷毀TCP 連接。同時規走前一個響應完成后才發送下一個請求。這樣做有兩個問題: 無法復用連接了。 每次請求都要創建新的TCP連接,完成三次握手和四次揮手。網絡利用率低 隊頭阻塞 如果前一個請求被某種原因阻…

K8S認證|CKA題庫+答案| 13. sidecar 代理容器日志

目錄 13、使用 sidecar 代理容器日志 CKA v1.29.0模擬系統免費下載試用: 題目: 開始操作: 1)、切換集群 2)、生成yaml文件 3)、官網找模板 4)、編輯yaml文件 5)、應用yaml…

車載電子電器架構 —— 智能座艙技術

車載電子電器架構 —— 智能座艙技術 我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 屏蔽力是信息過載時代一個人的特殊競爭力,任何消耗你的…

qt multiple definition of 報錯解決

qt編譯報了很多錯, multiple definition of xxx 原來一維設計文件ui 的問題 后來發現是pro中頭文件和cpp文件重寫了,導致重復編譯報的錯 解決方法:把重復的頭文件和cpp文件刪了就可以了。

如何解決0.1+0.2!=0.3的問題

var x 0.1; var y 0.2; var z x y // z 的結果為 0.30000000000000004 if (z 0.3) // 返回 false 可以用整數的乘除法來解決 var z (x * 10 y * 10) / 10; // z 的結果為 0.3

GEO數據挖掘-GEO背景知識+表達芯片分析思路

From生物技能樹 GEO數據挖掘第一節 (pipeline) 文章目錄 1.圖表分析2.GEO背景介紹及分析思路3.代碼分析流程4.復雜數據分析理論知識1.數據從哪里來2.有什么類型的數據可挖掘3.如何篩選基因(分析方法)在這里插入圖片描述 圖表介紹1…

Jenkins + github 自動化部署配置

1 Jenkins安裝 AWS EC2安裝Jenkins:AWS EC2 JDK11 Jenkins-CSDN博客 AWS EC2上Docker安裝Jenkins:https://blog.csdn.net/hhujjj2005/article/details/139078402 2 登錄jenkins http://192.168.1.128:8080/ $ docker exec -it d1851d9e3386 /bin/ba…

Multi-objective reinforcement learning approach for trip recommendation

Multi-objective reinforcement learning approach for trip recommendation A B S T R A C T 行程推薦是一項智能服務,為游客在陌生的城市提供個性化的行程規劃。 它旨在構建一系列有序的 POI,在時間和空間限制下最大化用戶的旅行體驗。 將候選 POI 添…

【Shell】sed編輯器實例

sed是用來解析和轉換文本的工具,它使用簡單,是簡潔的程序設計語言。 sed編輯器 (一) sed編輯器基礎1. 簡介2. sed的模式空間 (二)基本的sed編輯命令(三)sed命令實例1. 向文件中添加或…

MFC GDI 繪圖模式、映射模式、畫筆、筆、字體

一 GDI 繪圖模式(RoP2 Mode) 在使用VC MFC進行圖形程序編程時,常會用到GDI繪圖指令,而要做到繪圖時有橡皮筋動態效果,就需設置GDI繪圖模式。GDI繪圖模式有多種,如下: 常用R2_NOT模式來實…

Linux|操作系統|如何下載各個版本的centos操作系統

前言: centos做為一個現在比較常用的Linux社區版本,還是比較受歡迎的,那么,如何下載centos的安裝包,也就是centos的操作系統呢? 首先,我們應該知道硬件底層有aarch64,ppc64&#x…

【限免】短時傅里葉變換時頻分析【附MATLAB代碼】

來源:微信公眾號:EW Frontier 簡介 一種能夠同時對信號時域和頻域分析的方法——短時傅里葉變換(STFT),可以在時頻二維角度準確地描述信號 的時間、頻域的局部特性,與其他算法不同,通過該算法可…

【Elasticsearch】Centos7安裝Elasticsearch、kibana、IK分詞

目錄 本文安裝包下載地址注意安裝elasticsearch1.上傳文件2.解壓elasticsearch-6.3.1.tar.gz3.開啟遠程連接權限4.修改其他配置[root用戶操作]5.重啟虛擬機6.啟動es7.外部訪問 安裝kibana-61.解壓2.配置3.啟動kibana4.訪問5.在開發工具中做數據的增刪改查操作 安裝IK分詞1.wind…

簡述什么是Vue的自定義指令

Vue的自定義指令是Vue框架提供的一種擴展機制,允許開發者注冊自己的指令,從而封裝一些DOM操作或添加額外的功能。這些自定義指令可以在Vue模板中像內置指令(如v-for、v-if等)一樣使用,但提供了更大的靈活性和自定義性。…

QML與C++交互的兩種注冊方法比較(rootContext 和 qmlRegisterType)

在main.cpp實例化對象調用的過程中&#xff0c;注冊是常見的操作之一&#xff0c;目前接觸到的方法有兩種&#xff0c;兩者的目的和使用方式是不同的&#xff0c;通過代碼可以直觀的 看出來&#xff1a; int main(int argc, char *argv[]) { #if QT_VERSION < QT_VERSION_C…

軟件安全復習

文章目錄 第一章 軟件安全概述1.1 信息定義1.2 信息的屬性1.3 信息安全1.4 軟件安全1.5 軟件安全威脅及其來源1.5.1 軟件缺陷與漏洞1.5.1.1 軟件缺陷1.5.1.2 漏洞1.5.1.3 軟件漏洞1.5.1.4 軟件缺陷和漏洞的威脅 1.5.2 惡意軟件1.5.2.1 惡意軟件的定義1.5.2.2 惡意軟件的威脅 1.…

攜手AI,如何共贏未來?

5/25日參加了一個培訓分享會&#xff0c;由博奧研究院、武漢博奕咨詢和華工科技聯合舉辦&#xff0c;主題是“攜手Ai&#xff0c;共贏未來”。 抱著跟書友線下交流的心態我參與了&#xff0c;參與前我對博奧做了基礎了解&#xff0c;他們跟工信部考試和教育中心有合作&#x…

【C語言】指針作為參數(傳值調用vs傳址調用)

前言 在前面講了那些指針相關的內容后&#xff0c;是時候探討一下指針有什么作用了。 在C語言中&#xff0c;指針有多種各不相同的應用&#xff0c;在本篇文章中&#xff0c;我們探討一下指針作為函數參數的作用&#xff08;對比傳值與傳址兩種不同函數調用方式&#xff09;。…

【QGIS入門實戰精品教程】10.7: 基于DEM的地形因子分析(坡度、坡向、粗糙度、山體陰影、耐用指數)

文章目錄 一、加載dem二、山體陰影三、坡度四、坡向五、地形耐用指數六、地形位置指數七、地表粗糙度一、加載dem 二、山體陰影 方法一:符號系統 利用符號系統中的山體陰影,渲染出陰影效果。 方法二:山體陰影工具 該算法計算輸入中的數字化地形模型的山體陰影。根據太陽的位…

2024 年 5 個 GO REST API 框架

什么是API&#xff1f; API是一個軟件解決方案&#xff0c;作為中介&#xff0c;使兩個應用程序能夠相互交互。以下一些特征讓API變得更加有用和有價值&#xff1a; 遵守REST和HTTP等易于訪問、廣泛理解和開發人員友好的標準。API不僅僅是幾行代碼&#xff1b;這些是為移動開…