二、netcore跨平台之 Linux部署nginx代理webapi

上一章,我們講了在linux上安裝netcore環境,以及讓netcore在linux上運行。

這一章我們開始講在linux上配置nginx,以及讓nginx反向代理我們的webapi。

什麼nginx???

Nginx(“engine x”)是一款是由俄羅斯的程序設計師Igor Sysoev所開發高性能的 Web和 反向代理 服務器,也是一個 IMAP/POP3/SMTP 代理服務器。

在高連接併發的情況下,Nginx是Apache服務器不錯的替代品,而且現在越來越多的公司都開始用nginx,學習nginx是程序員必不可少的一部分。

 

現實用xshell登錄到我們的linux系統中。

輸入如下命令

安裝編譯工具和對應的庫文件,輸入下面的命令,回車即可

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

如下圖示,就表示安裝好了。

 

 

接下來,我們正式安裝Nginx,我們這次選擇安裝1.6.2版本。

(1)下載nginx,輸入下面命令,回車即可。

wget http://nginx.org/download/nginx-1.6.2.tar.gz

nginx比較小,下載起來還是蠻快的,如下圖所示,表示下載完成。

 

 

 

 (2)解壓nginx壓縮包

tar zxvf nginx-1.6.2.tar.gz

(3)進入到nginx目錄中

cd nginx-1.6.2

(4)編譯和安裝,分別執行下面的命令

./configure --prefix=/usr/local/nginx
make

 

 

 (5)查看版本

/usr/local/nginx/sbin/nginx -v

看到下面這個表示成功了

(6)啟動nginx

 

/usr/local/nginx/sbin/nginx

然後在你的電腦上用瀏覽器訪問即可

注意這裏的默認監聽端口是80,所以輸入ip加上80端口即可

出現如下這種視圖就表示成功了。

 

 

 

 

接下來就是很關鍵的配置了,其實安裝還是很簡單的。

 進入到你的nginx的安裝目錄下

分別輸入如下命令,即可查看到您的配置信息

cd  /usr/local/nginx/conf
ll

 

編輯您的nginx.conf文件,我這裏用vim進行編輯

vim nginx.conf

出現如圖所示:

 我們主要看如下圖所示紅色標記的部分

 

 

listen:表示當前的代理服務器監聽的端口,默認的是監聽80端口。注意,如果配置了多個server,這個listen要配置不一樣。

server_name:表示監聽到之後需要轉到哪裡去,這時我們直接轉到本地,這時是直接到nginx文件夾內。

location:表示匹配的路徑,這時配置了/表示所有請求都被匹配到這裏

root:裏面配置了root這時表示當匹配這個請求的路徑時,將會在這個文件夾內尋找相應的文件,這裏對我們之後的靜態文件伺服很有用。

index:當沒有指定主頁時,默認會選擇這個指定的文件,它可以有多個,並按順序來加載,如果第一個不存在,則找第二個,依此類推。

然後我們把上面的location進行了修改

用鍵盤的上下左右鍵把光標移動到如下位置

 

然後輸入鍵盤的 i(鍵盤的字母i)進入到編輯模式(這裡是給不懂linux說的,懂得人請無視)

然後用鍵盤的退回 ←把這裏的都刪除

 

 然後在輸入  proxy_pass http://localhost:6666;(這裏接上一章已經配置好的netcore webapi)

 

 

 然後點擊鍵盤的ESC退出編輯狀態

然後輸入:wq退出並保存

:wq

 

 這樣就保存配置結束了,conf配置其實很複雜,網上有很多根據不同需求進行的配置

大家有興趣可以去看看,我這裏只說入門的部分,額,其實入門都算不上,能用就行,哈哈哈

最後執行下面兩個命令

這裡是檢查配置

/usr/local/nginx/sbin/nginx -t

 

 最後一個就是重啟運行nginx

/usr/local/nginx/sbin/nginx -s reload

 

 

哦,最後我們看看效果,額

這裏一定不要忘記啟動我的netcore程序了

輸入命令進入到我們的項目中

cd /root/netcore/

然後輸入啟動程序的命令

dotnet WebApiTest.dll

如下圖所示,就表示啟動成功了

 

 

 

 然後,我們用測試工具測試一下我們的接口

如圖所示,我們把以前的6666接口換成了80端口,這裏還是訪問成功了,這就表示我們的nginx代理成功了

 

 

 

 

 

到這裏就基本結束了,不過大家一定有個奇怪的地方每次啟動netcore,每次關了你的xshell后就不能訪問了,

這裏建議使用下面的命令,使之成為後台進程即可

