Nginx编译安装及介绍

版权声明:未经本人允许严禁转载 https://blog.csdn.net/WanJiaBaoBao/article/details/83144498

nginx简介

  • nginx时一款轻量级的Web服务器、反向代理服务器及邮件代理服务器;
  • nginx的特点是占有内存少,并发能力强,稳定,功能丰富。

nginx优点

  • 高并发连接:能够支撑5万并发连接(官方测试),实际生产环境中支撑2-3万并发连接数;
  • 内存消耗少:在3万并发连接下,开启10进程才消耗150M;
  • 配置文件简单:风格跟程序一样通俗易懂;
  • 成本低廉:开源软件,免费使用;
  • 支持Rewrite重写规则:能够根据域名、URL的不同,能够将HTTP请求分给不同的后端服务器群组;
  • 内置的健康检查功能:如果后端的某台服务器宕机了,不会影响前端访问;
  • 节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的header头;
  • 稳定性高:用于反向代理,宕机的概率微乎其微;
  • 模块化设计:模块可以动态编译;
  • 外围支持好:文档全,二次开发和模块化较多;
  • 支持热部署:可以不停机重新载入配置文件;
  • 支持事件驱动、AIO(异步IO)、mmap(内存映射)等性能优化。

nginx的功能及应用类别

nginx的基本功能

  • 静态资源的web服务器,能缓存打开的文件描述符;
  • http、smtp、pop3协议的反向代理服务器;
  • 缓存加速、负载均衡;
  • 支持FastCGI(fpm、LNMP),uWSGI(Python)等
  • 模块化(非DSO机制),过滤器zip、SSL及图像的大小调整
  • 支持SSL

nginx的扩展功能

  • 给予名称和IP的虚拟主机;
  • 支持keepalive(长连接);
  • 支持平滑升级;
  • 定制访问日志、支持使用日志缓冲区提高日志存储性能;
  • 支持URL重写;
  • 支持路径别名;
  • 支持基于IP及用户的访问控制;
  • 支持速率限制,支持并发数限制。

nginx的应用类别

  • 使用nginx结合FastCGI运行PHP、JSP(JAVA语言)、Perl等程序;
  • 适应nginx做反向代理、负载均衡、规则过滤;
  • 使用nginx运行静态HTML网页、图片;
  • nginx与其他新技术的结合使用。

nginx的工作原理

  • nginx的模块直接被编译进nginx,属于静态编译方式;
  • 启动nginx后,nginx的模块会被自动加载,与apache不一样;
  • 在解析配置文件时,nginx的每个模块都有可能去处理某个请求,但是同一个请求只能有一个模块来完成
  • 启动nginx时,会启动一个Master进程,这个进程不处理任何客户端的请求,主要用来产生worker线程,一个worker线程用来处理n个request请求。

nginx编译安装

  • 创建系统用户nginx
[root@localhost ~]# groupadd -r nginx
[root@localhost ~]# useradd -r -M -s /sbin/nologin -g nginx nginx
  • 配置网络源
[root@localhost ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0   5859      0 --:--:-- --:--:-- --:--:--  5881
[root@localhost ~]# sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
  • 安装依赖
[root@localhost ~]# yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++
  • 创建nginx用户和组
[root@localhost ~]# groupadd -r nginx
[root@localhost ~]# useradd -r -M -s /sbin/nologin -g nginx nginx
  • 编译安装nginx
[root@localhost ~]# cd nginx-1.12.2
[root@localhost nginx-1.12.2]# ./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-debug \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log
[root@localhost nginx-1.12.2]# make -j 2 && make install
  • 设置环境变量
[root@localhost nginx-1.12.2]# cd /usr/local/nginx
[root@localhost nginx]# echo "export PATH=/usr/local/nginx/sbin:$PATH" > /etc/profile.d/nginx.sh
[root@localhost nginx]# . /etc/profile.d/nginx.sh
  • 启动nignx服务
[root@localhost nginx]# nginx
[root@localhost nginx]# ss -ntl
State       Recv-Q Send-Q               Local Address:Port                 Peer Address:Port 
LISTEN      0      128                              *:80                              *:*     

猜你喜欢

转载自blog.csdn.net/WanJiaBaoBao/article/details/83144498