nginx

常用命令

1.查看nginx版本号

./nginx -v

2.启动nginx

./nginx

3。关闭nginx

./nginx -s stop

4.重新加载nginx

./nginx -s re
配置文件 nginx.conf
1.全局块

设置影响nginx服务器整体运行的配置命令

2.events

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

3.http

nginx配置最频繁的地方

  1. http全局块
  2. server
  1. 与虚拟主机有关
  2. 包含:
  1. server全局块
  2. location
一.nginx配置实例1:反向代理1
1.实现效果:

(1).打开浏览器,输入www.123.com 跳转到服务器指定的端口主页

2.准备工作

(1)启动服务器,打开指定的端口。

(2)对外开放指定的端口

firewall-cmd --add-port=****/tcp --permanent
 firewall-cmd --reload

查看已经开放的端口号

firewall-cmd --list-all
3.打开物理机的浏览器访问对应IP:port测试是否成功
4.具体配置

(1)物理机hosts文件中:
#配置域名映射的ip地址
ip+空格+域名

(2)在nginx进行请求转发的配置(反向代理配置)

nginx.conf文件中进行配置:

1.在server块中:

server_name改成对应的虚拟机的ip

location中添加转发的路径

proxy_pass http://127.0.0.1:port;

5.测试

启动nginx

二.nginx配置实例1:反向代理2

多个端口的请求转发

三.nginx配置实例2:负载均衡

1.nginx分配服务器策略:
默认:轮询,按照时间的顺序逐一分配到服务器列表
weight:代表权重,权重大,分配的请求数越多 `

upstream server_pool{

	server ip:port weight=10;
	
	server ip2:port weight=10;

}
ip_hash :每个请求按方粉ip的hash结果分配,这样每一个访客固定一个后端服务器,可以解决session的问题,例如:
upstream server_pool{
	ip_hash;
	server ip:port;
	server ip2:port;
}

fair(第三方):按照后端服务器的响应时间分配客户端的请求。

upstream server_pool{
	server ip:port;
	server ip2:port;
	fair;
}
2.nginx.conf配置文件配置:
在http块中

upstream myserver{

	server 服务器ip:端口; #服务器列表

	server 服务器ip2:端口;

	……

} # 负载均衡的服务器列表

同时修改 server中的server_name和location中的proxy_pass

四.nginx配置实例:动静分离

  1. 概念:静态请求与动态请求分离
  • 第一种是动态请求服务器和静态资源服务器分开。
  • 第二种是静态和动态文件混合在一起,通过nginx来分开。
    通过location 指定不同的后缀名实现不同的请求转发,
    通过expires参数设置,设置浏览器缓存过期的时间
  1. 具体配置
  • nginx.conf配置文件中:
  • server
  • server_name 的修改:
location /www/ {

   	root /data/;

   	index index.html index.htm;

   }

   location /image/ {

   	root /data/;

   	autoindex on; #列出文件夹中的内容

   }

五,nginx高可用

  1. 问题:当nginx宕机时,高可用解决该问题。
  2. 如何解决?
  • 多台nginx(nginx1、nginx2,……)
  • 主从架构(masterbackup
  • keepalived:用于检测主从nginx的状态,来切换lived的nginx
  • 对外开放的时一个虚拟IP,主从nginx都要配置这个虚拟IPkeepalived来监测
  1. 配置高可用:
  • 实例:两台服务器
  • 安装nginx工具
  • 安装keepalived工具
  • yum -y install keepalived
  • rpm -q -a keepalived 检查安装是否成功
  • 安装在/etc/keepalived
  • 配置文件在 /etc/keepalived/keepalived.conf
  • global_defs 全局定义
  • router_id LVS_DEVEL #访问到服务器的名字
  • vi /etc/hosts
  • 127.0.0.1 LVS_DEVEL
  • vrrp_script_chk_http_port #脚本配置
  • script “path” #检测脚本
  • interval 2 #检测脚本执行的间隔 每隔两秒执行一次
  • weight 2 #权重 当脚本成立时,降低权重,从主变到从
  • vrrp_instance_VI_1
  • state MASTER #MASTER 否则BACKUP
  • interface ens33 #网卡名
  • virtual_router_id 51 #主备机的virtual_router_id必须相同
  • priority 100 #主备机取不同的优先级,主机值越大,备份机越小
  • advert_int 1 #每隔1秒检测心跳
  • virtual_ipaddress{ip # vrrp h 虚拟地址 对外开放的虚拟ip,……}
  • 完成高可用配置(主从配置):
  • 修改keepalived 配置文件:
  • 脚本文件 nginx_check.sh:
#!/bin/bash

A=ps -C nginx -no-header | wc -l

if [ $A -eq 0 ];then

	/usr/local/nginx/sbin/nginx #脚本启动的位置

	sleep 2

	if [ ps -C nginx -no-header | wc -l -eq 0];then

		killall keepalived  #杀掉进程

	fi

fi
  • 启动nginxkeepalived
  • systemctl start keepalived.service
  • 测试
  • 测试浏览器输入虚拟IP
  • ip a
  • 测试停止主服务器中nginxkeepalived