網站首頁 編程語言 正文
默認情況下,當我們在部署了redis服務之后,redis本身默認只允許本地訪問。Redis服務端只允許它所在服務器上的客戶端訪問,如果Redis服務端和Redis客戶端不在同一個機器上,就要進行配置。
使用redis報錯
例如使用redis的PHP代碼:
<?php
$redis = new Redis();
$redis->connect('192.168.1.4', 6379);
$redis->set('tag', 'hello');
echo 'name:', $redis->get('tag');
?>
執行以上代碼時,報錯如下:
Fatal error: Uncaught exception ‘RedisException' with message ‘Redis server went away' in xxxx
RedisException: Redis server went away in xxxxxx
?錯誤分析
默認情況下,如果沒有指定bind配置指令,則 Redis 監聽來自服務器上所有可用網絡接口的連接??梢允褂胋ind配置指令來監聽一個或多個選定的接口,在bind后拼接一個或多個 IP 地址即可。
服務器可以有一個網絡接口(通俗的說網卡),或者多個。打個比方說機器上有兩個網卡,分別為 192.168.205.5 和 192.168.205.6,如果 bind 192.168.205.5,那么只有該網卡地址接受外部請求,如果不綁定,則兩個網卡口都接受請求。所以,如果要讓公網可以連接該服務器上的 Redis 服務,除了直接注釋掉 bind 這一行來綁定到所有的網絡接口之外,更正確的做法應該是不注釋
警告:如果運行 Redis 的計算機直接暴露在互聯網上,綁定到所有的接口是很危險的,并會將實例暴露給互聯網上的每個人。因此,默認情況下,我們取消注釋以下綁定指令,這將強制 Redis 只監聽 IPv4 回環接口地址(這意味著 Redis 只接受來自運行它的計算機上的客戶端的連接)。
解決辦法
1、找到自己服務器中redis的配置文件redis.conf 文件
如果不清楚,可執行 find / -name redis.conf
如果是你通過yum安裝的redis,則redis的默認配置文件為:/etc/redis/redis.conf
修改 redis 的配置文件,將所有 bind 信息全部屏蔽。
# bind 192.168.1.100 10.0.0.1
# bind 192.168.1.8
# bind 127.0.0.1
2、如果你的服務器開啟了防火墻策略,此時需要配置修改 Linux 的防火墻(iptables),開放對應的redis端口,該端口為你啟動的redis配置文件中對應的端口號?,默認是 6379。
-A INPUT -m state –state NEW -m tcp -p tcp –dport 6379 -j ACCEPT
……
-A INPUT -j REJECT –reject-with icmp-host-prohibited
請注意,一定要將 redis 的防火墻配置放在 REJECT 的前面。然后執行 service iptables restart。
3、重啟redis服務
相關推薦
- 2022-07-20 關于numpy強制類型轉換的問題_python
- 2022-04-22 git push時出現403,443
- 2022-09-10 python實現整數序列求和_python
- 2023-03-21 C++中如何將operator==定義為類的成員函數_C 語言
- 2022-06-07 python中字符串String及其常見操作指南(方法、函數)_python
- 2022-07-30 RocketMQ消息過濾是如何實現的?
- 2021-11-02 Linux環境下生成openssl證書注意細節介紹_Linux
- 2023-05-13 python中數字列表轉化為數字字符串的實例代碼_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支