1 . 我的redis服务用的redis配置文件在哪里?
答:我用的是centos系统,我知道redis是通过yum安装的,那么我需要通过
[root@iZ2ze33uzthv7txm85m303Z ~]# rpm -qa | grep redis
redis-3.2.12-2.el7.x86_64
这样,我就知道了我装的redis版本,进而我能够知道redis用的配置文件。
[root@iZ2ze33uzthv7txm85m303Z ~]# rpm -ql redis-3.2.12-2.el7.x86_64
/etc/logrotate.d/redis
/etc/redis-sentinel.conf
/etc/redis.conf (*)
/etc/systemd/system/redis-sentinel.service.d
/etc/systemd/system/redis-sentinel.service.d/limit.conf
/etc/systemd/system/redis.service.d
/etc/systemd/system/redis.service.d/limit.conf
/usr/bin/redis-benchmark
/usr/bin/redis-check-aof
/usr/bin/redis-check-rdb
/usr/bin/redis-cli
/usr/bin/redis-sentinel
/usr/bin/redis-server
/usr/lib/systemd/system/redis-sentinel.service
/usr/lib/systemd/system/redis.service
/usr/libexec/redis-shutdown
/usr/share/doc/redis-3.2.12
/usr/share/doc/redis-3.2.12/00-RELEASENOTES
/usr/share/doc/redis-3.2.12/BUGS
/usr/share/doc/redis-3.2.12/CONTRIBUTING
/usr/share/doc/redis-3.2.12/MANIFESTO
/usr/share/doc/redis-3.2.12/README.md
/usr/share/licenses/redis-3.2.12
/usr/share/licenses/redis-3.2.12/COPYING
/usr/share/man/man1/redis-benchmark.1.gz
/usr/share/man/man1/redis-check-aof.1.gz
/usr/share/man/man1/redis-check-rdb.1.gz
/usr/share/man/man1/redis-cli.1.gz
/usr/share/man/man1/redis-sentinel.1.gz
/usr/share/man/man1/redis-server.1.gz
/usr/share/man/man5/redis-sentinel.conf.5.gz
/usr/share/man/man5/redis.conf.5.gz
/var/lib/redis
/var/log/redis
/var/run/redis
2 . 如何更改该redis配置,可以打开外网访问?还要更改下密码以保证安全性。
答:
- 注释掉bind 127.0.0.1,从而让redis不光监听本机的请求。
- protected-mode no,默认是打开的,想要从别的host连接古来,就需要关闭。
- requirepass 密码,设置密码。
- 重启redis服务
3 . 重启redis服务,我如何让redis以守护进程方式启动呢?
答:centos 7开始,使用systemd代替daemon了,所以管理系统服务的命令全部由systemctl命令代替。
systemctl start redis //如果遇到问题就用systemctl status来查看问题原因
4 . 防火墙还会挡住外网访问6379端口,怎么办?
答:这个跟iptable的规则有关了,运维工程师们总是跟iptable打交道,我们只需要知道怎么用即可。
[root@iZ2ze33uzthv7txm85m303Z ~]# iptables -nvL //查看目前服务的端口
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
7704K 1142M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
12905 687K ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0
12984 779K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
14 896 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:6379
439K 25M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5655K 271M ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
54310 2782K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8080
6545K 323M REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
764K 624M DOCKER-ISOLATION all -- * * 0.0.0.0/0 0.0.0.0/0
400K 597M DOCKER all -- * docker0 0.0.0.0/0 0.0.0.0/0
399K 597M ACCEPT all -- * docker0 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
364K 27M ACCEPT all -- docker0 !docker0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT all -- docker0 docker0 0.0.0.0/0 0.0.0.0/0
0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT 4127 packets, 1019K bytes)
pkts bytes target prot opt in out source destination
Chain DOCKER (1 references)
pkts bytes target prot opt in out source destination
42 4713 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.18.0.2 tcp dpt:80
16 2316 ACCEPT tcp -- !docker0 docker0 0.0.0.0/0 172.18.0.4 tcp dpt:8080
Chain DOCKER-ISOLATION (1 references)
pkts bytes target prot opt in out source destination
764K 624M RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
目前,我已经放开了服务器的6379端口外网访问,所以结果中会有6379条目。正常来说,新配环境的时候,6379是没有的,所以我们需要添加上。
iptables -I INPUT 4 -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT
之后,还需要保存
service iptables save
然后我们再通过查看语句就能看到6379了。至此我们配置完成了redis的外网访问及权限安全了。
我准备再写一个实现主从redis配置的文章,改天研究研究。