nohup dotnet  WebApiTest.dll  &

over !!!!!!!!!!!!!!!!!!!!!!!!

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

大陸寄台灣空運注意事項

大陸海運台灣交貨時間多久?

※避免吃悶虧無故遭抬價!台中搬家公司免費估價,有契約讓您安心有保障!

Spring框架學習筆記(7)——Spring Boot 實現上傳和下載

最近忙着都沒時間寫博客了,做了個項目,實現了下載功能,沒用到上傳,寫這篇文章也是順便參考學習了如何實現上傳,上傳和下載做一篇筆記吧

下載

主要有下面的兩種方式:

  • 通過ResponseEntity 實現
  • 通過寫HttpServletResponse的OutputStream實現

我只測試了ResponseEntity<InputStreamResource>這種方法可行,另外一種方法請各位搜索資料。

我們在controller層中,讓某個方法返回ResponseEntity,之後,用戶打開這個url,就會直接開始下載文件

這裏,封裝了一個方法export,負責把File對象轉為ResponseEntity

public ResponseEntity<FileSystemResource> export(File file) {
    if (file == null) {
        return null;
    }
    HttpHeaders headers = new HttpHeaders();
    headers.add("Cache-Control", "no-cache, no-store, must-revalidate");
    headers.add("Content-Disposition", "attachment; filename=" + System.currentTimeMillis() + ".xls");//以時間命名文件,防止出現文件存在的情況,根據實際情況修改,我這裡是返回一個xls文件
    headers.add("Pragma", "no-cache");
    headers.add("Expires", "0");
    headers.add("Last-Modified", new Date().toString());
    headers.add("ETag", String.valueOf(System.currentTimeMillis()));

    return ResponseEntity
            .ok()
            .headers(headers)
            .contentLength(file.length())
            .contentType(MediaType.parseMediaType("application/octet-stream"))
            .body(new FileSystemResource(file));
}

Controller

@RequestMapping("download")
public ResponseEntity<FileSystemResource> downloadFile() {
    return export(new FIle());//這裏返回調用export的結果
}

上傳

1.配置

spring boot使用上傳功能,得先進行配置,spring boot配置方式有兩種,一種是資源文件properties配置,另外一種方式則是yml配置

properties配置:

## MULTIPART (MultipartProperties)
# 開啟 multipart 上傳功能
spring.servlet.multipart.enabled=true
# 文件寫入磁盤的閾值
spring.servlet.multipart.file-size-threshold=2KB
# 最大文件大小
spring.servlet.multipart.max-file-size=200MB
# 最大請求大小
spring.servlet.multipart.max-request-size=215MB

yml配置:

spring:
    servlet:
        multipart:
          enabled: true # 開啟 multipart 上傳功能
          max-file-size: 200MB # 最大文件大小
          max-request-size: 215MB # 最大文件請求大小
          file-size-threshold: 2KB # 文件寫入磁盤的閾值

2.編寫url請求

controller

@PostMapping("/upload")
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file) {
    if (file.isEmpty()) {
        return "上傳失敗,請選擇文件";
    }

    String fileName = file.getOriginalFilename();
    String filePath = "/Users/itinypocket/workspace/temp/";//文件上傳到服務器的路徑,根據實際情況修改
    File dest = new File(filePath + fileName);
    try {
        file.transferTo(dest);
        LOGGER.info("上傳成功");
        return "上傳成功";
    } catch (IOException e) {
        LOGGER.error(e.toString(), e);
    }
    return "上傳失敗!";
}

3.Web頁面上傳文件

注意,input標籤的name與url的請求參數名相同,上傳只能使用post請求
單個文件上傳:

<form method="post" action="/upload" enctype="multipart/form-data">
    <input type="file" name="file"><br>
    <input type="submit" value="提交">
</form>

多個文件上傳:

input標籤加上multiple屬性,即可一次選擇多個文件

<form method="post"  action="/upload" enctype="multipart/form-data">
    <input type="file" multiple name="file"><br>
    <input type="submit" value="提交">
</form>

4.Android端上傳文件

使用okhttp上傳文件

RequestBody filebody = RequestBody.create(MediaType.parse("application/octet-stream"), file);
RequestBody body = new MultipartBody.Builder()
        .addFormDataPart("file", file.getName(), filebody)
        .build();
Request request = new Request.Builder()
        .url("http://192.168.1.106:8080/webapp/fileUploadPage")
        .post(body)
        .build();

Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
        Log.e(TAG, "請求失敗:" + e.getMessage());
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        Log.e(TAG, "請求成功!");
    }
});

