【学习笔记】分享给小白的nginx配置入门篇(库存)

240 阅读3分钟

Nginx

nginx.org/en/download…

正向代理

代理客户端,VPN就是一种正向代理模式,通过代理客户端向外网发起请求,接收返回的信息响应给客户端。

反向代理

代理服务器,当服务器承受压力过大就需要多台服务器,但是我们的访问地址永远只有一个。就需要一个反向代理代理服务器,分发请求。

负载均衡策略

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

内置策略(轮询):

是服务器默认的策略,每个请求按时间顺序分配到不同的服务器,如果服务器down机了,就剔除服务器。

扩展策略(加权轮询): weight = index;

给每个台服务器后面加上一个权重,给每台服务器分配对应权重的请求。

ip_hash: 在upstream开头加上iphash;

只要是相同的IP地址就会固定访问后端的一台服务器,这样可以解决session共享的问题。当服务器down机,那么用户的信息也会随之丢失。

fair: 在upstream最后加上一个fair(这是第三方配置,需要下载模块)

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

常用命令

常用命令

cd /usr/local/nginx/sbin/进入目录

./nginx -s stop 停止

./nginx -s quit 安全退出

./nginx -s reload 重新加载配置文件

./nginx 启动

测试

 #负载均衡
 upstream test {
         server 127.0.0.1:8080 weight=1;
         server 127.0.0.1:8081 weight=1;
     } 
     #gzip  on;
 server {
     listen       80;
     server_name  localhost;
 ​
     #charset koi8-r;
 ​
     #access_log  logs/host.access.log  main;
 ​
     location / {
         root   html;
         index  index.html index.htm;
         #所有的根路径请求都访问到这个路径
         proxy_pass http://127.0.0.1:8888;
          
     }

image-20210429234356730

配置文件

全局块

从配置文件开始到events块之间的内容,

image-20210430091251844

其中 worker_processes 1:权值越大,支持的并发量越大,但是收到硬件的制约

event 块

image-20210430091307019

worker_connectioons 最大连接数;

http块

可以有多个server模块,表示不同的网络服务。

动静分离

将静态请求和动态请求分离。当请求静态资源的时候,用nginx去请求静态资源服务器。

image-20210502162524740

其中:autoindex表示列出当前文件夹中的内容

只要访问路径中带有配置中的路径,那么就会访问对应的文件内容

nginx高可用集群

如果出现nginx宕机了,请求就会无法使用。

image-20210502165312810

需要两台nginx服务器
  • 安装pcre依赖

  • 安装基本环境(第一步执行)

    • 使用 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
  • 安装nginx

    • 下载安装包并解压
    • 进入目录执行./configure
    • 编译安装:make install
需要keepalived

yum install keepalived -y

配置文件位置:/etc/keepalived/keepalived.conf

需要虚拟的IP地址

修改配置文件

 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     # 绑定的网卡(ifconfig 查看网卡)
      virtual_router_id 51    # 主、备机的 virtual_router_id 必须相同
      priority 90    # 主、备机取不同的优先级,主机值较大,备份机值较小
      advert_int 1   #每隔一秒发送一次心跳,确保从服务器是否还活着
      authentication {       # 心跳检测需要的密码
          auth_type PASS
          auth_pass 1111
     }
      virtual_ipaddress {
      192.168.11.50  # VRRP H 虚拟地址
      }
 }
 ​

编写检查nginx脚本放在配置文件中的指定位置

 #!/bin/bash
 A=`ps -C nginx –no-header |wc -l`
 if [ $A -eq 0 ];then
  /usr/local/nginx/sbin/nginx    #Nginx启动命令的位置
  sleep 2
  if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
  killall keepalived
  fi
 fi
 ​

启动nginx以及Keepalived服务

脚本中设置了启动位置为nginx位置

centos 6 中service Keepalived start

centos 7 中 systemctl start keepalived.service

测试

访问虚拟的ip地址,ip a 可以查看当前nginx是否挂上。