nginx

1. nginx简介

nginx(发音同engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。

nginx的特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,

中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2. nginx的特性与优点


2.1 nginx的特性

    Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接
    高度的模块化和自由软件许可证是的第三方模块层出不穷(这是个开源的时代啊~)
    Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris, AIX,Mac OS等操作系统上
    这些优秀的设计带来的极大的稳定性

2.2 nginx的优点

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

3. nginx反向代理

多个客户端给服务器发送的请求,Nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。

此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。

客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

反向代理,“它代理的是服务端”,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。


3.1 反向代理的作用

    保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
    负载均衡,通过反向代理服务器来优化网站的负载

3.2 正向代理和反向代理的区别

    在正向代理中,Proxy和Client同属于一个LAN(图中方框内),隐藏了客户端信息;
    在反向代理中,Proxy和Server同属于一个LAN(图中方框内),隐藏了服务端信息;

4. nginx的安装与配置

4.1 nginx的安装

//创建系统用户nginx

[root@192 ~]# groupadd -r nginx
[root@192 ~]# useradd -r -M -s /sbin/nologin -g nginx nginx

 //安装依赖环境

[root@192i ~]# yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++
暗转过程省略......
[root@@192 ~]# yum -y groups mark install 'Development Tools'
安装过程省略......

/创建日志存放目录

[root@@192 ~]# mkdir -p /var/log/nginx
[root@@192 ~]# chown -R nginx.nginx /var/log/nginx/

//下载nginx,下载过程省略,存放至/usr/src目录下

[root@192 src]# wget http://nginx.org/download/nginx-1.12.0.tar.gz
[root@192 ~]# ls /usr/src/ |grep nginx

//编译安装nginx

[root@@192 src]# tar xf nginx-1.12.0.tar.gz
[root@192 src]# cd nginx-1.12.0

[root@192 nginx-1.12.0]# ./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@xaii nginx-1.12.0]# make -j $(grep 'processor' /proc/cpuinfo | wc -l) && make install
//-j是指定多少内核
//过程省略......

4.2 nginx安装后的配置

//添加环境变量

[root@192 ~]# vim /etc/profile.d/nginx.sh
[root@192 ~]# cat /etc/profile.d/nginx.sh 
export PATH=/usr/local/nginx/sbin:$PATH
[root@192 ~]# . /etc/profile.d/nginx.sh

检查配置文件   输入版本信息

  //指定配置文件的路径 需要拷贝两个文件:nginx.conf和mime.type至新的路径

 cd /usr/local/nginx/conf^C
[root@192 conf]# cp -a nginx.conf /opt/nginx/
[root@192 conf]# cp -a mime.types /opt/nginx


[root@192 /]# ps -ef |egrep -v 'grep'|grep nginx
root      31789      1  0 12:31 ?        00:00:00 nginx: master process nginx
nobody    31794  31789  0 12:31 ?        00:00:00 nginx: worker process

//nginx和apache不能同时开启

//因为apache和nginx的端口都是80,当apache服务开启时,无法开始nginx服务

 


原文链接: https://blog.csdn.net/weixin_43695104/article/details/88034435

原文地址:https://www.cnblogs.com/xingyuner/p/12743282.html