參考鏈接:

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※專營大陸空運台灣貨物推薦

台灣空運大陸一條龍服務

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

彰化搬家費用,南投搬家費用,距離,噸數怎麼算?達人教你簡易估價知識!

遏制空污 新德里裝空污預警系統

摘錄自2018年10月2日中央社新德里報導

印度新德里空氣污染嚴重程度經常位居世界前幾名,新德里高層官員表示,2018年在進入空污嚴重的冬天前,空污預警系統即將啟用,預計在10月底或11月初安裝,可預測兩天後的空氣品質,以提前遏制空污。

空污系統安裝好後,將從印度中央污染控制局(Central Pollution Control Board,CPCB)、德里污染控制委員會(Delhi Pollution Control Committee)和空氣品質及天氣預測與研究系統機構(System of Air Quality & Weather Forecasting and Research,SAFAR)旗下的36個空氣品質監測站獲得數據,同時從美國國家航空暨太空總署(NASA)衛星獲取即時氣候資料,綜合研判後,對空氣品質進行預測。

協助這項預警系統設置的印度熱帶研究所普恩分所(Indian Institute of Tropical Meteorology-Pune)科學家谷德表示,系統安裝後的第一年,僅空污濃度指標PM2.5(細懸浮微粒)數據被輸入系統,未來幾年將把PM10、二氧化硫(SO2)、二氧化氮(NO2)濃度等數據都納入系統,使空污預測更加準確。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業 缺乏曝光? 下一步”網站設計“幫您第一時間規劃公司的門面形象

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

※試算大陸海運運費!

老舊柴油車釀空污 德國將提因應計畫

摘錄自2018年10月2日中央社柏林報導

德國政府2日將針對車齡較老、污染較嚴重的柴油車的未來發展方向,向數以百萬計車主提出妥協方案,而汽車製造商可能因為廢氣排放造假醜聞引發危機,而面臨嚴苛責罰。

德國總理梅克爾(Angela Merkel)和主要部門首長商議至1日深夜後,她領導的保守派基民/基社聯盟(CDU/CSU)和中間偏左執政聯盟夥伴社會民主黨(SPD)公布了「潔淨空氣和確保我國都市機動性的概念」。這起柴油高峰會目的在於清除都市空汙,同時避免車主支出額外費用。

漢堡(Hamburg)和斯圖加特(Stuttgart)等主要城市的某些地區不歡迎老舊柴油車,法院也逐漸對其他地區祭出禁令。交通部長舒爾(Andreas Scheuer)在會議開始前告訴德新社(DPA),最重要的是,「我們希望避免進一步祭出駕駛禁令」。不過,汽車製造商可能面臨嚴峻懲罰,環境部長舒爾茨(Svenja Schulze)強調,是「汽車業把我們捲進麻煩中,應該為此付出代價」。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想要讓你的商品成為最夯、最多人討論的話題?網頁設計公司讓你強力曝光

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

※專營大陸快遞台灣服務

台灣快遞大陸的貨運公司有哪些呢?

多氯聯苯傳給下一代 半數的虎鯨將在50年後死亡

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

USB CONNECTOR掌控什麼技術要點? 帶您認識其相關發展及效能

※評比前十大台北網頁設計台北網站設計公司知名案例作品心得分享

※智慧手機時代的來臨,RWD網頁設計已成為網頁設計推薦首選

台灣海運大陸貨務運送流程

兩岸物流進出口一站式服務

佛羅倫斯颶風橫掃美國,可再生能源設備受創如何?

摘錄自2018年10月2日科技新報報導

美國2018年9月遭佛羅倫斯颶風侵襲,災情慘重,許多人擔心可再生能源基礎建設是否能夠抵擋這樣的天災侵襲?美國各大電力公司正在全面盤點受損情況,目前看來,可再生能源在許多防備天災的安全技術下,大體上通過考驗。

事實上,過去幾次美國重要風災已經證明太陽能設備抵擋風災的能力,不論是德州的哈維風災或是夏威夷風災,若房屋本身結構沒有問題,太陽能板也都能挺過颶風的肆虐。

因此,極端氣候的颶風接連來襲,並未讓美國住宅太陽能安裝打退堂鼓,反倒是颶風後集中式大電網因為輸配電設備與線路損壞,使得美國人更重視分散式能源,颶風連續來襲使得加裝能源儲存系統的用戶比例大增。在加州,住宅太陽能安裝商彼得生狄恩(PetersenDean)近 6 個月的客戶選擇安裝能源儲存的比例高達一半。佛羅倫斯颶風過後,南北卡羅萊納州安裝商也接到許多用戶希望安裝能源儲存系統的要求。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

