MongoDB - Cách thiết lập để App Server kết nối đến MongoDb Server

MongoDB - Cách thiết lập để App Server kết nối đến MongoDb Server

Thông thường, chúng ta thường thiết lập để Code và phần Database chung 1 server. Với những ứng dụng lớn để quản lý, chúng ta phải tách riêng biệt chúng trên nhiều server khác nhau.

Bởi vì mặc định MongoDb không cho phép remote connections mà chỉ cho phép kết nối nội bộ. Mình sẽ hướng dẫn cách thiết lập sao cho từ App Server (server chứa code) kết nối được tới MongoDb Server (hoặc cụm MongoDb Server)

Thông tin cấu hình của môi trường test:

1. MongoDB Server

  • Private IP – 192.168.161.100
  • Public IP – 45.56.65.100
  • MongoDB 2.6.3, port 27017
  • IpTables Firewall

2. Application Server (Same LAN network)

  • Private IP – 192.168.161.200
  • Public IP – irrelevant

3. Developers at home (Different LAN network, WAN)

  • Public IP – 10.0.0.1

1. Bind IP

Mở /etc/mongod.conf tìm đến dòng bind_ip

$ vim /etc/mongod.conf

# /etc/mongod.conf

# Listen to local interface only. Comment out to listen on all interfaces.

bind_ip = 127.0.0.1

Mặc định MongoDb chỉ cho phép kết nối từ nội bộ (127.0.0.1), nên nhiệm vụ của bạn là sửa đổi thông tin này, 1 số trường hợp như sau: 

1. listen on all interfaces

Nếu bạn chẳng cần quan tâm cái quái gì là bảo mật, thì xóa dòng bind_ip = 127.0.0.1 đi, hoặc sửa thành bind_ip = 0.0.0.0
# Listen to local interface only.

Comment out to listen on all interfaces. # bind_ip = 127.0.0.1

2. Chỉ cho phép kết nối từ mạng nội bộ (LAN)

$ vim /etc/mongod.conf

# /etc/mongod.conf

# Listen to local and LAN interfaces.

bind_ip = 127.0.0.1,192.168.161.100

Nhớ là đặt IP Private, không phải IP Public của App Server nha 

3. Cho phép kết nối từ bất cứ IP nào

Trường hợp server đặt tại công ty, bạn muốn máy ở nhà kết nối đến để sử dụng. Bạn có thể kết nối đến MongoDb thông qua địa chỉ Public IP 45.56.65.100
$ vim /etc/mongod.conf

# /etc/mongod.conf

# Listen to local, LAN and Public interfaces.

bind_ip = 127.0.0.1,192.168.161.100,45.56.65.100
Mình khuyên là nên sử dụng một mạng riêng ảo VPN để đảm bảo tính bảo mật hơn cách này. 
 
---------------------
Khởi động lại MongoDb để thay đổi có tác dụng: 
$ sudo service mongod restart

[ ok ] Restarting database: mongod.

2. IpTables Firewall

Nếu bạn có đặt tường lửa, hãy thiết lập lại sao cho tường lửa cho phép kết nối thông qua Port của của MongoDb (mặc định là 27017)
 
Ở đây mình sử dụng iptables để thiết lập kết nối đến trên Ubuntu 
 
Cho phép mọi kết nối thông qua cổng 27017
iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
Hoặc, chỉ cho phép kết nối từ 1 IP cụ thể (ở đây là IP của App Server)
iptables -A INPUT -s IP_HERE -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -d IP_HERE -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

iptables -A INPUT -s 192.168.161.200 -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -d 192.168.161.200 -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT 

Xong rồi đấy, chúc thành công :))

Tags: 
Bạn thấy bài viết này như thế nào?: 
Average: 6 (2 votes)
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Điều khiển Mission Control trên Mac bằng bàn phím

Điều khiển Mission Control trên Mac bằng bàn phím

Còn cách nào khác để tiếp xúc với Mission Control ngoài trackpad không?

Bầu Đức tôi đi thăm chuối thăm heo về thì ngủ rất ngon

Bầu Đức - tôi đi thăm chuối thăm heo về thì ngủ rất ngon

Chuối của Tập đoàn Hoàng Anh Gia Lai hiện đang xuất qua Nhật, Hàn, Trung Quốc. Mỗi buồng chuối đều được dán tem có mã code truy xuất nguồn gốc

Đến Từ NAG Ryan McKinnon

[Share Preset] Tone Màu Film Cho Ảnh Sexy Đến Từ NAG Ryan McKinnon

Bao gồm 02 preset với tone màu đậm, đặc biệt phù hợp với ảnh nude, sexy….theo tác giả, đây không phải là preset “bấm phát ăn ngay”

Công ty diệt chuột T&C

 

Diet con trung