關於網路那些事...

Marketing, SEO, Web trends, Programming tutorial, Web design, and Life event...

SSH Secure Tunneling (Proxy&Port Forwarding)

SSH Secure tunnel forwarding

在 SSH 連線有一個 Secure Tuunel (加密通道)方式,

可以將 local 與remote server 之間建立一條 secure tunneling 通道。

這通道的方向可以是 local -> server 或者 server -> local。

首先關於 local to server 以 L (left) 表示, server to local 以 R (right) 表示。

其中在通道的傳輸都是透過 SSH 22port 來做 proxy,以下會再舉例說明:

Continue Reading

Laradock Redis Production 環境配置

Laradock Redis Production 環境配置

Laradock 在開發測試環境相當方便,但是若是對外暴露的情況下,則會由一定的安全設定需要處理。

這裡記錄過去在開設測試環境時,經常會使用到的設定方式:

Continue Reading

如何使用 Laravel Route group + middleware 管理多語系 Localization routes

在建立多語系的系統時,常見透過 subdomain 與 first segment 方式來做為多國區分

例如: subdomain: tw.adon988.com, first segment: www.adon988.com/tw/

在 laravel 的 router 如果要建立 first segment 方式的 router ,官方的範例如下:

Continue Reading

ElasticSearch(ES) 起源及原理說明

ElasticSearch(ES) 起源及原理說明

簡介

Elasticsearch 是一套基於 Apache Lucene (TM) 的開源搜尋引擎,主要透過 Java 開發及使用 Lucene 來建構索引搜尋功能。關於 Lucene 是目前公認性能最好,功能最齊全的搜尋引擎開源庫,由於在這個庫要實現搜尋功能,會非常的複雜,因此在目前有 Elasticsearch 與 Solr..等整合 Lucene技術整合成的搜尋引擎。

在基本特性上, Elasticsearch 讓搜尋變得簡單,並且可以透過 Restful api 進行溝通,以及可實現橫向拓展,支持 PB 等級的數據處理。

Continue Reading

如何在 CentOS7 安裝 FFmpeg

如何在 CentOS7 安裝 FFmpeg

FFmpeg 是一個非常強大的影音串流及轉檔服務,這裡主要說明如何在 CentOS7 安裝 ffmpeg

安裝 FFmpeg

在 CentOS7 沒有 FFmpeg 相關的核心套件可以直接下載,因此需透過 Nux Dextop repository 來安裝。

首先,先更新 package

Continue Reading

Elastic Common Schema (ECS) 入門介紹

Elastic Common Schema (ECS) 入門介紹

Elastic Common Schema (ECS) 入門介紹

Elasticsearch 數據結構在過去主要由使用者自行定義資料結構,對於跨資料的關聯搜尋,可以透過訂製一些通用規範來達到資料追蹤。

但事實上,要做到這件事情會有一些困難,只能針對已知的結構來定義追蹤的規範,一旦有新增需求或調整結構都會造成許多不方便。另外,與不同組織合作時,兩方串接也會需要花費許多時間來討論定義這些通用結構。

就在 2019 年 2 月 Elastic 官方推出了 Elastic Common Schema(ECS, ES通用架構) 開源的規範,可讓使用者可以透過一制性的規範來搜集一些通用的數據結構,這樣的好處可以在不同的資料來源,可以透過 ECS 來做資料關聯搜尋及可視化分析,只要不同組織資料需要做關聯分析時,透過 ECS 就能夠增加溝通效率。因此,用戶只需要將資料映射到 ECS 資料結構即可。接下,針對 ECS 的一些基本結構及用法進行說明:

Continue Reading

Gin - Middleware (中間件) 程式運作原理及用法教學

Gin - Middleware (中間件) 程式運作原理及用法教學

Gin - Middleware (中間件) 程式運作原理及用法教學

在 Web 應用及開發中,一個完整的請求會包含客戶端請求,伺服器端接收及處理,返回內容給結果。

在真實的場景中,在這些流程還會有更複雜的功能,例如:權限管理,安全驗證及日誌等部分,因此在開發過程我們常要思考,如何更好的管理這些通用的功能,以套件的方式來進行開發,就可以很方便地進行對接及配置。

Continue Reading

解決 Docker build apt-get update "-yqq" failed Failed to fetch http://xxx 與 IPv4 forwarding is disabled 問題

在試用某家 VPS 廠商的服務時,發現在執行一些服務安裝時,使用 apt-get update -yqq 出現了一些錯誤,在這裡記錄下問題發生的可能原因及解決方案:

WARNING: IPv4 forwarding is disabled. Networking will not work