台北網頁設計公司這麼多,該如何挑選?? 網頁設計報價省錢懶人包”嚨底家”

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

小三通海運與一般國際貿易有何不同?

小三通快遞通關作業有哪些?

全球首例 德氫動力火車上路零碳排

摘錄自2018年10月2日公視報導

全球第一列標榜零排放的氫動力火車,日前在德國正式上路。它所使用的燃料電池,把氫氣和氧氣結合產生電力,目前時速可達140公里。這是德國逐步淘汰柴油動力火車的重要里程碑,歐洲其他國家也紛紛表達高度興趣。

披著亮藍色外衣,造型簡單大方的火車,緩緩駛進德國北部的布雷默沃德車站,它就是全球第一列氫動力列車,由法國鐵路製造商阿爾斯通負責打造。

阿爾斯通經理施朗克說:「這部列車是(全球)第一列完全零碳排,而且車頂沒有電纜線的火車,它是電動車。」

催生氫動力火車的阿爾斯通計畫在2021年之前,在德國下薩克森邦再推出14列同款列車,德國其他城市和地區也可能起而仿效。此外包括英國荷蘭丹麥等國都對零污染,低噪音的氫動力火車表示濃厚興趣。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計

※不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※帶您來看台北網站建置台北網頁設計,各種案例分享

小三通物流營運型態?

※快速運回,大陸空運推薦?

研擬非洲送電到中東 波灣六國還要減少石油依賴

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦更多不同的設計風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,網站設計公司幫您達到更多曝光效益

※自行創業 缺乏曝光? 下一步"網站設計"幫您第一時間規劃公司的門面形象

台灣寄大陸海運貨物規則及重量限制?

大陸寄台灣海運費用試算一覽表

台中搬家,彰化搬家,南投搬家前需注意的眉眉角角,別等搬了再說!

打擊非法交易 緬甸公開銷毀走私象牙虎骨

摘錄自2018年10月4日中央社報導

路透社報導,緬甸當局4日銷毀查獲的數以百計象牙、穿山甲鱗片和其他動物部位,總重量超過1.4公噸,黑市價格達到130萬美元(約新台幣4000萬元),作為政府打擊非法走私野生生物的一環。

緬甸位於全球非法野生生物交易的心臟地帶,大部分走私品銷往中國。緬甸、寮國和泰國的交界地區,就是惡名昭彰的「金三角」(Golden Triangle)。

保育團體「拯救大象」(Save the Elephants)本週提出的報告指出,中國近來推出的象牙交易禁令,幾乎無法阻止緬甸與中國邊界城鎮勐拉(Mong La)的交易「大量成長」。過去3年來,勐拉鎮出售新的象牙產品增加60%。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!!

網頁設計一頭霧水??該從何著手呢? 找到專業技術的網頁設計公司,幫您輕鬆架站!

※想知道最厲害的台北網頁設計公司推薦台中網頁設計公司推薦專業設計師”嚨底家”!!

大陸寄台灣空運注意事項

大陸海運台灣交貨時間多久?

※避免吃悶虧無故遭抬價!台中搬家公司免費估價,有契約讓您安心有保障!

世界最大單轉子潮汐能設備,裝置量突破 2MW 壽命達 25 年

摘錄自2018年10月3日科技新報報導

近日,潮汐能公司 SIMEC Atlantis Energy(SAE) 打造出世界最大、裝置量高達 2MW 的單轉子潮汐能設備 AR2000,該系統使用壽命長達 25 年,每六年進行一次檢查即可。該設備也採用濕式配對(wet-mate)系統,可快速且安全地裝設在重力結構或獨立基座上,一天最多可部署 8 座潮汐能渦輪機,開發商也可將多個渦輪機串起連接,進一步降低海底作業的成本與生態影響。

SAE 的 AR1500 潮汐能設備先前也在英國大放異彩,其中蘇格蘭全球最大的潮汐能發電計畫「MeyGen」便是出自 SAE 之手,目前 AR1500 已於 2017 年第三季末開始運行,未來 AR2000 也會在 MeyGen 發電廠服役。計畫總監 David Taaffe 更預計 2018 年該潮汐發電廠將可生產約 1.9GWh 電力。

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※專營大陸空運台灣貨物推薦

台灣空運大陸一條龍服務

※評比彰化搬家公司費用,南投搬家公司費用收費行情懶人包大公開

彰化搬家費用,南投搬家費用,距離,噸數怎麼算?達人教你簡易估價知識!