【背景】
前段时间在做一个项目(该项目为一个工具,需要第三方应用进行集成才可以使用)的时候遇到这样一个需求,工具中有一个上传图片的功能,但是图片需要最终由上层应用来真正的上传并生成相关的访问地址。
【思路】
1.直接通过js调用上层应用的上传功能,弹出文件选择框由上层应用触发,最终由上层应用执行上传并将文件可访问地址返回( 需要考虑js跨域问题)
2.由工具来做图片的上传,在工具所在服务器生成一个临时文件,将这个临时文件的外网访问地址提供出来调用上层应用的接口进行文件流的拉取和上传(需要做临时文件的可访问代理)
当然我们最终选择的方案2来实现,因为我们目前上传的文件只是图片,所以想到了fastdfs图片服务器,但是这样的实现是比较麻烦的,后来听运维同事说直接用nginx做代理就可以访问,于是就向运维同事请教了一番......
【实施】
在运维哪里搞到了安装包和脚本(nginx_mod_h264_streaming-2.2.7.tar.gz、nginx-1.7.8.tar.gz包读者可以自行到nginx官网进行下载)
执行脚本:
- #!/bin/bash yum -y install perl-ExtUtils-Embed yum -y install perl-CPAN yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel tar xf nginx_mod_h264_streaming-2.2.7.tar.gz -C /usr/local/ sed -i '158,161s@^@//@g' /usr/local/nginx_mod_h264_streaming-2.2.7/src/ngx_http_streaming_module.c useradd nginx -s /sbin/nologin tar xvf nginx-1.7.8.tar.gz cd nginx-1.7.8 ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module --with-http_dav_module --with-http_addition_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-http_ssl_module --with-http_perl_module --with-debug --add-module=/usr/local/nginx_mod_h264_streaming-2.2.7 make make install /usr/local/nginx/sbin/nginx -
nginx配置文件的设置:
nginx/conf/nginx.conf配置文件中的修改(www为文件夹位置,需要提前创建): server{ location / { root /www; index index.html index.htm; } }
访问:
可以直接通过:http://ip+端口/文件名称
【总结】
整体弄完,用脚本执行,然后再配置不到五分钟,如果没有这个脚本可能需要十好几分钟吧,效率问题让我深思,在平时做事情的时候也一样,要善于去积累这些能够让自己提高效率的方式方法,只有这样才能有更多的时间和精力去做更多创新的事情,加油~