摘要:老師比較精明,他告訴學(xué)生,誰完成了作業(yè)舉手,有舉手的同學(xué)他才去指導(dǎo)問題,他讓學(xué)生主動(dòng)發(fā)聲,分開了并發(fā)。
一、環(huán)境
服務(wù)器版本:CentOS 7.2
為了保證學(xué)習(xí)階段不遇到奇怪的事情,請(qǐng)保證以下四點(diǎn)(大神選擇性無視)
確認(rèn)系統(tǒng)網(wǎng)絡(luò)
確認(rèn)yum可用
確認(rèn)關(guān)閉iptables
確認(rèn)停用selinux
#查看iptables狀態(tài) systemctl status firewalld.service #關(guān)閉防火墻(臨時(shí)關(guān)閉) systemctl stop firewalld.service #查看SELinux狀態(tài) getenforce #臨時(shí)關(guān)閉SELinux setenforce 0
安裝一些系統(tǒng)基本工具,正常情況系統(tǒng)都會(huì)自帶(沒有在裝哦)
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake yum -y install wget httpd-tools vim二、Nginx是什么?
Nginx是一個(gè)開源且高性能、可靠的HTTP中間件、代理服務(wù)
其他的HTTP服務(wù):
HTTPD-Apache基金會(huì)
IIS-微軟
GWS-Google(不對(duì)外開放)
近幾年,Nginx的市場(chǎng)占有率越來越高,一度飆升,為什么呢?接下來我們就知道了!
三、我們?yōu)槭裁催x擇Nginx?1. IO多路復(fù)用epoll(IO復(fù)用)
如何理解呢?舉個(gè)例子吧!
有A、B、C三個(gè)老師,他們都遇到一個(gè)難題,要幫助一個(gè)班級(jí)的學(xué)生解決課堂作業(yè)。
老師A采用從第一排開始一個(gè)學(xué)生一個(gè)學(xué)生輪流解答的方式去回答問題,老師A浪費(fèi)了很多時(shí)間,并且有的學(xué)生作業(yè)還沒有完成呢,老師就來了,反反復(fù)復(fù)效率極慢。
老師B是一個(gè)忍者,他發(fā)現(xiàn)老師A的方法行不通,于是他使用了影分身術(shù),分身出好幾個(gè)自己同一時(shí)間去幫好幾個(gè)同學(xué)回答問題,最后還沒回答完,老師B消耗光了能量累倒了。
老師C比較精明,他告訴學(xué)生,誰完成了作業(yè)舉手,有舉手的同學(xué)他才去指導(dǎo)問題,他讓學(xué)生主動(dòng)發(fā)聲,分開了“并發(fā)”。
這個(gè)老師C就是Nginx。
2. 輕量級(jí)
功能模塊少 - Nginx僅保留了HTTP需要的模塊,其他都用插件的方式,后天添加
代碼模塊化 - 更適合二次開發(fā),如阿里巴巴Tengine
3. CPU親和
把CPU核心和Nginx工作進(jìn)程綁定,把每個(gè)worker進(jìn)程固定在一個(gè)CPU上執(zhí)行,減少切換CPU的cache miss,從而提高性能。
三、安裝與目錄本人使用了鳥哥的lnmp集成包 https://lnmp.org,簡(jiǎn)單方便-推薦!
#執(zhí)行這句語句,根據(jù)指引,將安裝 nginx php mysql 可進(jìn)入lnmp官網(wǎng)查看更詳細(xì)的過程 #默認(rèn)安裝目錄/usr/local wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp #默認(rèn)安裝目錄 /usr/local四、基本配置
#打開主配置文件,若你是用lnmp環(huán)境安裝 vim /usr/local/nginx/conf/nginx.conf ---------------------------------------- user #設(shè)置nginx服務(wù)的系統(tǒng)使用用戶 worker_processes #工作進(jìn)程數(shù) 一般情況與CPU核數(shù)保持一致 error_log #nginx的錯(cuò)誤日志 pid #nginx啟動(dòng)時(shí)的pid events { worker_connections #每個(gè)進(jìn)程允許最大連接數(shù) use #nginx使用的內(nèi)核模型 }
我們使用 nginx 的 http 服務(wù),在配置文件 nginx.conf 中的 http 區(qū)域內(nèi),配置無數(shù)個(gè) server ,每一個(gè) server 對(duì)應(yīng)這一個(gè)虛擬主機(jī)或者域名
http { ... ... #后面再詳細(xì)介紹 http 配置項(xiàng)目 server { listen 80 #監(jiān)聽端口; server_name localhost #地址 location / { #訪問首頁路徑 root /xxx/xxx/index.html #默認(rèn)目錄 index index.html index.htm #默認(rèn)文件 } error_page 500 504 /50x.html #當(dāng)出現(xiàn)以上狀態(tài)碼時(shí)從新定義到50x.html location = /50x.html { #當(dāng)訪問50x.html時(shí) root /xxx/xxx/html #50x.html 頁面所在位置 } } server { ... ... } }
一個(gè) server 可以出現(xiàn)多個(gè) location ,我們對(duì)不同的訪問路徑進(jìn)行不同情況的配置
我們?cè)賮砜纯?http 的配置詳情
http { sendfile on #高效傳輸文件的模式 一定要開啟 keepalive_timeout 65 #客戶端服務(wù)端請(qǐng)求超時(shí)時(shí)間 log_format main XXX #定義日志格式 代號(hào)為main access_log /usr/local/access.log main #日志保存地址 格式代碼 main }四、模塊
查看 nginx 已開啟和編聯(lián)進(jìn)去的模塊,模塊太多了,就不在這長(zhǎng)篇大論,有需要自行百度吧~
#大寫V查看所有模塊,小寫v查看版本 nginx -V # 查看此配置文件 是否存在語法錯(cuò)誤 nginx -tc /usr/local/nginx/conf/nginx.conf
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30790.html
摘要:老師比較精明,他告訴學(xué)生,誰完成了作業(yè)舉手,有舉手的同學(xué)他才去指導(dǎo)問題,他讓學(xué)生主動(dòng)發(fā)聲,分開了并發(fā)。 一、環(huán)境 服務(wù)器版本:CentOS 7.2 為了保證學(xué)習(xí)階段不遇到奇怪的事情,請(qǐng)保證以下四點(diǎn)(大神選擇性無視) 確認(rèn)系統(tǒng)網(wǎng)絡(luò) 確認(rèn)yum可用 確認(rèn)關(guān)閉iptables 確認(rèn)停用selinux #查看iptables狀態(tài) systemctl status firewalld.ser...
摘要:上一章了解了的基礎(chǔ)理論與配置,這一章將介紹在各種不同場(chǎng)景下的不同使用方法一靜態(tài)資源服務(wù)靜態(tài)資源類型非服務(wù)器動(dòng)態(tài)運(yùn)行生成的文件,換句話說,就是可以直接在服務(wù)器上找到對(duì)應(yīng)文件的請(qǐng)求瀏覽器端渲染圖片視頻文件,任意下載文件靜態(tài)資源服務(wù)場(chǎng)景什么是例 上一章了解了nginx的基礎(chǔ)理論與配置,這一章將介紹nginx在各種不同場(chǎng)景下的不同使用方法 一、靜態(tài)資源WEB服務(wù) 1.靜態(tài)資源類型 非服務(wù)器動(dòng)態(tài)...
閱讀 2113·2021-11-18 10:02
閱讀 2863·2021-09-04 16:41
閱讀 1156·2019-08-30 15:55
閱讀 1420·2019-08-29 17:27
閱讀 1106·2019-08-29 17:12
閱讀 2539·2019-08-29 15:38
閱讀 2864·2019-08-29 13:02
閱讀 2841·2019-08-29 12:29