歡迎喜歡文章的朋友們自行轉錄,請在轉錄開頭註明出處與連結感謝各位的尊重與支持!^_^

2018年8月3日 星期五

PM2 多核心Cluster實作方式分享

測試的時候發現,機器即使雙核心,CPU使用率仍然卡在50%上不去,後來才發現原來是PM2只用了一顆核心在跑。

如果要PM2可以跑多核心的執行Thead有一個Cluster模式,但必須要在start的時候下 -i [core number]。如果不確定可以跑多少,可以直接下 -i max,PM2會自動取目前機器最多能執行的Thread數。

舉例來說:
pm2 start -i max index.js --no-automation --name [app name]

pm2 status
可得到下圖兩個Cluster:



2018年7月30日 星期一

Safari Table預設讀取CSS欄寬問題

今天遇到Safari Table 欄寬 預設全部擠在一起,Chrome沒此問題。
為了測試,改開Safari Technology Preview的Inspect,利用Inspect調整任何一個Element卻又神奇歸位?
完全了無頭緒下,研究了很多大大的方法,終於找到解決辦法...
只能說這到底是什麼神奇的設定值...?! orz
為了防止有人也有一樣的問題,在此紀錄一下。

.table{
   table-layout: fixed;
   max-width: none;
   width: auto;
   min-width: 100%;
}


2018年3月27日 星期二

如何利用 Apache 的 mod_pagespeed 快速強化原先網頁的效率

會接觸到這個套件是因為 Google PageSpeed Insights 實在太嚴格了,在不更改程式碼架構下要做基本的優化,只好找尋較方便的方式。

mod_pagespeed這個Apache的套件,可將一些js, css檔案合併,並自動優化整個網頁讀取速度,不需要更改原來的code撰寫,即可優化一些Google PageSpeed Insights抓出的小毛病。(但真的能改善的還是有限~有總比沒有好~只要一分鐘就能搞定,有做有保佑~)

目前是以環境主機為 Ubuntu 16.04 為例

1. 套件下載
64-bit version
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_amd64.deb
32-bit version
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb2. 

2. 安裝套件
sudo dpkg -i mod-pagespeed-*.deb

3. 移除套件安裝檔
rm mod-pagespeed-*.deb

4. 重開Apache
service apache2 restart

5. 編輯設定檔 (如不更改可用預設值)
vim /etc/apache2/mods-available/pagespeed.conf

更多詳細的參數設定說明可參考以下文件:
https://www.digitalocean.com/community/tutorials/how-to-get-started-with-mod_pagespeed-with-apache-on-an-ubuntu-and-debian-cloud-server

2017年11月27日 星期一

[筆記] UBUNTU 16.04 Google Compute Engine 自動自我備份

以下步驟將教學利用Google Compute Engine 自我定期備份(Backup automatically):

1. 安裝 Google Cloud ( 如果用外部機器才需要裝,如果使用Google Compute Engine內建已安裝)

# Create an environment variable for the correct distribution
export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)"

# Add the Cloud SDK distribution URI as a package source
echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

# Import the Google Cloud Platform public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

# Update the package list and install the Cloud SDK
sudo apt-get update && sudo apt-get install google-cloud-sdk

2. 開啟該Instance的Cloud Engine API權限

# 如果還沒開機器可以再開機器的時候設定,已經開了就要停止機器用「編輯」做設定,須將Compute Engine的權限開啟為「讀寫」

停用Instance後可進行編輯,選取存取範圍為針對各個API設定存取權

找到Compute Engine開啟讀寫,其餘不需更動


3. 撰寫Script sh檔自動建立Snapshot並刪除昨日的Snapshot

# 新增一個執行檔
cd /home
sudo vim backup.sh

# 內容如下:主要是將昨日日期與今日日期標記在snapshot名稱
yesterday="$(date -d yesterday '+%Y%m%d')"
nowDate=$(date +%Y%m%d)
sudo gcloud compute disks snapshot [GOOGLE CLOUD ENGINE DISK NAME] --snapshot-names=backup-$nowDate --zone=asia-east1-a
gcloud compute snapshots delete backup-$yesterday

# 將執行檔轉為可執行
sudo chmod +x backup.sh

4. 將sh設定到Crontab中
sudo vim /etc/crontab

# 內容如下:看是要什麼時候執行該備份,以下為定期每日凌晨一點執行
0 1  * * * root /home/backup.sh


2017年9月27日 星期三

UBUNTU 16.04 安裝 Parse Server 筆記

安裝流程 (參考新裝parse的方法) UBUNTU 16

$ sudo apt-get install build-essential git python-software-properties
$ curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
$ sudo apt-get install nodejs
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
$ echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list
$ sudo apt-get update
$ sudo apt-get install mongodb-org
$ cd /opt
$ sudo apt-get install git
$ git clone [parse server git]
$ cd /opt/[parse server git dir]
$ npm install
$ sudo npm install -g pm2
$ sudo pm2 start index.js --no-automation --name xxx-app (xxx-app 為自行設定名稱)

=======================

