运维实战--Nginx 代理 Mongodb、Redis、ELK

该文详细介绍了如何通过Docker运行Nginx容器,并配置代理服务以连接MongoDB和Redis。同时,对于ELK,文章不仅提供了代理配置,还添加了密码验证以增强安全性。每个代理配置步骤包括创建Nginx容器、编辑配置文件和重启容器。
摘要由CSDN通过智能技术生成

一、Nginx 代理 Mongodb

1.创建 nginx 容器

docker run -d --restart=always -p 443:443 --name nginx-mongodb -v /usr/local/nginx/mongodb:/etc/nginx/tcp.d nginx

2.进入 nginx 容器,执行以下操作(注意:复制粘贴记得删除配置文件里的注释!!!):

#进入容器
docker exec -it nginx-mongodb bash

#编辑代理 mongodb 配置文件
cd /etc/nginx/tcp.d
cat > mongo.server.27017.conf <<EOF
stream {
 upstream stream_mongo_backend {
        server 192.168.1.200:27017; #要代理的 mongodb IP和端口
        }
 server {
                listen 443;    #容器映射的端口
                proxy_pass stream_mongo_backend;
        }
}
EOF

#修改 nginx 配置文件。作用:使上面的文件生效
cat >> /etc/nginx/nginx.conf <<EOF
include /etc/nginx/tcp.d/*.conf;
EOF

3.退出容器,重启 nginx 容器

docker restart nginx-mongodb

二、Nginx 代理 redis

1.创建 nginx 容器

docker run -d --restart=always -p 4200:4200 --name nginx-redis -v /usr/local/nginx/redis:/etc/nginx/tcp.d nginx

2.进入 nginx 容器,执行以下操作(注意:复制粘贴记得删除配置文件里的注释!!!):

#进入容器
docker exec -it nginx-redis bash

#编辑代理 redis 配置文件
cd /etc/nginx/tcp.d
cat > redis.conf <<EOF
stream {
    upstream redis {
        server 192.168.1.200:6379 max_fails=3 fail_timeout=30s; #redis 的IP和端口
    }
    server {
        listen 4200; #nginx 容器映射的端口
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass redis;
    }
}
EOF

#修改 nginx 配置文件。作用:使上面的文件生效
cat >> /etc/nginx/nginx.conf <<EOF
include /etc/nginx/tcp.d/*.conf;
EOF

3.退出容器,重启 nginx 容器

docker restart nginx-redis

三、Nginx 代理 ELK

1.创建 nginx 容器

docker run -d --restart=always -p 5602:5602 -p 9201:9201 --name nginx-elk -v /usr/local/nginx/conf.d:/etc/nginx/conf.d nginx

2.进入 nginx 容器,执行以下操作,这次代理会增加密码验证(注意:复制粘贴记得删除配置文件里的注释!!!)

设置 nginx 代理密码验证:

#进入 nginx 容器
docker exec -it nginx-elk bash

#更换源码镜像库地址
cat > /etc/apt/sources.list << EOF
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
EOF

#更新软件源
apt-get update

#安装 apache2-utils
apt-get install apache2-utils

#生成 kibana 密码文件
htpasswd -c /etc/nginx/kibana.passwd 用户名
#输入密码(自动弹出)
New password: 
Re-type new password: 

#生成 es 密码文件
htpasswd -c /etc/nginx/elasticsearch.passwd 用户名
#输入密码(自动弹出)
New password: 
Re-type new password:

 添加 ELK 配置文件:

#添加代理 ELK 配置信息
cat > /etc/nginx/conf.d/elk.conf <<EOF
upstream kibana_server {
    server 192.168.1.200:5692; #kibana IP和端口
}   
server {
    listen             5602;  #容器映射的端口
    server_name        127.0.0.1; #本机的IP
    auth_basic "Welcome Acess Kibana WebUI"; #密码验证的标题
    auth_basic_user_file /etc/nginx/kibana.passwd; #密码文件的位置
    location / {
        proxy_pass http://kibana_server;
    }
}
upstream elasticsearch_server {
    server 192.168.1.200:9292; #es 的IP和端口
}
server {
    listen             9201; #容器映射的端口
    server_name        127.0.0.1; #本机IP
    auth_basic "Welcome Acess Elasticsearch WebUI"; #密码验证的标题
    auth_basic_user_file /etc/nginx/elasticsearch.passwd; #密码文件的位置
    location / {
        proxy_pass http://elasticsearch_server;
    }
}
EOF

3.退出容器,重启 nginx 容器

docker restart nginx-elk

最后效果:

登录代理地址会先验证,输出正确账号密码才可访问

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mongodbnginx是两个不同的软件。mongodb是一种NoSQL数据库管理系统,而nginx是一个开源的高性能的Web服务器和反向代理服务器。它们通常用于不同的用途。 如果你想在nginx代理mongodb,你可以按照以下步骤进行操作: 1. 首先,你需要创建一个名为"nginx-mongodb"的nginx容器,并将容器的443端口映射到主机的443端口。你可以使用以下命令创建容器: 2. 由于mongodb需要使用TCP协议,而nginx默认提供的是HTTP协议,所以你需要在nginx配置文件(nginx.conf)中添加相应的配置来支持TCP代理。你可以按照以下步骤进行操作: 3. 接下来,你需要进入nginx容器,并进行以下操作: - 使用`docker exec`命令进入nginx容器:`docker exec -it nginx-mongodb bash` - 进入容器后,在/etc/nginx/tcp.d目录下创建一个名为"mongo.server.27017.conf"的文件,并编辑该文件,添加代理mongodb配置信息。 - 修改nginx配置文件(nginx.conf),使上面创建的配置文件生效。 通过以上步骤,你就可以在nginx代理mongodb了。请确保将其中的IP地址和端口号替换为你要代理mongodb服务器的实际信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [运维实战--Nginx 代理 MongodbRedisELK](https://blog.csdn.net/Naive_mmm/article/details/129383154)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Nginx代理mongoDB TCP Stream](https://blog.csdn.net/m0_46690280/article/details/123663615)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值