Nginx 介绍及编译安装


Nginx 功能介绍

  • 基础特性
特性: 
模块化设计,较好的扩展性 
高可靠性 
支持热部署:不停机更新配置文件,升级版本,更换日志文件 
低内存消耗:10000个keep-alive连接模式下的非活动连接,仅需2.5M内存 
event-driven,aio,mmap,sendfile

基本功能: 
静态资源的web服务器 
http协议反向代理服务器 
pop3/imap4协议反向代理服务器 FastCGI(LNMP),uWSGI(python)等协议 
模块化(非DSO),如zip,SSL模块
  • web 相关的功能
虚拟主机(server)  
支持 keep-alive 和管道连接  
访问日志(支持基于日志缓冲提高其性能)  url rewirte  
路径别名  
基于IP及用户的访问控制  
支持速率限制及并发数限制  
重新配置和在线升级而无须中断客户的工作进程  
Memcached 的 GET 接口

Nginx 模块介绍

核心模块:core module 
标准模块: 
HTTP 模块: ngx_http_*        
                       HTTP Core modules   默认功能                  
                       HTTP Optional modules 需编译时指定 
Mail    模块    ngx_mail_* 
Stream 模块 ngx_stream_* 
第三方模块

Nginx 编译安装

  • 编译安装
~]# tar xvf nginx-1.12.2.tar.gz 
~]# yum install -y vim lrzsz tree screen psmisc lsof tcpdump wget  ntpdate  gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl  openssl-devel systemd-devel net-tools iotop bc  zip unzip zlib-devel bash-completion nfs-utils automake libxml2  libxml2-devel libxslt libxslt-devel perl perl-ExtUtils-Embed
~]# cd nginx-1.12.2/
nginx-1.12.2]# ./configure --prefix=/apps/nginx \
--user=nginx  \
--group=nginx \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_stub_status_module  \
--with-http_gzip_static_module \
--with-pcre \
--with-stream \
--with-stream_ssl_module \
--with-stream_realip_module
~]# useradd -s /sbin/nologin -u 2000 nginx
~]# chown -R nginx.nginx /apps /nginx
  • 配置自启动脚本
~]# vim /usr/lib/systemd/system/nginx.service
[Unit] 
Description=The nginx HTTP and reverse proxy server 
After=network.target remote-fs.target nss-lookup.target
 
[Service] 
Type=forking 
PIDFile=/apps/nginx/logs/nginx.pid 
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong 
# SELinux context. This might happen when running `nginx -t` from the cmdline. 
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621 
ExecStartPre=/usr/bin/rm -f /apps/nginx/logs/nginx.pid 
ExecStartPre=/apps/nginx/sbin/nginx -t 
ExecStart=/apps/nginx/sbin/nginx 
ExecReload=/bin/kill -s HUP $MAINPID 
#KillSignal=SIGQUIT 
#TimeoutStopSec=5 
KillMode=process 
PrivateTmp=true
 
[Install] 
WantedBy=multi-user.target

要保证Nginx服务使用没有登录权限的普通用户启动
出现403大多情况是启动程序用户无权限访问文件

你可能感兴趣的:(Nginx 介绍及编译安装)