CentOS 7.9 docker 运行 Nginx 采坑记录,IPv4 forwarding is disabled. Networking will not work....(虚拟机内docker容器无法访问外部网络)
docker 使用Nginx做负载的时候,由于自己是个新手,第一次接触docker以及nginx,踩了一个坑,在此记录下。
1、安装docker
2、安装nginx
3、宿主机与容器nginx配置文件挂载
4、配置负载均衡
upstream ytest {
#后端目标服务器
server 192.168.182.132:8500;
server 192.168.182.131:8500;
}
server {
#前端接受流量入口
listen 80;
server_name localhost;
location / {
proxy_pass http://ytest;
}
}
问题就发生在这块,目标两个服务器也是虚拟机,里面安装了consul,但是怎么试,都不起作用,后来我多次删除、创建容器,终于提示错误了
然后我进入容器里面,访问了外网,发现确实不好用。
接下来开始一顿操作.....
5、安装vim(如果已安装直接执行6)
yum -y install vim*
6、修改宿主机配置
#如果vim提示找不到,则执行上安装vim
vim /etc/sysctl.conf
#配置转发
net.ipv4.ip_forward=1
#重启服务,让配置生效
systemctl restart network
#查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward
#重启docker服务
service docker restart
至此需要的操作就完事了,再次进入容器,访问下外网,例如百度啥的,应该就好用了。也访问了负载后端服务器,都可以访问。然后通过浏览器访问nginx负载地址,已经好用了。