nginx中間件


Nginx簡介

Nginx是一個開源且高性能、可靠的HTTP中間件、代理服務。其特點是占有內存少,並發能力強。

 

Nginx優勢:IO多路復用epoll

1、什么是IO復用

它是內核提供的一種同時監控多個文件描述符狀態改變的一種能力;例如當進程需要操作多個IO相關描述符時(例如服務器程序要同時查看監聽socket和大量業務socket是否有數據到來),需要內核能夠監控這許多描述符,一旦這些描述符有就緒(或者狀態改變了)就告訴主動告訴進程哪些描述符已經就緒,這樣站在進程的角度,就不需要挨個的查看每個描述符是否就緒。

 2、什么是IO多路復用

多個描述符的I/O操作都能在一個線程內並發交替的順序完成,這就叫I/O多路復用,這里的“復用”指的是復用同一個線程。

參考: http://www.cnblogs.com/zingp/p/6863170.html

3、IO多路復用epoll

IO多路復用的實現方式select、poll、epoll

select方式缺點:

  • 能夠監視文件描述符的數量存在最大限制
  • 線性掃描效率低下

select方式優點:

  • Windows、linux都支持

epoll方式優點:

  • 沒有最大並發連接的限制
  • 效率提升,不是輪詢的方式,不會隨着FD數目的增加效率下降

 

Nginx優勢:輕量級

功能模塊少

代碼模塊化

 

Nginx優勢:CPU親和

CPU親和是一種把CPU核心和Nginx工作進程綁定方式,把每個worker進程固定在一個CPU上執行,減少切換CPU的cache miss,獲得更好的性能。

 

Nginx優勢:sendfile

 

nginx安裝

官方:http://nginx.org/en/linux_packages.html

1、准備

yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install wget httpd-tools vim

2、yum源

vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

3、查看

yum list|grep nginx

4、安裝

yum install nginx -y

5、版本

nginx -v

 

nginx安裝目錄

rpm -ql nginx

配置文件

/etc/logrotate.d/nginx :nginx日志輪轉,用於logrotate服務的日志切割

/etc/nginx/nginx.conf:ngnix主配置文件

/etc/nginx/conf.d/default.conf:安裝后的配置備份文件

cgi相關配置

  • /etc/nginx/fastcgi_params
  • /etc/nginx/uwsgi_params
  • /etc/nginx/scgi_params

編碼轉換映射文件

  • /etc/nginx/koi-utf
  • /etc/nginx/koi-win
  • /etc/nginx/win-utf

/etc/nginx/mime.types:文件擴展名與文件類型映射表,nginx根據映射關系,設置http請求響應頭的Content-Type值

用於配置系統守護進程管理器管理方式(centos7)

  • /usr/lib/systemd/system/nginx-debug.service
  • /usr/lib/systemd/system/nginx.service
  • /etc/sysconfig/nginx
  • /etc/sysconfig/nginx-debug

nginx模塊目錄

  • /usr/lib64/nginx/modules
  • /etc/nginx/modules

nginx服務的啟動管理的終端命令

  • /usr/sbin/nginx
  • /usr/sbin/nginx-debug

nginx的手冊和幫助文檔

  • /usr/share/doc/nginx-1.12.2
  • /usr/share/doc/nginx-1.12.2/COPYRIGHT
  • /usr/share/man/man8/nginx.8.gz

/var/cache/nginx:nginx的緩存目錄

/var/log/nginx:nginx日志目錄

 

ngnix安裝編譯

nginx -V

大寫V

編譯參數介紹

  • 安裝目錄或路徑

--prefix=/etc/nginx

--sbin-path=/usr/sbin/nginx

--modules-path=/usr/lib64/nginx/modules

--conf-path=/etc/nginx/nginx.conf

--error-log-path=/var/log/nginx/error.log

--http-log-path=/var/log/nginx/access.log

--pid-path=/var/run/nginx.pid

--lock-path=/var/run/nginx.lock

  • 執行對應模塊時,nginx所保留的臨時性文件

--http-client-body-temp-path=/var/cache/nginx/client_temp

--http-proxy-temp-path=/var/cache/nginx/proxy_temp

--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp

--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp

--http-scgi-temp-path=/var/cache/nginx/scgi_temp

  • 設定nginx進程啟動的用戶和用戶組

--user=nginx

--group=nginx

  • 設置額外的參數將被添加到CFLAGS變量

--with-cc-opt

  • 設置附加的參數,鏈接系統庫

--with-ld-opt

 


免責聲明!

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



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