nginx笔记

215 阅读2分钟

反向代理、负载均衡、高可用、动静分离

ps -ef | grep nginx
nginx进程

nginx操作命令

先切换到nginx/sbin目录下

查看3000端口号占用

netstat -apn | grep 3000 查看版本号 nginx -v

关闭nginx nginx -s stop

启动nginx ./nginx

重新加载nginx nginx -s reload nignx启动后访问不到解决

第一步,对80端口进行防火墙配置:

firewall-cmd --zone=public --add-port=80/tcp --permanent 第二步,重启防火墙服务:

systemctl restart firewalld.service

对外开放访问的端口 firewall-cmd --add-port=8080/tcp --permanent firewall-cmd --reload 查看已经对外开放的端口 firewall-cmd --list-all

如果失败了使用 通过systemctl start firewalld开启防火墙,没有任何提示即开启成功。 如果要关闭防火墙设置,可能通过systemctl stop firewalld这条指令来关闭该功能。

设置反向代理

在http块中设置 server块中的location 设置属性proxy_pass为代理地址

负载均衡

在http块中新增 
upstream myserver{
	server 域名:端口;
	server 域名:端口;
}
server {
	listen 80;
	server_name 域名;
	location / {
		proxy_pass http://myserver; # 这个名字和上面那个对应起来
	}
}
负载均衡模式
1、轮询(默认)
2、weight 设置权重多大权限也高
upstream myserver{
	server 域名:端口 weight=10;
	server 域名:端口 weight=12;
}
3、ip_hash 每个请求按访问ip的hash结果分配,每个访客访问固定的服务器,解决了seesion的问题
upstream myserver{
	ip_hash;
	server 域名:端口 weight=10;
	server 域名:端口 weight=12;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,啊应时间短的优先分配。
upstream myserver{
	server 域名:端口 weight=10;
	server 域名:端口 weight=12;
	fair;
}
高可用

需要两台服务器 都要安装nginx 然后安装keepalivedyum install keepalived -y 安装之后,在etc里面生成目录keepalived,有文件keepalived.conf 启动systemctl start keepalived.service keepalived.conf中的部分配置

global_defs {
	router_id LVS_DEVELBACK # 主机名称
}
vrrp_script chk_http_port{
	script "/usr/local/src/nginx_check.sh"
	interval 2 #(检测脚本执行的间隔)
	weight 2
}
vrrp_instance VI_1 {
    state MASTER  # 如果是主服务器是MASTER 次服务器BACKUP
    interface eth0 # 网卡名称b'g
    virtual_router_id 51
    priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.200.16 # 配置虚拟服务器
     
    }
}

在/usr/local/src添加检测脚本

#!/bin/bash
A=`ps -C nginx - no-header |wc -l`

if [ $A -eq 0 ];then
	/usx/local/nginx/sbin/nginx
	sleep 2
	if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
		killall keepalived
	fi
fi

nginx原理 master worker worker设置数量 建议cpu几核几个 比如8核8个

nginx.conf
worker_processes  1; 

nginx和redis io多路复用机制