国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何使用Nginx在AWS上部署React?

譯文
開發 前端
本文將幫你實現在生產環境上部署React應用程序。這次將使用Docker和Nginx來保護API密鑰和代理請求,以防止跨域資源共享(CORS)違規。

【51CTO.com快譯】在每個項目的生命周期中,都需要在生產環境上發布新功能,即使新版本更新并不那么明顯。

?[[390531]]?

大多數Web應用程序都使用某些API來完成更新,但是它們通常托管在不同的服務器上。這種情況下,作為開發人員就需要解決跨源資源共享(CORS)問題。所以通常的做法是建立一個后端。

不過,優秀的開發人員應該保持應用程序的簡單性,并去除所有多余的部分。在本文中,我將展示如何準備React應用程序,以便將它們部署到生產環境中。

我可以做一個微不足道的React示例應用,但它的幫助意義不是很大。因此,我決定將我的應用程序與聯邦儲備銀行提供的一個API連接。API需要一個訪問鍵來檢索數據,并且端點受到了跨域請求的保護,所以沒有外部web應用程序能夠直接使用數據。

這里需要注意的是,如果您的應用程序依賴服務器端呈現,那本次教程并不是正確的部署策略,雖然你可以得到一些思路上的啟發,但仍需要后端的支持。

前提條件

在按照本文操作之前,掌握一些創建React應用程序和Docker的基本知識是至關重要的。

React APP 示例

我用create-react-app創建了一個簡單的網絡應用程序。該應用程序唯一的功能是顯示一個代表美國GDP的折線圖。

該應用程序僅從以下API獲取數據:

https://api.stlouisfed.org/fred/series/observations?series_id=GDPCA&frequency=a&observation_start=1999-04-15&observation_end=2021-01-01&file_type=json&api_key=abcdefghijklmnopqrstuvwxyz123456

參數:

  • series_id:序列ID。GDPCA代表“實際GDP”。
  • frequency:數據匯總,a代表年度。
  • observation_start:觀察期的開始。
  • observation_end:觀察期的結束。
  • file_type:數據格式。默認*xml*。
  • api_key:從此API檢索任何數據所需的訪問密鑰。

生活并不總是完美的,API設計也不理想。它要求開發人員將訪問鍵和預期的數據輸出作為URL參數傳遞。將輸出作為參數傳遞對我們來說不是問題,但泄漏API密鑰的風險卻是個問題。

即使拋開密鑰泄漏的風險,在跨域請求保護下從外部調用FRED API,也會收到錯誤。

許多開發人員會建議構建中間件(后端)來代理API請求并過濾敏感數據。在某種程度上,這是一個有效的方法。但我更喜歡以一種更YAGNI的方式構建我的應用程序,不過,我們本次的示例將不需要構建。

讓我們使用Nginx

我是NGINX的忠實擁護者,因為它帶來了簡單性。Nginx擁有準備生產級Web服務器所需的全部功能,比如HTTP2、壓縮、TLS和許多其他的。最重要的是,我們可以通過定義幾行配置來實現。像下面的代碼片段:

...

http {
...

server {
...

location /api {
set $args $args&&file_type=json&api_key=abcdefghijklmnopqrstuvwxyz123456;
proxy_pass https://api.stlouisfed.org/fred/series;
}
}
}

上面這4行是我隱藏API鍵和抑制CORS錯誤所需要的全部關鍵代碼。也就是從現在開始,所有對API的HTTP請求都將被代理到FRED api,而且只有我們的應用程序才能使用該API。所有外部請求都將面臨CORS錯誤。

這就是我們的端點的樣子:

/api/observations?series_id=GDPCA&frequency=a&observation_start=1999-04-15&observation_end=2021-01-01

我們既不需要傳遞api_key參數也不需要傳遞file_type參數來檢索數據。也沒有人可以從URL中讀取訪問密鑰,因為它是安全的。

Docker喜歡Nginx

在云中運行NGINX最方便的方法就是使用Docker。

接下來我們只需要創建一個包含以下內容的Dockerfile:

FROM nginx

COPY container /
COPY build /usr/share/nginx/html

現在,只需要三個步驟就可以運行FRED APP:

  • 構建React應用程序。這個過程生成包含靜態文件的build/目錄。
  • 構建Docker映像。將創建一個可運行的Docker映像。
  • 發布Docker鏡像到某個存儲庫或在本地機器上運行它。

