最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Nginx入门的基本使用和配置

    正文概述 掘金(树懒的梦想)   2021-02-26   537

    Nginx版本:nginx-1.12.2.tar.gz

    内容介绍

    一、 nginx 简介

    1、什么是 nginx 和可以做什么事情

    Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的, 能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数,实际上能达到2~3万个并发连接数

    2、正向代理

    需要在客户端配置代理服务器进行指定网站访问(代理的是客户端) Nginx入门的基本使用和配置

    3、反向代理

    暴露的是代理服务器地址,隐藏了真实服务器 IP 地址(代理的是服务器端) Nginx入门的基本使用和配置

    4、负载均衡

    增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的 情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
    Nginx入门的基本使用和配置

    5、动静分离

    Nginx入门的基本使用和配置

    二、 Nginx 的安装

    1、准备工作

    2、开始进行 nginx 安装,在linux系统的服务器端安装

    (1)安装 pcre 依赖第一种方式:

    (2)安装 pcre 依赖第二种方式:

    (3)安装 openssl 、 zlib 、 gcc 依赖

    (4)安装 nginx

    三、 Nginx 的常用命令和配置文件

    Nginx 的常用命令

    使用nginx操作命令,必须进入 nginx 目录中才可以

    Nginx 的配置文件

    Nginx 的配置文件的位置
    配置文件中的内容包含三部分内容:全局块 、 events 块 、 http 块(包含http块自身和server块)
    nginx.conf文件的内容如下:
    # 第一部分:全局块:配置服务器整体运行的配置指令
    #运行用户,默认即是nginx,可以不进行设置
    user  nginx;
    #Nginx进程,一般设置为和CPU核数一样 -=> 处理并发数的配置
    worker_processes  1;   
    #错误日志存放目录
    error_log  /var/log/nginx/error.log warn;
    #进程pid存放位置
    pid        /var/run/nginx.pid;
    
    # 第二部分:events 块:影响 Nginx 服务器与用户的网络连接
    events {
        worker_connections  1024; # 单个后台进程的最大并发数
    }
    
    # 第三部分:http 块:还包含两部分:http 全局块和server 块
    http {
        include       /etc/nginx/mime.types;   #文件扩展名与类型映射表
        default_type  application/octet-stream;  #默认文件类型
        #设置日志模式
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;   #nginx访问日志存放位置
    
        sendfile        on;   #开启高效传输模式
        #tcp_nopush     on;    #减少网络报文段的数量
    
        keepalive_timeout  65;  #保持连接的时间,也叫超时时间
    
        #gzip  on;  #开启gzip压缩
    
        include /etc/nginx/conf.d/*.conf; #包含的子配置项位置和文件[server快]
    
    
    nginx.conf文件的内容的最后一行,有一个子文件的配置项include /etc/nginx/conf.d/*.conf; ,那我们打开这个include子文件配置项看一下里边都有些什么内容,default.conf文件的内容如下:
    server {
        listen       80;   #配置监听端口
        server_name  localhost;  //配置域名
    
        #charset koi8-r;     
        #access_log  /var/log/nginx/host.access.log  main;
    
        location / {
            root   /usr/share/nginx/html;     #服务默认启动目录
            index  index.html index.htm;    #默认访问文件
        }
    
        #error_page  404              /404.html;   # 配置404页面
    
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;   #错误状态码的显示页面,配置后需要重启
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    
        # proxy the php scripts to Apache listening on 127.0.0.1:80
        #
        # ~ \.php$ 是正则表达式,匹配以.php结尾的所有文件
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1; // 反向代理
        #}
    
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
    
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all; // deny是禁止访问
        #    allow  all; // allow是允许访问
        #}
    }
    
    

    四、 Nginx 配置实例 1 反向代理

    反向代理指令:proxy_pass

    server{
            listen 80; // 浏览器端访问地址的端口号  
            # server_name 可以是网址域名; // 浏览器端访问的地址  
            # server_name 192.168.191.34; // 浏览器端访问的地址
            # location / {
                   # proxy_pass http://123.com; // nginx 反向代理的地址,可以是域名
                   # proxy_pass 192.168.23.45.8080; // nginx 反向代理的地址
            # };
            
            # ~ /edu/ 是正则表达式,区分大小写,匹配的是edu目录
            # ~* /edu/ 是正则表达式,不区分大小写,匹配的是edu目录
            # = /edu/ 是正则表达式,严格匹配,匹配的是edu目录  
            location ~ /edu/ {
                 proxy_pass 192.168.23.45.8081; // nginx 反向代理的地址
            };
            
            # ~ /vod/ 是正则表达式,匹配的是vod目录
            location ~ /vod/ {
                 proxy_pass 192.168.23.45.8082; // nginx 反向代理的地址
            }
    }
    

    反向代理还有些常用的指令,我在这里给大家列出:

    • proxy_set_header : 在将客户端请求发送给后端服务器之前,更改来自客户端的请求头信息

    • proxy_connect_timeout: 配置Nginx与后端代理服务器尝试建立连接的超时时间

    • proxy_read_timeout : 配置Nginx向后端服务器组发出read请求后,等待相应的超时时间

    • proxy_send_timeout:配置Nginx向后端服务器组发出write请求后,等待相应的超时时间

    • proxy_redirect : 用于修改后端服务器返回的响应头中的Location和Refresh

    • 关于proxy代理指令的详细信息: www.nginx.cn/doc/mail/ma…

    五、 Nginx 配置实例 2 负载均衡

    配置文件中的内容包含三部分内容:全局块 、 events 块 、 http 块(包含http块自身和server块)

    实现负载均衡主要在http块和server块里面配置

    • http块的配置如下:
    http {
    	# ... 省略http块默认带有的配置
    	upstream myserver {
                server 115.28.52.63:8080 ;
                server 115.28.52.63:8081 ;
            }	
    }
    
    • server块的配置如下:
    aerver {
    	location / {
        	... 省略location里面默认带有的配置
            proxy_pass http://myserver; //myserver是上面创建的myserver服务名
            proxy_connect_timeout 10;
        }
    }
    
    • Nginx 提供了几种常用的负载均衡(load balance)的分配方式(策略)

    六、 Nginx 配置实例 3 动静分离

    1、什么是动静分离?

    Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和 静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面, Tomcat 处理动态页面

    动静分离从目前实现角度来讲大致分为两种:

    • 一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案

    • 另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开

    Nginx入门的基本使用和配置

    2、动静分离具体配置

    • 在 liunx 系统中准备静态资源,用于进行访问,在nginx里面,新建一个文件夹data

    Nginx入门的基本使用和配置

    • 配置文件中的内容包含三部分内容:全局块 、 events 块 、 http 块(包含http块自身和server块)

    在 nginx 配置文件中server块中进行配置,server块的配置如下:

    aerver {
    	server 80;
        server_name 192.168.17.129;
        
        #chartset koi8-r;
        #access_log log/host.access.log main;
        
        # 通过nginx实现静态资源跳转
        location /www/ {
        	# /data/是静态资源目录
            root /data/; 
            index index.html index.htm;
        }
        
        # 通过nginx实现静态资源跳转
        location /image/ {
            # /data/是静态资源目录
        	root /data/;
            # autoindex on是列出访问目录,可以不加
            autoindex on;
        }
    }
    

    七、 Nginx 的高可用集群

    1、什么是 nginx 高可用?

    服务器的主nginx挂掉了,但是我们依然可以成功的请求到数据

    Nginx入门的基本使用和配置

    (1)需要两台带有 nginx 的服务器

    (2)需要 keepalived 软件;类似于路由,里面通过脚本来检查当前的主服务器的nginx(主nginx) 是否还活着,如果活着就用,如果宕机死了,就去使用从服务器的nginx(备份的nginx),在这个过程中,该软件会向外提供一个虚拟IP,这个IP实际是不存在的,但是我们需要用这个虚拟IP去访问

    (3)需要虚拟 ip

    2、配置高可用的准备工作

    (1)需要两台服务器 192.168.17.129 和 192.168.17.131

    (2)在两台服务器安装 nginx 软件

    (3)在两台服务器安装 keepalived 软件

    3、完成高可用配置(主从配置,2个服务器都要配置)

    (1)主要是修改/etc/keepalived/keepalivec.conf 配置文件

    # 全局定义
    global_defs {
      notification_email {
      acassen@firewall.loc
      failover@firewall.loc
      sysadmin@firewall.loc
      }
      notification_email_from Alexandre.Cassen@firewall.loc
      smtp_server 192.168.17.129
      smtp_connect_timeout 30
      router_id LVS_DEVEL # 服务器的主机的名字,可以访问到主机
      # /etc/hosts 文件中,添加主机名字 例如:127.0.0.1 LVS_DEVEL
    }
    
    # 检测脚本(查看nginx是否还活着)和权重参数
    vrrp_script chk_http_port {
      script "/usr/local/src/nginx_check.sh" # 这个是自己创建的脚本文件位置
      interval 2 # 检测脚本执行的间隔,2秒执行一次
      weight 2 # 权重
    }
    
    # 虚拟IP的配置,常用的配置
    vrrp_instance VI_1 {
      state BACKUP # 备份服务器上将 MASTER 改为 BACKUP
      interface ens33 //服务器网卡名称 使用ifconfig命令来查看
      virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
      priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
      advert_int 1 # 心跳检测,确认主服务器是否还活着,检测间隔为1秒
      authentication {
        auth_type PASS # 权限校验的方式:密码
        auth_pass 1111 # 权限校验的密码:1111
      }
      virtual_ipaddress {
      	192.168.17.50 // VRRP H 虚拟地址
      }
    }
    
    

    (2)在/usr/local/src 添加检测脚本文件nginx_check.sh Nginx入门的基本使用和配置

    /usr/local/nginx/sbin/nginx 是nginx的启动路径

    3)把两台服务器上 nginx 和 keepalived 启动

    启动 nginx: ./nginx
    启动 keepalived: systemctl start keepalived.service

    4、最终测试

    1)在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50 Nginx入门的基本使用和配置

    2)把主服务器(192.168.17.129) nginx 和 keepalived 停止,再输入 192.168.17.50查看效果

    Nginx入门的基本使用和配置

    八、Nginx 的原理的简单分析

    1、 Nginx 的原理

    是通过 mater 和 worker 来实现的

    2、 worker 如何进行工作的?

    默认只有一个master,多个worker,有请求过来后,首先master会收到,然后由mster告知worker有新的请求过来了,这时候woker通过争抢机制,来得到这个新的请求,从来进行相应的处理

    3、一个 master 和多个 woker 有好处

    (1)可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作
    (2)每个 woker 是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的, 继续进行争抢,实现请求过程,不会造成服务中断

    4、设置多少个 woker 合适

    worker 数和服务器的 cpu 数相等是最为适宜的

    5、连接数 worker_connection

    (1)第一个:发送请求,占用了 woker 的几个连接数?

    (2)第二个: nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的 最大并发数是多少?

    九、其他人写的关于nginx

    友情链接: jspang.com/detailed?id…


    起源地下载网 » Nginx入门的基本使用和配置

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元