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