Nginx环境的搭建要求
配置要求:
- 系统硬件:cpu>=2core ,内存>=256M
- 可以采用,云服务器,vmware,docker等根据自己的条件选择
操作系统:
- CentOS:版本>7.0,位数 X64
//查看版本
uname -a
前置条件确认
在服务器确认一些选项
- 确认系统网络可用
ping www.baidu.com
- 确认yum可用
yum list|grep gcc
- 确认关闭iptables规则
//查看规则
iptables -L
//关闭iptables规则
iptables -F
//保险再次确认 nat表里面
iptables -t nat -L
//关闭
iptables -t nat -F
- 确认停用selinux
//查看是否开启
getenforce
//关闭 selinux
setenforce 0
基本工具安装:编译后面的操作
// -y表示不确认
yum -y install gcc gcc-c++ autoconf pcre pcre-devel make automake
yum -y install wget httpd-tools vim
新建目录目录:便于后面使用
cd/opt
//代码目录,网上下载源码等目录,日志目录,shell脚本目录,备份配置文件等
mkdir app download logs work backup
Nginx简介
Nginx是一个开源 且高性能,可靠的Http中间件,代理服务.
常见的http服务
- HTTPD:Apache基金会
- IIS:微软
- GWS:google不对外开放的
优势:
- IO多路复用epoll
io多路复用:多个描述符的I/O操作都能在一个线程内并发交替的顺序完成,复用指的的是复用同一个线程.
常见IO多路复用实现的方式 select ,poll,epoll
select缺点:监视文件描述符的数量存在最大的限制,线性扫描效率低下.
epoll模型:每当fd就绪,采用系统的回调函数之间的将fd放入,效率更高;最大连接无限制.(nginx采用这种)
- 轻量级,功能模块少,代码模块化
- CPU亲和
一种把cpu核心和nginx工作进程绑定的方式,把每个worker进程固定在一个cpu上执行,减少切换cpu的cache miss,获得更好的额性能。
- sendfile (静文件能力很强)
直接通过内核,不通过用户空间传输
nginx搭建
官网: www.nginx.org
解释说明: MainLine version开发版,Stable version稳定版, Legacy version历史版本。
安装:
文档地址:http://nginx.org/en/linux_packages.html
//打开配置文件
vim /etc/yum.repos.d/nginx.repo
//设置配置
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
//验证查看
yum list|grep nginx
//安装nginx
yum install nginx
//查看版本
nginx -v
安装目录:
//查看nginx目录
rpm -ql nginx
//配置文件,nginx日志轮转,用于logrotate服务的日志切割
etc/logrotate.d/nginx
//配置文件,nginx主配置文件
/etc/nginx
/etc/nginx/nginx.conf //主要配置文件,启动的时候主要读取该配置文件
/etc/nginx/conf.d
/etc/nginx/conf.d/default.conf //默认配置文件
//cgi配置相关,fastcgi配置
/etc/nginx/fastcgi_params // php
/etc/nginx/uwsgi_params //python
/etc/nginx/scgi_params
//编码转换与映射转换文件
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/win-utf
//设置http协议的Content-Type与扩展名对应关系
/etc/nginx/mime.types
//配置出系统守护进程管理文件,管理器方式
/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/nignx/modules
//nginx服务的启动管理终端命令
/usr/sbin/nginx
/usr/sbin/nginx-debug
//nginx的手册和帮助文件
/usr/share/doc/nginx-1.12.0
/usr/share/doc/nginx-1.12.0/CONPYRIGHT
/usr/share/man/man8/nginx.8.gz
//nginx的缓存目录,
/var/cache/nginx
//nginx日志输出目录
/var/log/nginx
安装编译参数:一下参数是在源码安装时指定的参数
//查看源码编译相关的参数等
nginx -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/nginxclient_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
//
--with-compat
--with-file-aio
--with-threads
--with-http_addition_module
--with-http_auth_request_module
--with-http_dav_module
--with-http_flv_module
--with-http_gunzip_module
--with-http_gzip_static_module
--with-http_mp4_module
--with-http_random_index_module
--with-http_realip_module
--with-http_secure_link_module
--with-http_slice_module
--with-http_ssl_module
--with-http_stub_status_module
--with-http_sub_module
--with-http_v2_module
--with-mail
--with-mail_ssl_module
--with-stream
--with-stream_realip_module
--with-stream_ssl_module
--with-stream_ssl_preread_module
//设置额外的参数将被添加到CFLAGS变量
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC'
//设置附加的参数,链接系统库
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'