Linux运维新手的修炼手扎之第21天

Nginx服务和Tomcat服务

1 负载均衡

语法格式:upstream一个或多个

复制代码
root@ubuntu24-13:~# vim /etc/nginx/conf.d/vhost.conf
    upstream group1 {
        server 10.0.0.16;
    }
    upstream group2 {
        server 10.0.0.14;
    }
    server {
        listen 80;
        server_name sswang1.magedu.com;
        location / {
            proxy_pass http://group1;
        }
    }
    server {
        listen 80;
        server_name sswang2.magedu.com;
        location / {
            proxy_pass http://group2;
        }
    }

调度算法:轮询、加权轮询weight=3

备用主机实践backup标记该Server为备用,当所有后端服务器不可用时,才使用此服务器

复制代码
upstream group1 {
            	# 10.0.0.14 平常不用
         		server 10.0.0.16;
         		server 10.0.0.14 backup;
        	}

应用平滑下线down标记该Server临时不可用,可用于平滑下线后端服务器,新请求不再调度到此服务器,原有连接不受影响

复制代码
upstream group1 {
                # 10.0.0.14 准备下线
                server 10.0.0.16;
                server 10.0.0.14 down;
			}

ip_hash根据客户端IP的哈希值固定分配到同一台后端服务器,第一次找的谁,以后都找它

复制代码
 upstream group1 {
                ip_hash;
                server 10.0.0.16;
                server 10.0.0.14;
			}

hash $key自定义哈希键(如 URL、参数),相同键的请求固定分配到同一服务器

复制代码
upstream group1 {
                hash $request_uri consistent;  # 按请求URI哈希,consistent可选,使用一致性哈希算法减少服务器增减时的重新映射
                server 10.0.0.16;
                server 10.0.0.14;
			}

2 四层代理

语法格式:外层stream,内部【upstream + server不需要location
用apt方式安装的nginx,默认是--with-stream=dynamic动态加载的,需要加载模块load_module /usr/lib/nginx/modules/ngx_stream_module.so

复制代码
root@ubuntu24-13:~# vim /etc/nginx/nginx.conf 
    stream {
        include /etc/nginx/conf.d/stream_configs/*.conf;
    }
    root@ubuntu24-13:~# mkdir -p /etc/nginx/conf.d/stream_configs
	root@ubuntu24-13:~# vim /etc/nginx/conf.d/stream_configs/tcp.conf
    upstream mysqlserver{
        server 10.0.0.16:3306;
    }
    upstream redisserver{
        server 10.0.0.14:6379;
    }
    server{
        listen 3306;
        proxy_pass mysqlserver;
	}
	server{
        listen 6379;
        proxy_pass redisserver;
	}

4 java基础

java代码逻辑:
单一功能:语法 - 源代码 - 字节码 - jvm
复杂功能:语法 - 源代码 - 字节码 - JRE(jvm + 运行库环境)
项目维护:语法 - 源代码 - 字节码 - JDK(JRE(jvm + 运行库环境) + 维护工具)
java环境部署:jdk【oracle+openjdk】
5 tomcat基础
环境部署:tomcat 和 jdk 有版本兼容性|最低版本要求tomcat10最低版本要求jdk11、tomcat9最低版本要求jdk8
运行命令:
主控制脚本:catalina.sh start|stop
启动 Tomcat:startup.sh=catalina.sh start
关闭 Tomcat:shutdown.sh=catalina.sh stop
tomcat配置结构:
server、service、connector - engine、host
context:全局的【tomcat的配置目录】、host专用【单一web目录里面--优先级最高】

相关推荐
AOwhisky8 小时前
Redis 学习笔记(第三期):持久化与主从复制
运维·数据库·redis·笔记·学习·云计算
c238568 小时前
Linux C++ 进度条进阶美化与工程化封装
linux·运维·服务器
李小白668 小时前
第四天-WEB服务器基本原理,IIS服务
运维·服务器·前端
2401_834636998 小时前
Nginx 从入门到实战:静态 / 动态站点、PHP 部署与反向代理全解析
运维·nginx·php
爱喝水的鱼丶9 小时前
SAP-ABAP:SAP视图开发入门:四类标准视图的适用场景与创建步骤详解
服务器·数据库·性能优化·sap·abap
aosky9 小时前
一台电脑配置多个 SSH Key 对应不同的 GitHub 账号
运维·ssh·github
云登指纹浏览器10 小时前
WebDriver反检测技术详解:如何让自动化脚本看起来像真实浏览器
运维·自动化·跨境电商
xmtxz10 小时前
计算机网络基础课程学习心得:从理论抽象到硬核实战的进阶之路
运维·学习
凡人叶枫10 小时前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
RisunJan11 小时前
Linux命令-pgrep (通过进程名查找进程 ID)
linux·运维