• Nginx


    1 Nginx是什么?

    Nginx (engine x) 是一个轻量级的、高性能的、基于 Http 的、反向代理服务器,同时还 是一个电子邮件服务器。 Nginx 最初是由俄罗斯人 Igor Sysoev(伊戈尔·赛索耶夫)使用 C 语言为俄罗斯访问量第 二的 Rambler.ru 站点开发的一款服务器。2004 年 10 月发布第一个版本。 国内大型的站点,例如百度、京东、新浪、网易、腾讯、淘宝等,都使用了 Nginx。 

    2 为什么使用Nginx?

    因为Nginx是基于事件的,它不用为每个请求产生新的进程或线程,所以它的内存使用很低

    3 Nginx特点

    •  高并发
    •  低消耗
    •  热部署
    •  高扩展
    •  高可用

    4 正向代理和反向代理

    正向代理,当客户端无法访问外部资源的时候(由于诸如墙这样的原因),可以通过一个正向代理去间接地访问,所以客户端需要配置代理服务器的ip。

    正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理

     


    2. 反向代理,客户端是无感知代理的存在,以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端。
    正向代理

    作用:

        1. 保证内网的安全,公网作为访问地址,web服务器谁内网

        2. 负载均衡

     


    5.    安装Nginx

    1. 熟悉Cenos7相关命令(centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools

    开放端口: firewall-cmd --zone=public --add-port=端口号/tcp --permanent    

    关端口:firewall-cmd --zone=public --remove-port=端口号/tcp --permanent 

    生效配置:firewall-cmd --reload

    查看防火墙以开放的端口:firewall-cmd --zone=public --list-ports 

    关闭防火墙:systemctl stop firewalld.service

    防火墙状态:firewall-cmd --state

    查看监听的端口:netstat -lnpt

    检查端口被哪个进程占用:netstat -lnpt |grep 端口号

    查看端口详细信息:ps 端口号

    强制关闭端口:kill -9 端口号

    tar命令: tar   -zgzip的算法解压或者压缩

    -x解压一个tar

    -v显示指令执行过程

    -f指定要解压/压缩文件名

    -c 创建一个tar/压缩

                解压通常用法tar  -zxvf  filename 如果要压缩的话z换成c

    1.  官网下载相应nginx版本tar

    2. 使用xftp上传到linux

    3. 解压tar

    4. 安装所需依赖

    -  yum install pcre-devel

    -  yum install zlib zlib-devel

    -  yum install openssl openssl-devel

    -  yum -y install gcc gcc-c++ autoconf automake make   安装c++编译环境

    5. 进入解压开的nginx-1.16.1文件夹找到 configure 执行   ./ configure

    6. 然后执行make nginx是一个完全由C语言编写的程序

    make命令是将文件编译就想javajavac一样

    在执行make installmake install这个命令是将nginx安装

    安装好后可以在./usr/local/目录下发现一个nginx的文件夹.

    这个就是安装好后的nginx。安装好后目录结构如下

    1.    启动nginx

    在使用nginx前有几个注意点

    1.         Nginx用的是80端口 , 把端口对外开放

    firewall-cmd --zone=public --add-port=80/tcp --permanent

    firewall-cmd --reload

    2.         启动:安装好的nginx目录中有一个sbin,里面是一个nginx(可执行文件执行(./nginx

    3.         启动后直接在网页输入本机ip即可访问  页面如下

     

    Nginx常用命令

     

    6 Nginx配置文件的整体结构

    1. 从图中可以看出主要包含以下几大部分内容:

    • 全局块

    该部分配置主要影响Nginx全局,通常包括下面几个部分:

    配置运行Nginx服务器用户(组)
    worker process数
    Nginx进程PID存放路径
    错误日志的存放路径
    配置文件的引入

    • events块

    该部分配置主要影响Nginx服务器与用户的网络连接,主要包括:

    设置网络连接的序列化
    是否允许同时接收多个网络连接
    事件驱动模型的选择
    最大连接数的配置

    • http块

    定义MIMI-Type
    自定义服务日志
    允许sendfile方式传输文件
    连接超时时间
    单连接请求数上限

    • server块

    配置网络监听
    基于名称的虚拟主机配置
    基于IP的虚拟主机配置

    • location块

    location配置
    请求根目录配置
    更改location的URI
    网站默认首页配置

    2. 一份配置清单例析

    按照前面文章,给出一份简要的清单配置举例:

     

     

     

     

    7.Nginx负载均衡

    2.1 轮询

    轮询方式是Nginx负载默认的方式,顾名思义,所有请求都按照时间顺序分配到不同的服务上,如果服务Down掉,可以自动剔除,如下配置后轮训10001服务和10002服务。

    upstream  dalaoyang-server {
           server    localhost:10001;
           server    localhost:10002;
    }
    

    2.2 权重

    指定每个服务的权重比例,weight和访问比率成正比,通常用于后端服务机器性能不统一,将性能好的分配权重高来发挥服务器最大性能,如下配置后10002服务的访问比率会是10001服务的二倍。

    upstream  dalaoyang-server {
           server    localhost:10001 weight=1;
           server    localhost:10002 weight=2;
    }
    

    2.3 iphash

    每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)。

    upstream  dalaoyang-server {
           ip_hash; 
           server    localhost:10001 weight=1;
           server    localhost:10002 weight=2;
    }
    

    2.4 最少连接

    将请求分配到连接数最少的服务上。

    upstream  dalaoyang-server {
           least_conn;
           server    localhost:10001 weight=1;
           server    localhost:10002 weight=2;
    }
    

    2.5 fair

    按后端服务器的响应时间来分配请求,响应时间短的优先分配。

    upstream  dalaoyang-server {
           server    localhost:10001 weight=1;
           server    localhost:10002 weight=2;
           fair;  
    }

    路由

    路由

    真实服务器

    代理服务器

    防火墙

     

  • 相关阅读:
    SOAP-ERROR: Encoding: string … is not a valid utf-8 string
    [Client] looks like we got no XML document in....
    php webservice服务端和客户端的实现
    php的soap无故出错的真凶:wsdl缓存
    php无wsdl webservice服务用法
    mysql时间运算
    PHP 操作XML文档
    YII框架安装过程-数据库访问
    【Database】MongoDB教程
    【JavaScript】HTML5存储方案
  • 原文地址:https://www.cnblogs.com/jingjinggood/p/12175583.html
Copyright © 2020-2023  润新知