安装nginx和nginx-gridfs和mongodb
1.安装依赖包:
[root@mongo_rs1 ~]# yum -y install pcre-devel openssl-devel zlib-devel git gcc gcc-c++
[root@mongo_rs1 zhuyr]# git clone https://github.com/mdirolf/nginx-gridfs.git
[root@mongo_rs1 zhuyr]# cd nginx-gridfs/
[root@mongo_rs1 nginx-gridfs]# git checkout v0.8
[root@mongo_rs1 nginx-gridfs]# git branch
[root@mongo_rs1 nginx-gridfs]# git submodule init
#子模组 'mongo-c-driver' (git://github.com/mongodb/mongo-c-driver.git) 已为路径 'mongo-c-driver' 注册
[root@mongo_rs1 nginx-gridfs]# git submodule update
正克隆到 'mongo-c-driver'...
remote: Counting objects: 101193, done.
remote: Compressing objects: 100% (128/128), done.
remote: Total 101193 (delta 159), reused 195 (delta 127), pack-reused 100938
接收对象中: 100% (101193/101193), 49.45 MiB | 4.55 MiB/s, done.
处理 delta 中: 100% (88309/88309), done.
子模组路径 'mongo-c-driver':检出 '74cc0b8005fbbc84ec4a0003ff80c68f9e9cc7de'
2.安装nginx
[root@mongo_rs1 zhuyr]# wget http://nginx.org/download/nginx-1.7.9.tar.gz
[root@mongo_rs1 zhuyr]# tar -zxvf nginx-1.7.9.tar.gz
[root@mongo_rs1 zhuyr]# cd nginx-1.7.9/
[root@mongo_rs1 nginx-1.7.9]# ./configure --prefix=/usr/local/nginx --with-openssl=/usr/include/openssl --add-module=/zhuyr/nginx-gridfs
[root@mongo_rs1 nginx-1.7.9]# make -j8 && make install -j8
#如果报错
[root@mongo_rs1 nginx-1.7.9]# ./configure --prefix=/usr/local/nginx --with-openssl=/usr/include/openssl --add-module=/zhuyr/nginx-gridfs
#把第3行的-Werror错误去掉
[root@mongo_rs1 nginx-1.7.9]# vi objs/Makefile
[root@mongo_rs1 nginx-1.7.9]# make && make install
3.修改配置文件
[root@mongo_rs1 nginx-1.7.9]# vi /usr/local/nginx/conf/nginx.conf
#添加以下内容 location /girdfstest/ {
gridfs pics
field=filename
type=string;
mongo 127.0.0.1:27017;
}
location /girdfsjava/ {
gridfs pics
field=_id
type=objectid;
mongo 127.0.0.1:27017;
}
#gridfstest:访问地址
#field=filename http://172.16.160.91/girdfstest/后面填写什么?
#type=string; 字符窜
#field=_id
#type=objectid;
#pics:数据库 #mongo 127.0.0.1:10001 #mongo的服务器地址及端口
#启动nginx
[root@mongo_rs1 nginx-1.7.9]# /usr/local/nginx/sbin/nginx
#配置修改后重新加载
[root@mongo_rs1 nginx-1.7.9]# /usr/local/nginx/sbin/nginx -s reload
4.安装mongodb
vi /etc/yum.repos.d/mongodb-org-3.4.repo
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=0
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
$ yum -y install mongodb-org
查看修改配置文件 : vim /etc/mongod.conf
mongodb的配置文件中的bind_ip 默认为127.0.0.1,默认只有本机可以连接。 此时,需要将bind_ip配置为0.0.0.0,表示接受任何IP的连接。
启动mongodb :systemctl start mongod.service
停止mongodb :systemctl stop mongod.service
如果报错:
[root@ansible nginx-1.7.9]# journalctl -xe
7月 11 10:54:03 ansible.test yum[797]: Erased: mongodb-org-3.2.20-1.el7.x86_64
7月 11 10:54:04 ansible.test systemd[1]: Reloading.
7月 11 10:54:04 ansible.test systemd[1]: Configuration file /usr/lib/systemd/system/ebtables.service is marked executable. Ple
7月 11 10:54:04 ansible.test systemd[1]: Configuration file /usr/lib/systemd/system/wpa_supplicant.service is marked executabl
7月 11 10:54:04 ansible.test yum[797]: Erased: mongodb-org-server-3.2.20-1.el7.x86_64
7月 11 10:54:04 ansible.test yum[797]: Erased: mongodb-org-shell-3.2.20-1.el7.x86_64
7月 11 10:54:04 ansible.test yum[797]: Erased: mongodb-org-mongos-3.2.20-1.el7.x86_64
7月 11 10:54:04 ansible.test yum[797]: Erased: mongodb-org-tools-3.2.20-1.el7.x86_64
7月 11 10:59:08 ansible.test systemd[1]: Reloading.
7月 11 10:59:08 ansible.test systemd[1]: Configuration file /usr/lib/systemd/system/ebtables.service is marked executable. Ple
7月 11 10:59:08 ansible.test systemd[1]: Configuration file /usr/lib/systemd/system/wpa_supplicant.service is marked executabl
7月 11 10:59:08 ansible.test yum[928]: Installed: mongodb-org-server-3.2.20-1.el7.x86_64
7月 11 10:59:08 ansible.test yum[928]: Installed: mongodb-org-mongos-3.2.20-1.el7.x86_64
7月 11 10:59:12 ansible.test yum[928]: Installed: mongodb-org-tools-3.2.20-1.el7.x86_64
7月 11 10:59:13 ansible.test yum[928]: Installed: mongodb-org-shell-3.2.20-1.el7.x86_64
7月 11 10:59:13 ansible.test yum[928]: Installed: mongodb-org-3.2.20-1.el7.x86_64
7月 11 10:59:21 ansible.test polkitd[747]: Registered Authentication Agent for unix-process:961:41855579 (system bus name :1.1
7月 11 10:59:21 ansible.test systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
-- Subject: Unit mongod.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit mongod.service has begun starting up.
7月 11 10:59:21 ansible.test mongod[966]: Error starting mongod. /var/run/mongodb/mongod.pid exists.
7月 11 10:59:21 ansible.test systemd[1]: mongod.service: control process exited, code=exited status=1
7月 11 10:59:21 ansible.test systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..
#解决方法:
[root@ansible mongodb]# rm /var/run/mongodb/mongod.pid -f
[root@ansible mongodb]# systemctl start mongod.service
5.使用mongofiles工具
[root@mongo_rs1 tmp]# mongofiles put 1.JPG -d pics -t jpg
2018-07-11T11:34:16.002+0800 connected to: localhost
added file: 1.JPG
[root@mongo_rs1 tmp]# mongofiles list -d pics
2018-07-11T11:34:33.037+0800 connected to: localhost
1.JPG 138424
[root@mongo_rs1 tmp]# mongofiles -d pics get 1.JPG
2018-07-11T13:39:50.775+0800 connected to: localhost
finished writing to 1.JPG
6.http访问:
http://172.16.160.91/girdfstest/1.JPG
7.使用java开发:
package com.neo; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID; import org.bson.types.ObjectId;
import org.junit.Test; import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSBuckets;
import com.mongodb.client.gridfs.GridFSFindIterable;
import com.mongodb.client.gridfs.model.GridFSFile;
import com.mongodb.client.model.Filters; public class TestMongo { String mongoHost = "172.16.160.91";
int mongoPort = 27017;
String dbName = "pics"; public MongoDatabase mongoDatabase() throws Exception {
MongoClient mongoClient = new MongoClient(mongoHost, mongoPort);
return mongoClient.getDatabase(dbName);
} // 上传文件
@Test
public void upload() throws Exception {
// 获取文件流
File file = new File("C:\\tmp\\10.jpg"); // 提前放一个图片
InputStream in = new FileInputStream(file);
// 创建一个容器,传入一个`MongoDatabase`类实例db
GridFSBucket bucket = GridFSBuckets.create(mongoDatabase());
// 上传
ObjectId fileId = bucket.uploadFromStream(UUID.randomUUID().toString(), in);
System.out.println("上传完成。 文件ID:" + fileId);
} /*
* [root@mongo_rs1 tmp]# mongofiles list -d pics
* 2018-07-11T15:05:38.944+0800 connected to: localhost
* f32a465b-6372-400d-b9e9-a10664e2d9a0 6644
* http://172.16.160.91/girdfsjava/5b45b34281dab5d81cca03cb
*/ // 查找文件
@Test
public void findOne() throws Exception {
// 获取文件ID
String objectId = "5b45acdc81dab5fb9039ae3d"; // 根据upload后文件ID修改
// 创建一个容器,传入一个`MongoDatabase`类实例db
GridFSBucket bucket = GridFSBuckets.create(mongoDatabase());
// 获取内容
GridFSFindIterable gridFSFindIterable = bucket.find(Filters.eq("_id", new ObjectId(objectId)));
GridFSFile gridFSFile = gridFSFindIterable.first();
System.out.println("filename: " + gridFSFile.getFilename());
} // 下载文件
@Test
public void download() throws Exception {
// 获取文件ID
String objectId = "5b45acdc81dab5fb9039ae3d";
// 获取文件流,定义存放位置和名称
File file = new File("C:\\tmp\\down\\5b45acdc81dab5fb9039ae3d.jpg"); // 创建一个容器,传入一个`MongoDatabase`类实例db
GridFSBucket bucket = GridFSBuckets.create(mongoDatabase());
// 创建输出流
OutputStream os = new FileOutputStream(file);
// 下载
bucket.downloadToStream(new ObjectId(objectId), os);
System.out.println("下载完成。");
} // 删除文件
@Test
public void delete() throws Exception {
// 获取文件ID
String objectId = "5b45acdc81dab5fb9039ae3d";
// 创建一个容器,传入一个`MongoDatabase`类实例db
GridFSBucket bucket = GridFSBuckets.create(mongoDatabase());
// 删除
bucket.delete(new ObjectId(objectId));
System.out.println("删除完成。");
} // 上传文件
@Test
public void upload2() throws Exception {
// 获取文件流
File file = new File("C:\\tmp\\10.jpg"); // 提前放一个图片
InputStream in = new FileInputStream(file);
// 创建一个容器,传入一个`MongoDatabase`类实例db
GridFSBucket bucket = GridFSBuckets.create(mongoDatabase());
// 上传
ObjectId fileId = bucket.uploadFromStream("10.jpg", in);
System.out.println("上传完成。 文件ID:" + fileId);
} /*
* [root@mongo_rs1 tmp]# mongofiles list -d pics
* 2018-07-11T15:05:38.944+0800 connected to: localhost
* 10.jpg 6644
* http://172.16.160.91/girdfstest/10.jpg
*/ // 查找文件
@Test
public void findOne2() throws Exception {
// 获取文件ID
String filename = "10.jpg"; // 根据upload后文件ID修改
// 创建一个容器,传入一个`MongoDatabase`类实例db
GridFSBucket bucket = GridFSBuckets.create(mongoDatabase());
// 获取内容
GridFSFindIterable gridFSFindIterable = bucket.find(Filters.eq("filename", filename));
GridFSFile gridFSFile = gridFSFindIterable.first();
System.out.println("filename: " + gridFSFile.getFilename());
} // 下载文件
@Test
public void download2() throws Exception {
// 获取文件ID
String filename = "10.jpg";
// 获取文件流,定义存放位置和名称
File file = new File("C:\\tmp\\down\\10.jpg"); // 创建一个容器,传入一个`MongoDatabase`类实例db
GridFSBucket bucket = GridFSBuckets.create(mongoDatabase());
// 创建输出流
OutputStream os = new FileOutputStream(file);
// 下载
bucket.downloadToStreamByName(filename, os);
//bucket.downloadToStream(filename, os);
System.out.println("下载完成。");
} // 删除文件
@Test
public void delete2() throws Exception {
// 获取文件ID
String filename = "10.jpg";
// 创建一个容器,传入一个`MongoDatabase`类实例db
GridFSBucket bucket = GridFSBuckets.create(mongoDatabase()); GridFSFindIterable gridFSFindIterable = bucket.find(Filters.eq("filename", filename));
GridFSFile gridFSFile = gridFSFindIterable.first();
// 删除
bucket.delete(gridFSFile.getObjectId());
//System.out.println("删除完成。");
}
}
8.pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.neo</groupId>
<artifactId>spring-boot-hello</artifactId>
<version>1.0</version>
<packaging>jar</packaging> <name>spring-boot-hello</name>
<description>Demo project for Spring Boot</description> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.2.2</version>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>
安装nginx和nginx-gridfs和mongodb的更多相关文章
- elasticSearch插件的安装以及使用nginx的modles收集nginx的日志
1.首先在windows环境上搭建es的集群 集群的配置如下 #node01的配置: cluster.name: es-itcast-cluster node.name: node01 node.ma ...
- 腾讯云下安装 nodejs + 实现 Nginx 反向代理
本文将介绍如何给腾讯云上的 Ubuntu Server 12.04 LTS 64位主机安装 node 及 nginx,并简单配置反向代理. 笔者在整个安装过程中遇到不少麻烦(不赘述),如果你希望少踩坑 ...
- 苹果下如果安装nginx,给nginx安装markdown第三方插件
用brew install nginx 这样安装的是最新版的nginx, 但是在有些情况下,安装第三方插件需要特定的版本,更高一级的版本可能装不上. 它的原理是下载安装包进行自动安装,建立软链,这样就 ...
- CentOS 7 用户怎样安装 LNMP(Nginx+PHP+MySQL)
关于 Nginx (发音 “engine x”)这是一款免费.开源.高效的 HTTP 服务器,Nginx是以稳定著称,丰富的功能,结构简单,低资源消耗.本教程演示如何在CentOS 6.5服务器(适用 ...
- 烂泥:Windows下安装与配置Nginx web服务器
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 前几篇文章,我们使用nginx都是在linux环境下,今天由于工作的需要.需要在windows环境也使用nginx搭建web服务器. 下面记录下有关ng ...
- centos6服务器YUM安装LNMP(LINUX+NGINX+MYSQL+PHP)
之前都用的lamp,这次配置一个lnmp来看看,试试Nginx是不是好用 关闭SELINUXvi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXT ...
- ubuntu14.04安装与配置nginx服务器
去年曾经配置过nginx服务器,可惜的是,几个月前因故障磁盘被格式化.今天又要用到nginx服务,所以从新配置了一番,但这次就不是那么顺利了.在此,愿与大家分享一下经验.只是简单的局域网应用,并未复杂 ...
- 安装成功的nginx如何添加未编译安装模块
原已经安装好的nginx,现在需要添加一个未被编译安装的模块举例说明:安装第三方的ngx_cache_purge模块(用于清除指定URL的缓存)nginx的模块是需要重新编译nginx,而不是像apa ...
- centos 6.5 安装lnmp(linux+nginx+mysql+php)
参考:http://www.cnblogs.com/AloneSword/archive/2013/03/18/2966750.html (总结并简要) 一安装cmake wget -c http:/ ...
- 安装服务Memcached+Nginx+Php linux下安装
Memcached安装 1. 源码安装libevent(下载地址:http://monkey.org/~provos/libevent/) 2. 源码安装memcached(下载地 ...
随机推荐
- XE7 里面添加自定义View
经过xe4,xe5,xe6 这么几个版本的磨合,易博龙终于在今年9月推出了统一的多平台开发版本-XE7. 经过最近几天的测试,非常不错.如果各位同学在做移动开发,强烈建议使用XE7. 前面几个版本可以 ...
- 2018.09.16 spoj104Highways (矩阵树定理)
传送门 第一次写矩阵树定理. 就是度数矩阵减去邻接矩阵之后得到的基尔霍夫矩阵的余子式的行列式值. 这个可以用高斯消元O(n3)" role="presentation" ...
- 2018.07.23 codeforces 438D. The Child and Sequence(线段树)
传送门 线段树维护区间取模,单点修改,区间求和. 这题老套路了,对一个数来说,每次取模至少让它减少一半,这样每次单点修改对时间复杂度的贡献就是一个log" role="presen ...
- 马婕 2014MBA专硕考试 报刊选读 4 朝鲜战争会爆发吗?(转)
http://blog.sina.com.cn/s/blog_3e66af4601016ela.html War unlikely, but Koreans still on cliff edge 战 ...
- arduino uno r3 + SIM900 + USB打火机 实现电话触发点火
需求来源 1.儿子过完年6岁,喜欢玩烟花,但是胆子小,于是我就负责点火,从年前26到大年初八,每天晚上要给儿子点鞭炮啊点鞭炮. 2.这边过年要打关门炮跟开门炮,大年初一凌晨还要起来帮老妈点鞭炮,说实在 ...
- Linux服务器部署系列之四—DHCP篇
DHCP服务器的配置是Linux服务器配置中最简单的服务之一,网上也有很多相关文档,不过大部分都只是讲解了配置.虽然我这篇文档也不一定很完善,不过我还是希望能够尽量说得明白一些,同时也希望大家能够提供 ...
- mysql操作说明,插入时外键约束,快速删除
快速删除: CMD命令 SET FOREIGN_KEY_CHECKS=0;去除外键约束 truncate table 表名;
- <a href=“#”>
在html中看到这样的属性:<a href=“#”>搜了好久,感觉不甚明白,现记之,等遇到了再做补充. # is called an anchor (or hash...). so the ...
- Oracle实例名,服务名等概念区别与联系
数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...
- cuDNN
https://developer.nvidia.com/developer-program https://developer.nvidia.com/cudnn cuda和cuDNN的关系 http ...