安裝nginx以及nginx-upload-module模塊
- 下載nginx源碼牺汤,添加模塊只支持源碼編譯:
wget http://nginx.org/download/nginx-1.12.2.tar.gz // 解壓 tar zxvf nginx-1.12.2.tar.gz
- 安裝編譯依賴谴分,可以先使用
./configure
查看缺少哪些依賴:
yum -y install pcre-devel openssl openssl-devel
- 下載
nginx-upload-module
:
wget https://github.com/fdintino/nginx-upload-module/archive/2.3.0.tar.gz
// 解壓
tar zxvf 2.3.0.tar.gz
- 準備編譯安裝:
cd nginx-1.12.2
./configure --add-module=../nginx-upload-module-2.3.0/ --prefix=/usr/local/nginx
make
make install
- 啟動nginx:
/usr/local/nginx/sbin/nginx
配置nginx胁赢,實現(xiàn)文件上傳功能
因為編譯安裝nginx指定了 --prefix=/usr/local/nginx
,故所有nginx相關配置都在/usr/local/nginx
下面。
這里主要關注三個目錄:
-
/usr/local/nginx/conf
: 存儲nginx相關配置文件; -
/usr/local/nginx/html
: 存放靜態(tài)文件,當然也可以在配置文件中修改; -
/usr/local/nginx/logs
: 日志存放目錄酣衷,有時需要定位一些問題問題時交惯,可以有幫助;
修改/usr/local/nginx/conf/nginx.conf
文件,添加:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
## -------> 新增內容 <-------------------
location /upload {
upload_pass /res_upload;
upload_store /usr/local/nginx/html;
}
location /res_upload {
default_type text/html;
return 200 "success";
}
## <------ 新增內容結束 ------------------->
}
保存席爽,然后重新加載配置:
/usr/local/nginx/sbin/nginx -s reload
然后在 /usr/local/nginx/html
目錄下新增一個 file.html
(名字別用 upload.html 不然會命中 /upload 這個location的規(guī)則意荤,踩坑才跳出來),用于瀏覽器上傳文件使用:
<html>
<head>
<title>Test upload</title>
</head>
<body>
<h2>Select files to upload</h2>
<form name="upload" method="POST" enctype="multipart/form-data" action="/upload">
<input type="file" name="file"><br>
<button type="submit"> Upload </button>
</form>
</body>
</html>
然后再瀏覽器打開: http://xxxx/file.html
就可以上傳文件了:
文件可以上傳了只锻,但是本想上傳一張圖片玖像,結果卻被保存為一個臨時文件,有點小難過齐饮,還得繼續(xù)解決問題??捐寥;