本文目录:
- 1、使用Nginx配置TCP负载均衡
- 2、nginx反向代理可以配防火墙吗
- 3、如何安装nginx
- 4、Linux(centos7)下gitlab使用自己安装的nginx配置
- 5、阿里云安装lnmpa
- 6、运行中的nginx容器怎么开发端口
使用Nginx配置TCP负载均衡
Nginx是比较不错的开源Web服务器之一,但它也可以用作TCP和UDP负载均衡器。使用Nginx作为HAProxy的负载均衡器的主要好处之一是,它还可以负载均衡基于UDP的流量。在本文中,我们将演示如何将NGINX配置为Kubernetes集群中部署的应用程序的负载均衡。
假设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
使用以下命令将SE Linux 设置为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 ;
}
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负载均衡器可以正常工作,因为它可以负载平衡K8s工作节点之间端口80上的TCP通信量。
nginx反向代理可以配防火墙吗
关闭防火墙与SELinux
输入命令:
service iptables stop
setenforce 0
安装编译环境
输入命令:yum install gcc*
安装nginx
切换到nginx源码包存放位置
输入命令:
tar -zxvf nginx-1.6.2.tar.gz
./configure
make
make install
配置反向代理
输入命令:
vim /usr/local/nginx/conf/nginx.conf
找到server{***}字段,注释掉,然后自定义该字段。
示例:
server{
listen 80;
server_name 反向代理的域名或ip;
location / {
proxy_pass http://****; //代理指向的服务器
}
如何安装nginx
准备工作:1、首先要确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件,可通过命令进行检测,如果已经安装了可以卸载
2、一般安装linux软件都会在/usr/local目录下,接着进行解压编译安装,
3、等待配置和编译完成。
4、完成后需要配置防火墙,不拦截80端口,设置完成后需要重启防火墙
5、接下来介绍下启动/停止/重启的具体方法,进入目录后我们可以用执行sbin/nginx来启动,也可以通过conf/nginx.conf来启动。
6、停止我们可以查询进程使用kill -9 进程号/pkill -9 nginx来结束nginx服务,重启可以通过 sbin/nginx -s reload来重启。
7、下面来说说基本的操作命令:
nginx -h #帮助
nginx -v #显示版本
nginx -V #显示版本和配置信息
nginx -t #测试配置
nginx -q #测试配置时,只输出错误信息
nginx -s stop #停止服务器
nginx -s reload #重新加载配置
然后配置conf文件,用来配置nginx
8、完成任务。
Linux(centos7)下gitlab使用自己安装的nginx配置
一、使用oneinStack安装lamp环境
二、安装gitlab
三、修改gitlab配置
四、配置nginx
把gitlab之前生成的http.conf复制到nginx的config目录下面的所有文件拷贝到nginx配置目录(可以把之前的nginx.conf备份一个以免不时之需)
五、防火墙配置端口
其他设置、待验证
邮件配置
汉化
阿里云安装lnmpa
官方地址:
LNMP一键安装包是一个用Linux Shell编写的可以为CentOS/RHEL/Fedora/Aliyun/Amazon、Debian/Ubuntu/Raspbian/Deepin/Mint Linux VPS或独立主机安装LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序。
流程就是:安装lnmp,然后再安装pureftp,开放相应的端口,对各个应用服务器进行设置。
各个应用服务器进行设置:
对pureftp进行防火墙端口设置、阿里云安全组规则端口开放,用主动模式去连接ftp。
对mysql进行防火墙端口设置、阿里云安全组规则端口开放、设置root用户可远程ip连接。
对nginx进行防火墙端口设置、远程ip连接、阿里云安全组规则端口开放。
安装过程中,我选择安装 mysql 5.7,php 5.6,Jemalloc内存分配器
一些提示操作:可以查看/usr/lnmp/README,从lnmp1.4开始,不再安装pureftp,需要自己手动安装。见下文 安装PureFtp篇 。
搭建好lnmpa后,通过外网ip访问nginx,mysql,pure-ftp等有可能因端口问题访问失败,我们需要对防火墙进行设置。包括开启防火墙、开机自动启动防火墙、开放应用服务器对应的端口;
另附firewall的其他命令操作
开放了防火墙端口还不够,还需要再阿里云安全组规则页面进行再次开放端口。
我分别开放了21、22、80、88、3306、8080端口。
1、阿里云安全组规则,开放80端口
2、阿里云安全组规则,开放80端口
安装后, -h localhost 可以访问mysql,但是 -h 公网ip 无法正常登录mysql,提示2003错误。
网上很多说法是“因为centos7系统,即使关闭 firewalld,除了22端口,其余端口无法被外界访问,本地访问正常。”但经过测试,即使关了防火墙,访问其他端口时,未在==阿里云安全组规则==配置,也会被阿里云安全组规则进行挡住而无法访问。针对该问题,需要进行下面三步操作设置。
1、打开防火墙,然后开放防火墙3306端口
2、阿里云安全组规则,开放3306端口
3、mysql授权任何ip都可以远程该mysql服务器
默认LNMP是不安装FTP服务器的,如需要FTP服务器:
我选择安装pureftpd ,当然也可以不按照pureftpd,直接使用xshell的xftp去操作。
这个ftp虚拟用户为 系统用户 下的虚拟用户。就是说,你通过ftp客户端登录后上传的文件的所有者(权限)为该系统用户。比如,将ftp用户test绑定到系统用户cjf下,那么登录ftp后,上传的服务器的文件所有者是cjf。这样就可以不用给你该系统用户的登录密码,免得你登录服务器去干其他坏事。
解决方法:更改Filezilla设置,编辑-设置-连接-FTP-被动模式,将“使用服务器的外部ip地址来代替”改为“回到主动模式”即可。 ----------就是尝试==被动模式==不行的话,就用==主动模式==去连接。
以前总使用 ftp 公网ip ,登录后操作总是提示227,按网上教程说,把 ftp passive 关闭被动模式,但还是无法正常使用,这是因为在 ftp 公网ip 会因为==ForcePassiveIP没开启==,==安全组端口没设置==而出现被动模式阻塞。相比 ftp 局部网内部ip 这种方式,更麻烦,且服务器开放了更多的端口,更加不安全。不建议这种操作。
如果你不想了解什么是主动模式、什么是被动模式的话,就记住:
关闭passive(不用操作,只是补充知识点)
主动模式和被动模式:
【内网穿透笔记】FTP映射出现227 Entering Passive Mode错误命令原因及解决方法
安装lnmpa后,可以在 /usr/local/apache/conf/httpd.conf 中看到,apache的根目录Directory也被设置到了 /home/wwwroot/deafualt,而非${apche_home}/htdocs。
在lnmpa的架构中,默认情况下,apache被用来提供访问php的服务器。
如果想让nginx反向代理,通过80端口就可以访问tomcat的项目的话,可以进行设置
vim /usr/local/nginx/conf/nginx.conf
vim tomcat-users.xml
通过putty或者SecureCRT安装lnmp时,网络突然掉线或者不小心putty被关掉等等原因,造成lnmp安装过程被中断怎么办,其实防止这种现象很简单,只要在安装lnmp前执行screen命令就可以了。
详细介绍:
screen操作演示
微信公众平台消息接口开发在线调试系统
运行中的nginx容器怎么开发端口
运行中的nginx容器开发端口,这样做:
1、在nginx.conf中添加端口;
2、重启nginx配置文件nginxsreload;
3.、psef|grepnginx查看nginx进程;
4、设置防火墙对外开放端口,firewallcmdlistall查看开放的端口号,sudofirewallcmdaddport=18081/tcppermanent开放18081端口
5、重启防火墙firewallcmdreload。
【nginx防火墙在哪设置】的内容来源于互联网,如引用不当,请联系我们修改。
网友留言: