• nginx使用


    1.nginx 基本概念

    1.nginx是什么?能干什么?
    Nginx (engine x) 是一个高性能的HTTP反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,特点是占有内存少,并发能力强
    nginx专为性能优化而设计,能够支持高达 50,000 个并发连接数的响应
    支持热部署,不需要重启服务
    2.反向代理
    正向代理: 代理客户端
    
    

       反向代理:代理服务器,分发到不同的服务器,暴露代理服务器地址,隐藏真实服务器的ip地址

    
    

     

    3.负载均衡
    4.动静分离
      

    2.nginx安装及配置

    安装     

    官网:http://nginx.org/    选择1.12.2 版本   xshell rz 上传到/user/local

    1.安装nginx 依赖:    

    pcre
    wget https://netix.dl.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
    tar -zxvf pcre-8.40.tar.gz  
    进入解压目录 执行./configure 要先安装c编译器:yum -y install gcc
    make && make install
    验证安装是否成功: pcre-config -version
    openssl && zlib
    yum -y install make zilib zlib-devel gcc-c++ libtool openssl openssl-devel
    一键安装

    yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

    2.安装nginx

    1.tar -zxvf nginx-1.12.2.tar.gz 
    2.进入解压包目录执行 ./configure
    3. make && make install 
    4. 安装成功之后,在usr多出一个文件夹 local/nginx,在nginx有sbin有启动脚本
    5. 进入sbin目录执行./nginx 启动nginx
    6.验证nginx是否启动成功: ps -ef | grep nginx

    访问nginx

     配置nginx的端口号

    软件安装目录 :/usr/local 
    进入目录: /usr/local/nginx/conf
    编辑niginx 的配置文件: vim nginx.conf

     查看开放的端口号:firewall-cmd --list-all

     开放端口号80:Firewall-cmd --add-port=80/tcp

    nginx常用命令

    1.使用nginx操作命令前提条件:必须进入nginx的目录: /usr/local/nginx/sbin

    2.查看nginx的版本号

    ./niginx -v

    3.启动nginx

    ./niginx

    4.关闭nginx

    ./nginx -s stop

    5.重新加载nginx:   

     修改nginx.conf 文件不需要重启nginx就可以生效

    ./nginx -s reload

    配置

    1.配置文件位置

    /usr/local/nginx/conf

    2.配置文件结构

    第一部分 全局快

    从配置文件开始到events之间的叫全局块,主要设置一些影响nginx服务器整体运行的配置指令

    比如:worker_processes  1;   worker_processes  值越大,可以支持的并发处理量也越多

    第二部分  events快

    主要影响 nginx服务器与用户网络连接

    比如 worker_connections  1024  支持的最大链接数

    第三部分  http块

    这部分是nginx配置最频繁的部分,代理,缓存,和日志定义等绝大多数功能和第三方模块的配置都在这里。(反向代理,负载均衡,动静分离,高可用)

    需要注意的是:http块包括http全局块,server块

       全局块

       http全局块配置的指令包括文件引入,MIME-TYPE定义,日志定义,连接超时时间,单链接请求数上限等

       server块

       这块和虚拟主机有密切关系,

       每个http块可以有多个server块,而每个server块就相当于一个虚拟主机

       而每个server块也分为全局server块,以及可以同时包含多个location块

      1.全局server

       最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或IP配置

      2.location块

      一个server块可以配置多个location块

      这块的主要作用是基于Nginx服务器收到的请求字符串(例如:server_name/url-string),对虚拟机名称(也可以是IP别名)

      之外的字符串(例如:前面的url-string)进行匹配,对特定的请求进行处理,地址定向,数据缓存和应答控制等功能,

      还有许多第三方模块的配置也在这里进行

    3.nginx 配置实例反向代理

    实例1:

    1.实现效果: 浏览器输入www.123.com,跳转到linux系统tomcat的主页中

     2.安装tomcat   官网下载包   core

    1.解压tomcat包:/usr/src      tar -zxvf apache-tomcat-7.0.103.tar.gz 
    2.进入解压包:/usr/src/apache-tomcat-7.0.103   bin目录
    3. 启动tomcat :./startup.sh
    4. 查看tomcat logs : tail -f  tal -f catalina.out    查看是否启动成功
    5. firewall-cmd --list-all firewall-cmd --add-port=8080/tcp
    6. 访问Tomcat tomcat 启动成功
      

     本地hosts文件配置

    192.168.1.101    www.123.com

    配置 nginx的配置文件

    /usr/local/nginx/conf/nginx.conf

    进入解压包:/usr/src/apache-tomcat-7.0.103 bin目录

    启动tomcat :   ./startup.sh     输入www.get.com 即可访问到tomcat

    实例2:

     预期实现:

         

    4.nginx 配置实例负载均衡

     nginx 负载均衡策略

      weight配置:

    ip hash 配置:   根据用户的ip地址 让用户去访问固定的服务器,解决session问题

     fair(第三方): 根据服务响应时间,响应时间越短 就优先分配

    5.nginx 配置实例动静分离

    准备:

    动静分离是把动态请求和静态请求分开,动态请求去访问tomcat服务,静态去访问静态资源服务器

    提高访问效率的其它配置

     

     

     

     

    6.nginx 配置高可用集群

    1、需要的环境
    两台 Linux 并各自安装 Nginx 和 keepalived

    2、配置高可用的准备工作
    (1)需要两台服务器 192.168.17.129 、192.168.17.131
    (2)在两台服务器安装 Nginx(可以参考前面文章)
    (3)在两台服务器安装 keepalived

    3、两台服务器都安装 keepalived
    (1)、使用 yum 命令进行安装

    yum install keepalived –y

    (2)、keepalived 安装之后,其配置文件目录如下:

    /etc/keepalived/keepalivec.conf 

    4、完成高可用配置(主从配置)

    (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
         # 通过它,可以访问到主机,在hosts文件中,要做映射关系,类似于 127.0.0.1 LVS_DEVEL
         router_id LVS_DEVEL  
    }
    
    vrrp_script chk_http_port {
         script "/usr/local/src/nginx_check.sh"     # 执行脚本所在的位置
         interval 2     #检测脚本执行的间隔,单位秒,每个2秒执行一次脚本
         weight 2
    }
        
    vrrp_instance VI_1 {
         state MASTER     # 备份服务器上将 MASTER 改为 BACKUP
         interface ens33     # 绑定的网卡
         virtual_router_id 51     # 主、备机的 virtual_router_id 必须相同
         priority 90     # 主、备机取不同的优先级,主机值较大,备份机值较小
         advert_int 1     #每隔一秒发送一次心跳,确保从服务器是否还活着
         authentication {        # 心跳检测需要的密码
             auth_type PASS
             auth_pass 1111
         }
         virtual_ipaddress {
         192.168.17.50     # VRRP H 虚拟地址
         }
    }

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

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

    可以使用ipconfig,查看虚拟Ip的绑定

    5、最终测试

    (1)在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50

     (2)把主服务器上的(192.168.17.129)Nginx 和 keepalived 停止,再输入 192.168.17.50,依旧可以访问Nginx。

     

  • 相关阅读:
    [Angularjs-学习笔记]工具篇
    2018.03.26 Python-Pandas 字符串常用方法
    每周一本书之《穷爸爸富爸爸》读书笔记
    Java开发中的23种设计模式详解(转)
    javascript常用数组算法总结
    java对redis的基本操作
    MemCache超详细解读
    MySQL数据库优化总结
    SSH三大框架的工作原理及流程
    Java 单例模式详解
  • 原文地址:https://www.cnblogs.com/bigbox/p/12885433.html
Copyright © 2020-2023  润新知