nginx面試題


1、Nginx是如何實現高並發的

    service nginx start之后,然后輸入#ps -ef|grep nginx,會發現Nginx有一個master進程和若干個worker進程,這些worker進程是平等的,都是被master fork過來的。在master里面,先建立需要listen的socket(listenfd),然后再fork出多個worker進程。當用戶進入nginx服務的時候,每個worker的listenfd變的可讀,並且這些worker會搶一個叫accept_mutex的東西,accept_mutex是互斥的,一個worker得到了,其他的worker就歇菜了。而搶到這個accept_mutex的worker就開始“讀取請求--解析請求--處理請求”,數據徹底返回客戶端之后(目標網頁出現在電腦屏幕上),這個事件就算徹底結束。

nginx用這個方法是底下的worker進程搶注用戶的要求,同時搭配“異步非阻塞”的方式,實現高並發量。

【評析】在nginx.conf里第二行就是work_process,有默認是4的,也可以更改成auto,這個值不是越大越好,要可實際情況而定。

 

2、編寫一個Nginx的access模塊,要求准許192.168.3.29/24的機器訪問,准許10.1.20.6/16這個網段的所有機器訪問,准許34.26.157.0/24這個網段訪問,除此之外的機器不准許訪問。

location/{

access 192.168.3.29/24;

access 10.1.20.6/16;

access 34.26.157.0/24;

deny all;

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM