1. 程式人生 > >上傳檔案伺服器搭建

上傳檔案伺服器搭建

有需求需要搭建一個上傳檔案伺服器,最開始考慮使用Nginx+upload模組,後臺php處理,後來嘗試了一下tomcat+spring方法,都可以滿足需求。

Nginx + upload module

網上的配置文章比較多,這裡只是記錄一下出現的坑吧。

1. nginx加上upload 模組後編譯不過

upload module貌似只支援到nginx 1.3.8,開始使用高版本的nginx老是編譯不過,後來搜到一篇文章,換成低版本的nginx解決了。安的比較久了,好像是ng版本比較新的時候build提示一大堆語法錯誤吧,反正是編譯不過。

2. 臨時路徑的問題

配置裡邊有一項 :upload_store /data/tmpdir 1;
後面如果設定成 1 代表臨時檔案將要雜湊到你設定的目錄中,而且要保證之前這些目錄是存在的,也就是說你需要在/data/tmpdir目錄下建立 0 到9 的9個目錄

,並且要保證有讀寫許可權.(最好先全開吧,先保證執行起來。)

3後臺php拿到傳來的檔案的問題

ng按照文件上的設定在php得到request中得不到傳來的值,後來測試之後這樣使用可以了:
conf:

upload_set_form_field $upload_field_name.name "$upload_file_name";

php:

$filePath = $_POST["file_path"];

客戶端傳參,在php中如果想得到的話,要這樣設定
conf:

upload_pass_args on; 

4 客戶端通過chrome外掛postman模擬測試post請求

這裡寫圖片描述
在body中新增引數,file就是要上傳的檔案,id是自定義引數,在php中接收一下就好了。

5 壓力測試工具

使用Apache 的jmeter工具
這裡寫圖片描述
配置大概是這樣的,可以再Thread Group中設定執行緒數,在summary report中檢視結果,我模擬了100個執行緒10M的檔案很快就傳完了,這個跟網速和伺服器配置有關。

6 未驗證的問題

在網上查了直接設定後沒驗證的問題,關於ng配置中上傳檔案的最大值,和檔案緩衝區大小,我的設定是這樣的
conf:

    client_max_body_size   512m;
    client_body_buffer_size   50m;

php,去php.ini檔案搜size,把有關的大小改一下,還有一個頁面最多請求多久的時間調長些,根據需求吧。

7 dns的問題

運維那邊配的域名和ip貌似出了些問題,導致訪問域名傳檔案很慢,但是ip比較快,一直以為是ng哪的配置除了問題,今天發現ping域名出來的都不是這個ip,後來他們調好了速度快了,真是surprise!所以測試的時候可以都通過ip進行。

通過tomcat + spring部署

嘗試這個方式是因為上面7 的問題始終沒解決,不知道是不是ng哪的限制,所以使用這種方式看看結果,伺服器這邊都不是很熟,所以遇到的問題比較基礎,比較多。
同樣,記錄幾個遇到的坑吧。

1. tomcat配置

java環境的問題,執行./startup.sh後也沒報錯,我以為是啟動成功了,結果訪問不了,檢視$tomcat_home下conf中的日誌發現是jdk找不到

2. 部署位置

我開始按照教程開了一個虛擬目錄,把spring打好包的war檔案放到裡邊然後unzip出來,客戶端訪問老是顯示資原始檔找不到,這個可能是我部署的方式不太對,待驗證,後來直接放到tomcat根目錄webapps中,發現只要把war放進去,在tomcat開啟的時候會自動解壓部署上去的!

3. 部署時執行順序的問題

使用log4j列印日誌,調整專案的時候出現了好幾次日誌打不出來的情況,後來別人說可能是控制代碼的問題,現在還不知道正確的部署順序應該是什麼樣的,不過現在先停掉tomcat,然後把war傳上去,然後再開啟tomcat,日誌能正常列印
spring之前沒用過,這塊對於它的很多細節也不瞭解,現在是能跑通了,這邊只是記錄了一下。

相關推薦

檔案伺服器搭建

有需求需要搭建一個上傳檔案伺服器,最開始考慮使用Nginx+upload模組,後臺php處理,後來嘗試了一下tomcat+spring方法,都可以滿足需求。 Nginx + upload module 網上的配置文章比較多,這裡只是記錄一下出現的坑吧。

淘淘商城第二天—完成商品新增功能 商品類目選擇 圖片 圖片伺服器搭建 kindEditor富文字編輯器的使用 商品新增功能

1、實現商品類目選擇功能 1.1需求 在商品新增頁面,點選“選擇類目”顯示商品類目列表: 請求初始化樹形控制元件的url:/item/cat/list 1.2 EasyUI tree資料結構 資料結構中必須包含: Id:節點id Text:節

