反向代理、负载均衡、高可用、动静分离
ps -ef | grep nginx
nginx进程
nginx操作命令
先切换到nginx/sbin目录下
查看3000端口号占用
```python
netstat -apn | grep 3000
查看版本号
nginx -v
关闭nginx
nginx -s stop
启动nginx
./nginx
重新加载nginx
nginx -s reload
nignx启动后访问不到解决
```python
第一步,对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多路复用机制