接下來,讓我們嘗試在我們的機器上運行它。

$ yarn install
$ yarn build
$ docker build -t msokola/fred-app:latest .
$ docker run -p 8081:80 -it msokola/fred-app:latest

8081是一個端口號。這意味著該應用程序將在以下URL: http://localhost:8081下可用。

在瀏覽器中打開這個URL后,你應該會在終端中看到這樣的日志:

0.0.0.1 - - [11/Mar/2021:18:57:50 +0000] "GET / HTTP/1.1" 200 1556 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36" "-"
...
0.0.0.1 - - [11/Mar/2021:18:57:51 +0000] "GET /api/observations?series_id=GDPCA&frequency=a&observation_start=1999-04-15&observation_end=2021-01-01 HTTP/1.1" 200 404 "http://localhost:8081/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_2_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36" "-"

請注意日志中的兩個200,因為它們代表HTTP狀態OK。如果你在API請求旁邊看到的是一個400,這意味著你的API密鑰有問題。

總結

如果你的項目還沒開始,那你可能還沒部署過APP。但未雨綢繆是件好事,因為遲早有一天你會用到的。

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】


責任編輯:黃顯東 來源: hackernoon.com
相關推薦

2020-10-26 07:40:17

Terraform

2023-02-07 16:36:34

機器學習Docker無服務器

2015-01-06 09:41:25

AWS數據庫部署數據庫監控

2014-07-28 10:13:59

AWS部署APIEC2

2012-05-24 09:15:45

ibmdw

2009-06-01 11:23:08

Glassfish部署Glassfish

2013-07-26 11:28:08

Git

2021-12-21 21:00:23

Ansible樹莓派語音助手

2024-07-16 09:41:01

2012-05-07 08:33:20

dotcloudDjango

2023-09-11 09:35:20

Docker程序

2015-10-10 15:56:22

OpenShiftNodeJS部署PaaS

2015-10-23 17:29:24

AtomicOpenStack 應用部署

2024-07-22 15:49:07

KubernetesRedis

2021-03-17 10:05:42

KubernetesRedis數據庫

2011-12-23 09:28:41

Redmine

2010-08-10 11:04:19

部署SCOMWindows Ser

2021-05-17 14:51:23

鏈碼區塊鏈網絡

2021-06-24 14:45:33

AWS 應用程序NGINX

2011-10-24 14:22:05

點贊
收藏

51CTO技術棧公眾號

