Nginx
2020-12-04 09:56:40 3 举报
AI智能生成
Nginx 集群/负载均衡
作者其他创作
大纲/内容
Nginx
Nginx是什么?
font color=\"#c41230\
Nginx 作为web服务器
反向代理
什么是 正向代理?
什么是反向代理?
nginx 实现反向代理1
需求1: 本地通过访问www.123.com 通过nginx的80端口跳转到 服务器8080端口的tomcat
在host文件添加 192.168.247.110 www.123.com
修改 nginx配置文件 nginx.conf文件
server { listen 80; server_name 192.168.247.110; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; proxy_pass http://127.0.0.1:8080; index index.html index.htm; }
重新启动nginx 访问 www.123.com成功可以访问
nginx 实现反向代理2
需求: 访问127.0.0.1:9001/edu/ 直接跳转到 127.0.0.1:8080 访问 127.0.0.1:9001/vod/ 直接跳转到 127.0.0.1:8081
server { listen 9001; server_name 192.168.247.110; location ~ /edu/ { proxy_pass http://127.0.0.1:8080; } location ~ /vod/{ proxy_pass http://127.0.0.1:8081; } }
正则表达式
=
~
~*
`~
负载均衡
是什么
nginx 怎么做
需求: 浏览器输入 ip/edu/a.html 负载均衡平分 8080 和 8081 端口(其中俩个tomcat 都有edu/a.html)
修改nginx.conf配置文件
http块添加
upstream myserver { [ip_hash;]server 192.168.247.110:8080 [weight=5];server 192.168.247.110:8081 [weight=10];[fair;]}
server块添加监听
server { listen 9002; server_name 192.168.247.110; location / { proxy_pass http://myserver; } }
nginx分配服务器的策略
轮询(默认)
weight
ip_hash
fair(第三方)
动静分离
前提条件
子主题
nginx.conf 配置
#动静分离 server { listen 9003; server_name 192.168.247.110; location /html/ { root /home/data/; index index.html index.html; } location /images/ { root /home/data/; #是否在浏览器列出整个文件夹 autoindex on; } }
在哪下
http://nginx.org/en/download.html
怎么玩
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
pcre-config --version
在 /user/local/nginx/sbin (常见命令)
启动 ./nginx
快速停止 ./nginx -s stop
重新加载
./nginx -s reload
查看nginx版本号 ./nginx -v
注意 : 需要防火墙开放 80 端口
nginx.conf配置文件
全局快
worker_processes 1;
events块
涉及的指令font color=\"#c41230\
worker_connections 1024;
支持的最大连接数
http
http 全局块
server 块
Nginx高可用的集群
前提要求:
官网 https://www.keepalived.org/download.html
手动安装
进行解压目录
./configure --prefix=/usr/local/keepalived
make && make install
启动/usr/local/keepalived/sbin/
./keepalived -f /usr/local/keepalived/etc/keepalived/keepalived.conf
安装位置 /usr/local/keepalived/etc/keepalived/keepalived.conf
自动安装
yum install keepalived -y
检查是否安装成功
rpm -q -a keepalived
安装位置 /etc/keepalived/keepalived.conf
修改 keepalived.conf 配置文件
global_defs {\tnotification_email {\t acassen@firewall.loc\t failover@firewall.loc\t sysadmin@firewall.loc\t}\tnotification_email_from Alexandre.Cassen@firewall.loc\tsmtp_ server 192.168.17.129\tsmtp_connect_timeout 30\trouter_id LVS_DEVEL\t# LVS_DEVEL这字段在/etc/hosts文件中看;通过它访问到主机}vrrp_script chk_http_ port {\tscript \"/usr/local/src/nginx_check.sh\"\tinterval 2 # (检测脚本执行的间隔)2s\tweight 2 #权重,如果这个脚本检测为真,服务器权重+2}vrrp_instance VI_1 {\tstate BACKUP # 备份服务器上将MASTER 改为BACKUP\tinterface ens33 //网卡名称 通过 ap addr命令来查看\tvirtual_router_id 51 # 主、备机的virtual_router_id必须相同\tpriority 100 #主、备机取不同的优先级,主机值较大(100),备份机值较小(90)\tadvert_int 1\t#每隔1s发送一次心跳\tauthentication {\t# 校验方式, 类型是密码,密码1111 auth type PASS auth pass 1111 }\tvirtual_ipaddress { # 虛拟ip\t\t192.168.17.50 // VRRP H虛拟ip地址\t}}
添加脚本文件在 /usr/local/src/nginx_check.sh
#! /bin/bashA=`ps -C nginx -no-header | wc - 1`if [ $A -eq 0];then\t/usr/local/nginx/sbin/nginx\tsleep 2\tif [`ps -C nginx --no-header| wc -1` -eq 0 ];then\t\tkillall keepalived\tfifi
可以通过查看 ap addr 的ens33 里面查找到 端口为 17.50的是否绑定到 ens33
Nginx 原理
master--只有一个
worker--可以有多个work
这样有什么好处呢?
所以font color=\"#c41230\
代码设置 worker
发送一个请求占用了 worker 的几个连接数?
2 个或者 4个
worker的最大连接数是 4*1024 /2
worker的最大连接数是 4*1024 /4
0 条评论
回复 删除
下一页