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。

 

 

 

posted @ 2020-05-13 22:43  躺云飘  阅读(297)  评论(0编辑  收藏  举报