欧美性xxxx69| 国产一区二区三区久久悠悠色av| 91九色蝌蚪成人| 国产精品自在在线| 黄页网站在线播放| 日韩hd视频在线观看| 久久99国产成人小视频| 一区不卡视频| 黄色成人在线免费| 久久婷婷五月综合色丁香| 999在线观看免费大全电视剧| 国产69精品久久久久毛片| 一级视频在线观看| 日韩中文在线中文网三级| 激情欧美国产欧美| 男操女免费网站| 亚洲精品国产综合久久| 欧美成人午夜| wwwav91| 日韩一区二区在线视频| 久久aⅴ国产紧身牛仔裤| 麻豆av观看| 久久精品视频亚洲| 日本aⅴ免费视频一区二区三区| 一二三四中文在线| 色系列之999| 日韩成人免费在线| 日韩a级作爱片一二三区免费观看| 日韩中文在线视频| 免费人成在线不卡| 五月香视频在线观看| 日韩美女福利视频| 91看片淫黄大片一级| 色是在线视频| 欧美午夜精品久久久久免费视 | 亚洲第一区第二区| 午夜视频精品| 天天影视色香欲综合| 欧美激情第6页| 久久综合九色综合97_久久久| 筱崎爱全乳无删减在线观看| 国产一区视频观看| 欧美日韩国产在线看| 亚洲国产精品嫩草影院久久av| 国产视频九色蝌蚪| 这里只有精品视频| 成人激情av网| a成人v在线| 欧美国产日韩激情| 中文字幕最新精品| 99久久精品免费| 福利视频亚洲| 男人添女人荫蒂免费视频| 日韩乱码在线视频| 久久超碰97人人做人人爱| av在线免费播放| 美日韩免费视频| 欧美一区二区三区四区久久| 久久久夜夜夜| 九色porny自拍视频在线播放| 五月天丁香综合久久国产| 日韩一区二区免费视频| 性色av一区二区怡红| dy888亚洲精品一区二区三区| 精品日本一区二区三区在线观看| 欧美日韩不卡在线| 久久精品欧洲| 国产欧洲在线| 欧美大黑帍在线播放| 日韩在线视频国产| 久久看人人爽人人| 人体久久天天| 免费一级淫片| 国产福利久久精品| 日韩视频免费直播| 黑人巨大精品欧美一区| 777午夜精品电影免费看| 青青在线视频免费| 国产精品久久久久一区二区| 一本色道**综合亚洲精品蜜桃冫| 亚洲美女视频在线免费观看| 久久av色综合| 亚洲午夜精品久久久久久人妖| 欧美黑人xxx| 一区二区三区四区高清精品免费观看| 久久综合亚洲| 二区三区在线| 亚洲天堂第一区| 欧美激情伊人电影| 五月婷婷久久丁香| 日韩电影免费在线| 日本精品视频| 四虎精品成人免费网站| 日产精品高清视频免费| 在线播放日韩专区| 亚洲黄色小视频| 免费精品视频| 日韩黄色av| av在线1区2区| 久久久亚洲国产精品| 国产精品福利无圣光在线一区| 欧美视频在线观看一区| 国产精品1024久久| 色88888久久久久久影院| av网站大全在线观看| 日韩最新中文字幕| 91国自产精品中文字幕亚洲| 欧美探花视频资源| 国产凹凸在线观看一区二区| 欧美禁忌电影| 国精产品一区一区三区mba下载| 免费高清在线观看免费| 亚洲在线视频福利| 在线成人激情视频| 色综合久久久久综合体| 成人小视频在线观看| 天堂网在线观看国产精品| 香蕉成人av| 九一在线视频| 日韩a在线播放| 久久久久se| 97视频色精品| 精品毛片乱码1区2区3区| 亚洲男人的天堂av| 日本午夜精品视频在线观看 | 欧洲乱码伦视频免费| wwww在线观看免费视频| 国语对白在线视频| 亚洲精品tv久久久久久久久| 97香蕉超级碰碰久久免费的优势| 欧美高清性hdvideosex| 国产精品久久久久影院| 日韩av电影天堂| 欧美一站二站| 91精品亚洲一区在线观看| 国产在线激情| 最新av电影| 能在线观看的av| 日韩精品第一页| 国产精品久久久久久超碰| 亚洲欧美日韩精品久久亚洲区| 婷婷综合另类小说色区| 久久综合九色综合97婷婷女人 | 亚洲在线观看免费| 狠狠久久亚洲欧美| 欧美成人精品一区二区三区在线看| 成人免费网站视频| 国产午夜在线视频| 91国内精品在线视频| 欧美一级视频在线播放| 狠狠色综合色区| 国产aaa精品| 欧美成人免费网| 精品国产免费人成电影在线观看四季| 亚洲第一狼人社区| 中文无字幕一区二区三区| 国产凹凸在线观看一区二区 | 亚洲这里只有精品| 美女黄色片网站| 精品免费日产一区一区三区免费| 日韩美女视频在线观看| 久久久国产一区二区| 亚洲成人网久久久| 在线看一区二区| 亚洲女性喷水在线观看一区| 99久久婷婷国产综合精品 | 日本高清中文字幕| 国产日产欧美视频| 日日噜噜夜夜狠狠久久丁香五月| 国产精品夜夜夜一区二区三区尤| 97色在线观看| 欧美国产中文字幕| 久久久av免费| 国产一区二区三区在线观看网站| 欧美日本韩国一区| 福利二区91精品bt7086| 亚洲自拍欧美精品| 亚洲精品国产精品乱码不99| 国产精品免费久久久久| 国产亚洲人成网站| 久久网站热最新地址| 久久综合久久久久88| 久久久久国产一区二区三区四区| av电影在线观看完整版一区二区| 国产精品88av| 国产福利一区在线观看| 国产一区二区女| 国产精品中文有码| 国产成人午夜精品影院观看视频 | 一级片在线视频| 桥本有菜亚洲精品av在线| 丝袜国产免费观看| 人成在线视频| 美女网站在线观看| 在线观看黄色小视频| 你懂得网站在线| 乱人伦中文视频在线| 日韩三级电影视频| 日本韩国欧美| 欧洲大片精品免费永久看nba|