在linux中,nginx是一個高效能的HTTP和反向代理web伺服器,是一款高效能的http伺服器、反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
nginx是什麼
Apache 靜態資源伺服器
nginx 是一個 反向代理的 靜態資源伺服器 。
nginx是一個使用c語言開發的高效能的http伺服器及反向代理伺服器。Nginx是一款高效能的http 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。由俄羅斯的程式設計師Igor Sysoev所開發,官方測試nginx能夠支支撐5萬並行連結,並且cpu、記憶體等資源消耗卻非常低,執行非常穩定。
正向代理:
反向代理:
反向代理一般是用在伺服器端 ,做請求的分發 ,能實現負載均衡。
Nginx的應用場景
1、 http伺服器。Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態伺服器。
2、 虛擬主機。可以實現在一臺伺服器虛擬出多個網站。例如個人網站使用的虛擬主機。
基於埠的,不同的端
基於域名的,不同域名
3、 反向代理,負載均衡。當網站的存取量達到一定程度後,單臺伺服器不能滿足使用者的請求時,需要用多臺伺服器叢集可以使用nginx做反向代理。並且多臺伺服器可以平均分擔負載,不會因為某臺伺服器負載高宕機而某臺伺服器閒置的情況。
1、安裝nginx 服務需要的外掛
yum install -y yum-utils
2、安裝nginx
在官方yum源中也是沒有nginx的,但是我們可以在本機去設定nginx的yam源,來實現nginx 的yum安裝。
然後再建立一個nginx.repo的檔案:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
安裝好了:
nginx服務的管理命令:
systemctl start/stop/restart/status nginx
3、需要關閉linux 作業系統的selinux 服務
selinux是linux的安全服務套件
修改 vi /etc/selinux/config檔案,修改如下內容:
修改過之後,必須重新啟動linux。
nginx 組態檔:
我們以後經常修改的組態檔是/etc/nginx/conf.d/default.conf:
下載完壓縮包通過xftp傳到linux的opt資料夾下,進行解壓
第一步,首先要在我們linux伺服器上啟動兩個tomcat
先設定jdk環境變數:
然後 儲存退出 ,在命令列執行 source 命令 編譯環境變數檔案,讓環境變數立刻生效:
tomcat 啟動:
第二步,準備兩個tomcat 一個埠號弄成8000 另外一個9000
第三步,修改nginx的組態檔
沒有安裝vim,使用vi命令
然後重新啟動nginx服務:
輪詢策略
預設nginx支援的策略,來了請求之後 排隊把請求一個一個的分發出去。
權重策略
IP_HASH方式
根據 使用者端ip地址 固定分配到一臺伺服器上,以後這個ip來的所有請求 都會只到這一個伺服器上。
上面我們實現的叢集方式 可以解決tomcat 伺服器單點故障的問題,但是解決不了 nginx伺服器單點故障的問題。
解決nginx 單點故障問題,市場上通用的解決方案就是使用keepalived 這種外掛。
先安裝keepalived服務:
下面修改keepalived的組態檔: vim /etc/keepalived/keepalived.conf檔案:
global_defs { notification_email { #keepalived如果檢測到nginx服務不能用會往這個郵件發信心 [email protected] } #設定郵件伺服器的資訊 notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_MASTER } #宣告一個指令碼 vrrp_script chk_http_port { #檢測本機nginx的服務是否能用的指令碼 這個指令碼等下要自己編寫 script "/usr/local/src/check_nginx_pid.sh" #每隔多長時間自動呼叫上述指令碼 interval 2 #權重 weight 2 } vrrp_instance VI_1 { #state MASTER #設定當前的nginx伺服器是主機還是備機 state BACKUP #設定當前nginx服務是是否非搶佔模式 #nopreempt #設定心跳網路卡的名稱 interface ens33 #所有的keepalived的伺服器的虛擬化路由都要一致 virtual_router_id 50 #nginx伺服器的初始化權重 priority 100 #心跳連線傳送的間隔 advert_int 1 #認證方式和認證密碼 要保證所有keepalive的伺服器的驗證方式和密碼都一樣 authentication { auth_type PASS auth_pass 1111 } #啟用上述指令碼 track_script { chk_http_port } virtual_ipaddress { #設定了keeplived伺服器之後再存取tomcat叢集虛擬的ip地址時多少 192.168.17.222 #虛擬ip } }
下一步,寫/usr/local/src/check_nginx_pid.sh這個指令碼:
#! /bin/bash A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ];then systemctl start nginx if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fi
建立好這個指令碼之後 不要忘記修改檔案的許可權:
下面啟動keepalived服務:
systemctl start keepalived
相關推薦:《Linux視訊教學》
以上就是linux中的nginx是什麼的詳細內容,更多請關注TW511.COM其它相關文章!