作者: Andy Wu

一顆還新鮮的肝。 持續努力學習中~

啟用Apache的反向代理(reverse proxy)將請求導至其它port

Linux、Mac應用程式

假設今天某公司提供了三個web服務,分別是服務1、服務2、服務3,這間公司希望把這三個服務架在同一台伺服器上,但網頁的port只有80(或https的443)能對外啊,有沒有辦法先讓請求統一發至port 80或443後再轉發給對應服務的port呢?有的,這就是反向代理(reverse proxy)的概念。


(反向代理示意圖)

我們先在伺服器架一個反向代理的服務在port 80上(本篇以Apache為例),然後設定轉發規則將往後收到的請求根據這個規則轉發至對應的服務。對應的服務處理完後再丟還給反向代理,反向代理再將結果回傳給使用者,完成一次循環。

[Java] SQL ResultSet轉換成JSON Array

Java程式語言

剛好遇到需要將query出來的result轉成json再pass給前端

怕以後又遇到同樣的需求,先筆記下來

記得import

import org.json.JSONArray;
import org.json.JSONObject;
import java.sql.ResultSet;

轉換的method

public static JSONArray convert(ResultSet resultSet) throws Exception {

	JSONArray jsonArray = new JSONArray();

	while (resultSet.next()) {

		int columns = resultSet.getMetaData().getColumnCount();
		JSONObject obj = new JSONObject();

		for (int i = 0; i < columns; i++)
			obj.put(resultSet.getMetaData().getColumnLabel(i + 1).toLowerCase(), resultSet.getObject(i + 1));

		jsonArray.put(obj);
	}
	return jsonArray;
}

更改phpMyAdmin在Apache託管的預設port

Linux、Mac應用程式

有時為了安全起見,我們希望將phpMyAdmin這種存取資料庫的窗口不要使用網頁伺服器常用的port 80

這樣有個好處,就是能在server前面的防火牆建立filter rule讓該port只有特定ip能存取

 

為了達成目的,我們修改ports.conf讓Apache除了監聽port 80,也監聽準備拿來放phpMyAdmin的port 81

用自己熟悉的編輯器打開/etc/apache2/ports.conf,在Listen 80下面再加一行

Listen 81

 

存檔,切換目錄到/etc/apache2/sites-available/下新增phpmyadmin.conf

把連到port 81時要對應到哪個資料夾的規則寫在裡面

<VirtualHost *:81>
    DocumentRoot /usr/share/phpmyadmin/
</VirtualHost>

建立以太坊私有鏈(三) 執行投票合約

區塊鏈

上一篇我們已經將合約部署至區塊鏈上了,在這篇執行合約前

我想要先講一下如果往後把terminal關掉了,要怎麼把合約的實例(instance)從區塊鏈上設回變數

 

取回部署在區塊鏈上的合約實例

如果你是接續上一篇做到這裡的,也就是在geth中輸入vote.address有反應的,可以跳過這部份

 
在取回合約實例之前,我們必須要有ABI及合約地址這兩樣才能把合約實例找回來

ABI類似合約的描述檔,記錄這個合約有哪些function,function有哪些input、回傳、範圍...等