遇到這問題,解決方式可以直接在系統 sysctl 設定加入允許 ipv4 forward

開啟 sysctl 設定檔案

vim /etc/sysctl.conf

加入以下代碼

Continue Reading

Wordpress 搬家教學,如何搬移到新主機進行預覽,避免 ssl 強制轉導或導回舊站

Wordpress 搬家教學,如何搬移到新主機進行預覽,避免 ssl 強制轉導或導回舊站

Wordpress 搬家教學,如何搬移到新主機進行預覽,避免 ssl 強制轉導或導回舊站

Wordpress 搬家前,舊站仍需要正常運作,同時要將資料搬移到新主機進行瀏覽。

由於新主機我們希望先瀏覽是否能正常訪問,因此,並不需要強制要求 ssl 憑證,因此,會有需求是要能移除 ssl 以及強制導向。

最常見的問題就是, wordpress 資料搬移到新主機,卻重新導向回到舊站,或者強制導向 ssl。

Continue Reading

Linux Firewall-cmd 防火牆安裝, 允許/禁止 IP, Port 用法介紹

Firewalld 防火牆常見用法介紹

Linux 常見防火牆有 iptables 與 firewalls ,這裡主要針對 firewalld安裝及常見用法進行說明,這裡以 CentOS7 來進行說明:

Continue Reading

Linux scp 指令教學-上傳檔案/保留原始時間及權限/壓縮資料/自定義 port/限制傳輸速度

Linux scp 指令教學-上傳檔案/保留原始時間及權限/壓縮資料/自定義 port/限制傳輸速度

Linux scp 指令教學-上傳檔案/保留原始時間及權限/壓縮資料/自定義 port/限制傳輸速度

不同主機之間經常會需要做資料上傳與下載,一般常見透過 FTP, Web, 第三方軟體來進行傳輸,在這裡要介紹的是,如何透過 Linux 的 scp 指令來進行檔案複製。

Continue Reading

深入理解 Websocket 協議,常見攻擊手法及防護策略

深入理解 Websocket 協議,常見攻擊手法及防護策略

Websocket 是主流的即時通訊協定,在這裡將針對過去的一些經驗,介紹關於 Websocket 的一些內部網路技術原理,以及如何防禦攻擊的做法進行說明。

Continue Reading

GoLang - grpc enum 定義預設類型

GoLang - grpc enum 定義預設類型

在設計 grpc 時,如果我們產品需要分區,不同區域會有不同的產品,該如何處理?

本篇預設讀者對於 grpc 有一定的瞭解,以下將簡單舉例,先說明查單一商品,以及修改為回傳多商品,最後則是 server 與 client 端如何處理這部分的流程:

Continue Reading

GoLang - grpc 使用 Repeated 回傳多筆數據

grpc tutorial 教學

GoLang - grpc 使用 Repeated 回傳多筆數據

在設計 grpc 時,如果我們需要取得商品列表,該如何獲得?

本篇預設讀者對於 grpc 有一定的瞭解,以下將簡單舉例,先說明查單一商品,以及修改為回傳多商品,最後則是 server 與 client 端如何處理這部分的流程:

Continue Reading

Go Module與 Go get 常用參數說明

Golang - 教學 tutorial

Go Module與 Go get 常用參數說明

在 Go 語言結構,可以透過 import

Continue Reading

GoLang - catch panic 避免主系統錯誤

Golang - 教學 tutorial

GoLang - catch panic 避免主系統錯誤

在這幾篇,會以 Go 語言的入門基礎進行逐步說明,本篇針對 catch panic 進行說明

Continue Reading

GoLang - select 監聽多 channel 及設定逾時

Golang - 教學 tutorial

GoLang - select 監聽多 channel 及設定逾時策略

在這幾篇,會以 Go 語言的入門基礎進行逐步說明,本篇針對 多Project Layou 進行說明

Continue Reading

GoLang - 多 goroutine 透過 Channels 協同處理範例

GoLang - 多 goroutine 透過 Channels 協同處理範例

在這幾篇,會以 Go 語言的入門基礎進行逐步說明,本篇針對 多 goroutine 透過 channel 協同處理 進行說明

Continue Reading

GoLang - 多線程全局變數加鎖

Golang - 教學 tutorial

GoLang - 多線程全局變數加鎖

在這幾篇,會以 Go 語言的入門基礎進行逐步說明,本篇針對 多線程全局變數加鎖 進行說明

Continue Reading

GoLang - Channels (上) Buffered / UnBuffered

Golang - 教學 tutorial

GoLang - Channels

在這幾篇,會以 Go 語言的入門基礎進行逐步說明,本篇針對 Channel 進行說明

Continue Reading