久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

怎么用Nginx設(shè)置密碼來保護(hù)以太坊JSON-RPC的API

這篇文章主要介紹“怎么用Nginx設(shè)置密碼來保護(hù)以太坊JSON-RPC的API”,在日常操作中,相信很多人在怎么用Nginx設(shè)置密碼來保護(hù)以太坊JSON-RPC的API問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Nginx設(shè)置密碼來保護(hù)以太坊JSON-RPC的API”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

成都創(chuàng)新互聯(lián)專注于仁化企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開發(fā)。仁化網(wǎng)站建設(shè)公司,為仁化等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)

Go Ethereum(geth)是以太坊節(jié)點(diǎn)最受歡迎的軟件。其他流行的以太坊實(shí)現(xiàn)是Parity和cpp-ethereum等。分布式應(yīng)用程序(Dapps)是JavaScript編碼的網(wǎng)頁,通過JSON-RPC API協(xié)議連接到任何這些以太坊節(jié)點(diǎn)軟件,該協(xié)議是在HTTP協(xié)議之上自行運(yùn)行的。

geth或沒有節(jié)點(diǎn)軟件本身不提供安全網(wǎng)絡(luò)。將Ethereum JSON-RPC API暴露給公共Internet是不安全的,因?yàn)榧词菇盟接蠥PI,這也會(huì)為瑣碎的拒絕服務(wù)攻擊打開一扇門。節(jié)點(diǎn)軟件本身不需要提供安全的網(wǎng)絡(luò)原語,因?yàn)檫@種內(nèi)置功能會(huì)增加復(fù)雜性并為關(guān)鍵區(qū)塊鏈節(jié)點(diǎn)軟件增加攻擊面。

Dapps本身是純客戶端HTML和JavaScript,不需要任何服務(wù)器,它們可以在任何Web瀏覽器中運(yùn)行,包括移動(dòng)和嵌入式瀏覽器,如Mist錢包內(nèi)的一個(gè)。

使用Nginx代理作為HTTP基本身份驗(yàn)證器

有幾種方法可以保護(hù)對HTTP API的訪問。最常見的方法包括HTTP頭中的API令牌,基于cookie的身份驗(yàn)證或HTTP基本訪問身份驗(yàn)證。

HTTP基本身份驗(yàn)證是HTTP協(xié)議的一個(gè)非常古老的功能,其中Web瀏覽器打開一個(gè)本機(jī)彈出對話框,詢問用戶名和密碼。它本質(zhì)上的保護(hù)是有限的,但非常容易實(shí)現(xiàn),非常適合需要為有限的互聯(lián)網(wǎng)受眾暴露私有Dapp的用例。這些用例包括顯示Dapp演示,私有和許可的區(qū)塊鏈應(yīng)用程序或?qū)⒁蕴还δ茏鳛檐浖捶?wù)解決方案的一部分。

Nginx

Nginx是最受歡迎的開源Web服務(wù)器應(yīng)用程序之一。我們將展示如何設(shè)置Nginx Web服務(wù)器,以便它使用HTTP Basic Auth私下為你的Dapp(HTML文件)和geth JSON-RPC API提供服務(wù)。

我們假設(shè)Ubuntu 14.04更新的Linux服務(wù)器。文件位置可能取決于使用的Linux發(fā)行版。

安裝Nginx

在Ubuntu Linux 14.04或更高版本上安裝Nginx:

sudo apt install nginx apache2-utils

配置Nginx

我們假設(shè)我們編輯默認(rèn)的網(wǎng)站配置文件/etc/nginx/sites-enabled/default。我們使用proxy_pass指令與在localhost:8545中運(yùn)行的geth進(jìn)行通信:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    server_name demo.example.com;


    # Geth proxy that password protects the public Internet endpoint
    location /eth {
        auth_basic "Restricted access to this site";
        auth_basic_user_file /etc/nginx/protected.htpasswd;

        # Proxy to geth note that is bind to localhost port                        
        proxy_pass http://localhost:8545;            
    }

    # Server DApp static files
    location / {
        root /usr/share/nginx/html;
        index index.html

        auth_basic "Restricted access to this site";
        auth_basic_user_file /etc/nginx/protected.htpasswd;
    }       
}

使用密碼創(chuàng)建HTTP Basic Auth用戶演示:

sudo htpasswd -c /etc/nginx/protected.htpasswd demo

配置geth

開始使用geth守護(hù)進(jìn)程的最簡單方法是在UNIX screen中運(yùn)行它:

screen

geth  # Your command line parameters here

退出screen 使用CTRL+A, D。

請參閱geth private testnet說明

配置Dapp

在你的Dapp中,使web3.js使用/eth端點(diǎn):

  function getRPCURL() {

    // ES2016 
    if(window.location.href.includes("demo.nordledger.com")) {      
      // Password protected geth deployment
      return "http://demo.nordledger.com/eth"

    } else {
        // Localhost development
      return "http://localhost:8545";  
    }
  }

  // ...

  web3.setProvider(new web3.providers.HttpProvider(getRPCURL()));

部署Dapp

將DApp文件復(fù)制到服務(wù)器上的/usr/share/nginx/html。這包括index.html以及相關(guān)的JavaScript和CSS資源。

Bonus - 部署shell腳本示例:

#!/bin/bash
#
# A simple static HTML + JS deployment script that handles Nginx www-data user correclty.
# Works e.g. Ubuntu Linux Azure and Amazon EC2 Ubuntu server out of the box.
#

set -e
set -u

# The remote server we are copying the files using ssh + public key authentication.
# Specify this in .ssh/config
REMOTE="nordledger-demo"

# Build dist folder using webpack
npm run build

# Copy local dist folder to the remote server Nginx folder over sudoed
# Assum the default user specified in .ssh/config has passwordless sudo
# https://crashingdaily.wordpress.com/2007/06/29/rsync-and-sudo-over-ssh/
rsync -a -e "ssh" --rsync-path="sudo rsync" dist/* --chown www-data:www-data $REMOTE:/usr/share/nginx/html/

重啟Nginx

為Nginx做一次硬重啟:

service nginx stop service nginx start

測試并迭代

訪問網(wǎng)站,看看您的Dapp是否連接到代理的Geth。

檢查/var/log/nginx/error.log以獲取詳細(xì)信息。

如果從/eth端點(diǎn)獲得502 Bad Gateway,請確保geth正在作為服務(wù)器上的后臺(tái)進(jìn)程正常運(yùn)行。

到此,關(guān)于“怎么用Nginx設(shè)置密碼來保護(hù)以太坊JSON-RPC的API”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

名稱欄目:怎么用Nginx設(shè)置密碼來保護(hù)以太坊JSON-RPC的API
地址分享:http://sd-ha.com/article0/jjsooo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)網(wǎng)站建設(shè)、網(wǎng)站改版、定制網(wǎng)站外貿(mào)建站、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)