設定用ssh連線機器並關閉密碼功能
$ adduser [USERNAME]
$ usermod -aG sudo [USERNAME]
$ su - [USERNAME]
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ sudo chown -R "[USERNAME]" ~/.ssh
$ vim ~/.ssh/authorized_keys => 將id_rsa.pub貼入
請先確保key有輸入正確並登入正確再改以下步驟
$ sudo vim /etc/ssh/sshd_config => PasswordAuthentication no
$ sudo systemctl reload sshd

2016年10月13日 星期四

Mongo DB PHP Extension 安裝筆記

UBUNTU環境 (14.04)


sudo apt-get install pkg-config

sudo apt-get install -y autoconf g++ make openssl libssl-dev libcurl4-openssl-dev pkg-config libsasl2-dev libpcre3-dev

sudo pear install pecl/mongodb


成功畫面:








Synology NAS環境

待補

UBUNTU 14.04 Apache2 設定Proxy至其他Port


1. 更新程式庫

aptitude    update
aptitude -y upgrade


2. 取得編譯工具

aptitude install -y build-essential


3. 安裝插件與關聯

aptitude install -y libapache2-mod-proxy-html libxml2-dev


4. 設定Apache

a2enmod
proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html


5. 新增Virtual Host設定檔

 <VirtualHost *:80>
    ProxyPreserveHost On

    # Servers to proxy the connection, or;
    # List of application servers:
    # Usage:
    # ProxyPass / http://[IP Addr.]:[port]/
    # ProxyPassReverse / http://[IP Addr.]:[port]/
    # Example: 
    ProxyPass / http://0.0.0.0:8080/
    ProxyPassReverse / http://0.0.0.0:8080/

    ServerName localhost
</VirtualHost>


6. 重開Apache

service apache2 restart

7. 出現Notice提示要多裝mod_xml2enc


[proxy_html:notice] [pid 26434] AH01425: I18n support in mod_proxy_html requires mod_xml2enc. Without it, non-ASCII characters in proxied pages are likely to display incorrectly.

sudo apt-get install apache2-prefork-dev libxml2 libxml2-dev apache2-dev
mkdir ~/modbuild/ && cd ~/modbuild/
wget http://apache.webthing.com/svn/apache/filters/mod_xml2enc.c
wget http://apache.webthing.com/svn/apache/filters/mod_xml2enc.h
sudo apxs2 -aic -I/usr/include/libxml2 ./mod_xml2enc.c
cd ~
sudo rm -rfd ~/modbuild/
sudo service apache2 restart




參考文件:

  • https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension


  • https://gist.github.com/oskarnrk/1c9e436408aacf7671c3

2016年10月4日 星期二

網頁資安問題解決筆記

一、Slow HTTP Denial of Service Attack

俗稱的DDOS攻擊,解決方法有很多種。


  • 方法一:以Apache來說的話,可安裝套件 Mod_Antiloris。
1. 下載檔案


cd /usr/local/src
wget http://sourceforge.net/projects/mod-antiloris/files/mod_antiloris-0.4.tar.bz2
tar -xvjf mod_antiloris-0.4.tar.bz2
cd mod_antiloris-*
apxs -a -i -c mod_antiloris.c

2. 重啟apache
service httpd restart

3. 檢查是否有掛載mod_antiloris
httpd -M | grep antiloris


  • 方法二:更改防火牆設定

      iptables -I INPUT -p tcp --dport 80 \ -m connlimit --connlimit-above 20 --connlimit-mask 40 -j DROP


二、RC4 cipher suites detected、SSL weak ciphers

在conf檔裡加上以下的設定:

 SSLProtocol all -SSLv2 -SSLv3
 SSLHonorCipherOrder on
 # Compression is disabled by default on my distribution (CentOS 6)
 # SSLCompression off
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS

三、The FREAK attack (export cipher suites supported)



四、SSL certificate public key less than 2048 bit

openssl genrsa -out test.key 2048
openssl genrsa -des3 -out test.key 2048
openssl req -new -key test.key -out test.csr
  

Install IPKG on a Synology NAS

安裝機種 DS1815+

1. 檢查CPU型號
INTEL Atom C2538

2. 下載安裝檔: http://ipkg.nslu2-linux.org/feeds/optware/ 
DS1815+機種可相容的型號為: http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh.

3. 打開NAS的SSH進入Command Line

4. 下載並安裝

cd /tmp
wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh
chmod +x syno-i686-bootstrap_1.2-7_i686.xsh 
sh syno-i686-bootstrap_1.2-7_i686.xsh

5. 刪除暫存檔
rm syno-i686-bootstrap_1.2-7_i686.xsh

6. 測試安裝是否完成
ipkg update

2016年9月19日 星期一

實用網頁小工具連結


MD5 Online Hash 小工具:

http://www.web4design.net/tool/general/tools/md5hash

JSON Convert To String Online 小工具:

http://www.web4design.net/tool/general/tools/jsonConverter

網頁調色盤:

http://www.web4design.net/tool/general/tools/colorPicker
Related Posts Plugin for WordPress, Blogger...