假设Kubernetes集群已经配置好,我们将基于CentOS为Nginx创建一个虚拟机。
以下是实验中设置的详细信息:
Nginx (CenOS8 Minimal) – 192.168.1.50
Kube Master – 192.168.1.40
Kube Worker 1 – 192.168.1.41
Kube Worker 2 – 192.168.1.42
步骤1)安装epel仓库
因为nginx软件包在CentOS系统默认仓库里面没有,所以需要安装epel仓库:
[root@nginxlb ~]# dnf install epel-release -y
步骤2)安装Nginx
运行以下命令安装nginx:
[root@nginxlb ~]# dnf install nginx -y
使用rpm命令验证Nginx包的详细信息:
[root@nginxlb ~]# rpm -qi nginx
配置防火墙,允许访问nginx的http和https服务:
[root@nginxlb ~]# firewall-cmd --permanent --add-service=http[root@nginxlb ~]# firewall-cmd --permanent --add-service=https[root@nginxlb ~]# firewall-cmd –reload
使用以下命令将SELinux设置为permissive模式,并重启系统使selinux关闭生效:
[root@nginxlb ~]# sed -i s/^SELINUX=.*$/SELINUX=permissive/ /etc/selinux/config[root@nginxlb ~]# reboot
步骤3)从Kubernetes中获取应用程序的NodePort详细信息
[kadmin@k8s-master ~]$ kubectl get all -n ingress-nginx
从上面的输出中可以看到,每个工作节点的NodePort 32760映射到端口80,NodePort 32375映射到443端口。我们将在Nginx配置文件中使用这些节点端口来做负载均衡。
步骤4)将Nginx配置负载均衡
编辑nginx配置文件,并添加以下内容:
[root@nginxlb ~]# vim /etc/nginx/nginx.conf
注释掉“server”部分(从38到57行):
并添加以下几行:
upstream backend { server 192.168.1.41:32760; server 192.168.1.42:32760; } server { listen 80; location / { proxy_read_timeout 1800; proxy_connect_timeout 1800; proxy_send_timeout 1800; send_timeout 1800; proxy_set_header Accept-Encoding ""; proxy_set_header X-Forwarded-By $server_addr:$server_port; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://backend; } location /nginx_status { stub_status; } }
保存配置文件,并退出。
根据上述更改,所有向nginx的80端口的请求,都将被路由到的Kubernetes工作节点(192.168.1.41和192.168.1.42)的NodePort(32760)端口上。
使用以下命令启用Nginx服务:
[root@nginxlb ~]# systemctl start nginx[root@nginxlb ~]# systemctl enable nginx
测试Nginx的 TCP负载均衡器
要测试nginx作为Kubernetes的TCP负载均衡是否工作正常,请部署基于nginx的deployment,将deployment的端口暴露为80端口,并为nginx 的deployment定义入口资源。我已经使用以下命令来部署这些Kubernetes对象:
[kadmin@k8s-master ~]$ kubectl create deployment nginx-deployment --image=nginx deployment.apps/nginx-deployment created [kadmin@k8s-master ~]$ kubectl expose deployments nginx-deployment --name=nginx-deployment --type=NodePort --port=80 service/nginx-deployment exposed
运行以下命令以获取deployments,svc和ingress详细信息:
更新本地主机的hosts文件,以便nginx-lb.example.com指向nginx服务器的IP地址(192.168.1.50)
[root@localhost ~]# echo "192.168.1.50 nginx-lb.example.com" >> /etc/hosts
尝试通过浏览器访问nginx-lb.example.com
以上是Nginx怎么配置TCP负载均衡的详细内容。更多信息请关注PHP中文网其他相关文章!

win10如何重置tcp/ip协议?其实方法很简单的,用户们可以直接的进入到命令提示符,然后按下ctrl+shift+enter的组合键来进行操作就可以了或者是直接的执行重置命令来进行设置,下面就让本站来为用户们来仔细的介绍一下windows10重置tcp/ip协议栈的方法吧。windows10重置tcp/ip协议栈的方法一、管理员权限1、我们使用快捷键win+R直接打开运行窗口,然后输入cmd并按住ctrl+shift+enter的组合键。2、或者我们可以直接在开始菜单中搜索命令提示符,右键点

TCP是计算机网络通信协议的一种,是一种面向连接的传输协议。在Java应用开发中,TCP通信被广泛应用于各种场景,比如客户端和服务器之间的数据传输、音视频实时传输等等。Netty4是一个高性能、高可扩展性、高性能的网络编程框架,能够优化服务器和客户端之间的数据交换过程,使其更加高效可靠。使用Netty4进行TCP通信的具体实现步骤如下:引入

nginx php403错误的解决办法:1、修改文件权限或开启selinux;2、修改php-fpm.conf,加入需要的文件扩展名;3、修改php.ini内容为“cgi.fix_pathinfo = 0”;4、重启php-fpm即可。

那这里面提到的"面向连接",意味着需要 建立连接,使用连接,释放连接。建立连接是指我们熟知的TCP三次握手。而使用连接,则是通过一发送、一确认的形式,进行数据传输。还有就是释放连接,也就是我们常见的TCP四次挥手。

TCP客户端一个使用TCP协议实现可连续对话的客户端示例代码:importsocket#客户端配置HOST='localhost'PORT=12345#创建TCP套接字并连接服务器client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)client_socket.connect((HOST,PORT))whileTrue:#获取用户输入message=input("请输入要发送的消息:&

nginx部署react刷新404的解决办法:1、修改Nginx配置为“server {listen 80;server_name https://www.xxx.com;location / {root xxx;index index.html index.htm;...}”;2、刷新路由,按当前路径去nginx加载页面即可。

nginx禁止访问php的方法:1、配置nginx,禁止解析指定目录下的指定程序;2、将“location ~^/images/.*\.(php|php5|sh|pl|py)${deny all...}”语句放置在server标签内即可。

本文给大家介绍如何通过修改Nginx源码实现基于端口号的 Nginx worker进程隔离方案。看看到底怎么修改Nginx源码,还有Nginx事件循环、Nginx 进程模型、fork资源共享相关的知识。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3汉化版
中文版,非常好用

Dreamweaver CS6
视觉化网页开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中