第10步 (1)logback.xml日誌配置(2) ftp(檔案)伺服器配置(3) idea注入和自動編譯配置(4)專案提交gitee(5)fe助手和restlet client

****************************************************************************************************************************************** 1.直接複製&

java httpclient 檔案 伺服器 servlet 接收

1、新建一個普通的java專案,然後新建個包和類,程式碼如下: package com.busymonkey; import java.io.File; import java.io.IOException; import org.apache.http

centos7 搭建ftp伺服器 供多使用者檔案

Liunx外部檔案的傳輸,避免不了使用FTP服務,所以現在就整理下,CentOS7環境下,FTP服務的搭建。FTP伺服器需要安裝vsftp服務端軟體。我們知道,在建立vsftpd使用者時,我們一般是在linux下建立使用者useradd的方式來訪問ftp,但有時我們只想提供f

使用springmvc 和nginx 搭建一個檔案下載伺服器

public final class FileUploadUtil { public static JSONObject upload(String httpurl, String fileName, InputStream inputStream) { String result

解決使用FTPClient物件或FtpUtil工具類檔案為空(搭建Nginx圖片伺服器

一、使用FTPClient上傳檔案為空 JAVA使用FTPClient上傳檔案時總是為空,有些資料說防火牆設定問題,但是本機防火牆已設定過。  後來查了下資料,FTP伺服器有被動模式和主動模式。  在JAVA中將FTPClient設定為被動模式即可解決問題。  **FT

CentOS6.5下搭建FTP伺服器 + Java檔案

/** * @Type ftpClientFileManager.java * @Desc * @author 123 * @date 2017年3月31日 下午2:50:58 * @version */ @Service public class FTPFileManager {

ubuntu搭建FTP伺服器 檔案

ftp伺服器的搭建 進入root模式下: 1、檢視是否有vsftp vsftp -version 若有,顯示版本 2、若無,安裝 sudo apt-get install vsftp 3、新建一個資料夾,作為FTP的工作目錄 mk

Day12-微信小程式實戰-交友小程式-搭建伺服器檔案到後端

要搞一個小型的cms內容釋出系統 因為小程式上線之後,直接對資料庫進行操作的話,慧出問題的,所以一般都會做一個管理系統,讓工作人員通過這個管理系統來對這個資料庫進行增刪改查 微信小程式其實給我們提供了這樣的能力了      (也就是可以在自己已有的伺服器來進行雲操作,所以就可以

Qt Http QHttpMultiPart檔案到java http伺服器

                         Qt Http QHttpMultiPart上傳檔案到java http伺服器 1.最近專案用到了Qt上傳檔案到HT

Tomcat配置虛擬路徑,使檔案伺服器及工程檔案分離開

原文連結:https://my.oschina.net/pingdy/blog/381001 摘要: 現在一般的專案都可能會涉及檔案的上傳與下載,那如何管理這些檔案呢?做法各有千秋!今天我也分享下我是怎麼去管理這些檔案的!當然了,這樣的方式只適用於檔案量小的情況下!如果檔案數量非

原生node用fs和http完成檔案伺服器

var http=require("http"); var fs=require("fs"); http.createServer(function(req,res){ res.writeHead(200,{"Content-type":"text/html;charset=UTF-8","

PHP-Websockets 檔案2 優化支援php socket客戶端和websocket連線websocket伺服器 以守護程序方式執行編碼

WebsocketServer: users.php <?php class WebSocketUser { public $socket; public $id; public $headers = array(); public $handsh

ftp檔案伺服器

<?php class Ftp { public $off; // 返回操作狀態(成功/失敗) public $conn_id; // FTP連線 const FTP_HOST=''; const FTP_PORT='21'; const FTP_USER=

ASP.NET檔案到遠端伺服器(HttpWebRequest)

/// <summary> /// 檔案上傳至遠端伺服器 /// </summary> /// <param name="url">遠端服務地址</param> /// <param name="pos

java通過ftp 檔案伺服器

package com.dl.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ja

用FlashFXP檔案到SSH伺服器,附FlashFXP顯示中文亂碼的解決方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

mac檔案到linux伺服器

上傳檔案到伺服器 1.保證伺服器ssh埠是22,重啟服務  ssh -p 27988 [email protected]   (原來埠號為27988) ll  /etc/ssh/sshd_config vi /et

IntelliJ IDEA實現遠端連線linux,並檔案到linux伺服器(SSH會話功能和SFTP功能)

注意: eclipse的SSH會話功能和SFTP功能這裡不會說 點選以下連結可檢視   eclipse的SSH會話功能和SFTP功能 而IntelliJ IDEA(以下簡稱為IDEA)這麼強大的開發工具自然也有該功能,這篇部落格就介紹一下IDEA的SSH會話功能