什么是nginx卦绣?
nginx是一款高性能的http 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器
?nginx應用場景
1诀黍、http服務器满钟。Nginx是一個http服務可以獨立提供http服務嘴拢∽ぃ可以做網頁靜態(tài)服務器。
2席吴、虛擬主機赌结。可以實現在一臺服務器虛擬出多個網站孝冒。例如個人網站使用的虛擬主機柬姚。
3、反向代理庄涡,負載均衡量承。當網站的訪問量達到一定程度后,單臺服務器不能滿足用戶的請求時,需要用多臺服務器集群可以使用nginx做反向代理撕捍。并且多臺服務器可以平均分擔負載拿穴,不會因為某臺服務器負載高宕機而某臺服務器閑置的情況。
Windows環(huán)境下安裝Nginx
解壓:nginx-windows
雙擊: nginx.exe
打開瀏覽器輸入127.0.0.1有下面界面
關閉nginx忧风,windows一般通過進程直接殺死默色,當然也有命令nginx.exe -s stop –停止
什么是反向代理?
反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然后將請求轉發(fā)給內部網絡上的服務器狮腿,并將從服務器上得到的結果返回給internet上請求連接的客戶端腿宰,此時代理服務器對外就表現為一個反向代理服務器。
啟動一個Tomcat 127.0.0.1:8080
使用nginx反向代理 8080.briup.com 直接跳轉到127.0.0.1:8080
Host(路徑C:\Windows\System32\drivers\etc)文件新增
127.0.0.1 8080.briup.com
nginx.conf 配置
?server {
#監(jiān)聽端口蚤霞,可以改為你想監(jiān)聽的酗失,記住是瀏覽器輸入的端口號
??????? listen?????? 80;
??????? server_name? 8080.briup.com;
??????? location / {
#訪問的真正地址,可以跟controller的映射地址
??????? ??? proxy_pass?http://127.0.0.1:8080;
?????????? index? index.html index.htm;
??????? }
??? }
如果有多個服務地址可以配置多個server
?server {
??????? listen?????? 80;
??????? server_name? b8081.briup.com;
??????? location / {
??????? ??? proxy_pass?http://127.0.0.1:8081;
?????????? index? index.html index.htm;
??????? }
??? }
nginx實現負載均衡
什么是負載均衡
負載均衡 建立在現有網絡結構之上昧绣,它提供了一種廉價有效透明的方法擴展網絡設備和服務器的帶寬规肴、增加吞吐量、加強網絡數據處理能力夜畴、提高網絡的靈活性和可用性拖刃。
??? 負載均衡,英文名稱為Load
Balance贪绘,其意思就是分攤到多個操作單元上進行執(zhí)行兑牡,例如Web服務器、FTP服務器税灌、企業(yè)關鍵應用服務器和其它關鍵任務服務器等均函,從而共同完成工作任務。
面試可以說:減輕單臺服務器的壓力菱涤,高并發(fā)解決方案
可以在config中配置苞也,和server同級配置
輪詢(默認)每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉粘秆,能自動剔除如迟。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
指定權重指定輪詢幾率,weight和訪問比率成正比攻走,用于后端服務器性能不均的情況殷勘。?upstream backserver {
server 192.168.0.14 weight=10;
?server 192.168.0.15 weight=10;
?}
weight代表當訪問時根據權重可以有比例選擇不同的服務器
完整代碼
upstream backserver {
? server 127.0.0.1:8080;
? server 127.0.0.1:8081;
? }
? server {
? listen?????? 80;
? server_name? www.briup.com;
? location / {
???????????????? ??? proxy_pass? http://backserver;//后面可以跟controller映射地址
???????????????????????? index? index.html index.htm;
? }
? }
還可以設置輪詢,假如訪問某個服務器超時多長時間沒有響應昔搂,則去訪問下一個服務器
?server {
???????listen?????? 80;
???????server_name? www.briup.com;
???????location / {
?????????? proxy_pass?http://backserver;
?????????? index? index.html index.htm;
?????????? proxy_connect_timeout1;//連接超時
???????????proxy_send_timeout 1;//發(fā)送超時
???????????proxy_read_timeout 1;//加載超時
???????}
???????????????? }
?nginx解決網站跨域問題玲销,同一個域名,訪問時對應服務器可以監(jiān)聽為同一個了
server {
???????listen?????? 80;
???????server_name? www.briup.com;
???????location /A {
???????????????? ??? proxy_pass?http://a.a.com:81/A;
???????????????????????? index? index.html index.htm;
???????}
???????????????? location/B {
???????????????? ??? proxy_pass?http://b.b.com:81/B;
???????????????????????? index? index.html index.htm;
???? ???}
??? }
unix下其實配置和上面一樣摘符,可以通過寶塔的nginx配置
如果想通過命令安裝痒玩,可以參照以下
1.sudo apt-get install nginx
?????? whereis nginx? #查看nginx安裝路徑
???????????? 安裝好的文件位置:
???????????? /usr/sbin/nginx:主程序
???????????? /etc/nginx:存放配置文件
????????????? /usr/share/nginx:存放靜態(tài)文件
???????????? /var/log/nginx:存放日志
2.查找Nginx啟動文件路徑
???? find / -name nginx.conf
3.查詢nginx進程
??? ps -ef | grep nginx
4.重啟nginx
??? sudo nginx -s reload
啟動nginx:
nginx -c /path/to/nginx.conf
關閉nginx:
nginx -s stop? :快速停止nginx
重啟服務:?service nginx restart