中華電信 hicloud 後台並不支援 Firefox

UPDATE:2018-08-22 使用 Firefox 61.0.2 應該已經可以了

官方的 Q&A 裡面提到

Q. 虛擬私雲 (hicloud VPC) 虛擬資料中心 管理介面 (vDC ) 有支援那些瀏覽器 ?

A. hicloud VPC 雲伺服器 Console 管理介面相容於部分瀏覽器與作業系統,建議您參考『hicloudVPC 操作說明手冊』(https://userportal.hicloud.hinet.net/vpc/document/files/hicloudVPC_Manual.pdf) 系統需求清單內瀏覽器與作業系統支援列表,並建議您使用 Firefox 瀏覽器得到最佳的相容性。

『建議您使用 Firefox 瀏覽器得到最佳的相容性』

但是用 Firefox 60.0.1 打開後台,只會看到這樣的空白頁

Screenshot-2018-6-4 中華電信hicloud雲端服務.png

而用 Chrome 打開同樣的頁面則可以正常顯示

螢幕快照 2018-06-04 上午10.01.55.png

甚至用 Safari 11.1.1 也可以正常顯示

螢幕快照 2018-06-04 上午10.08.54.png

中華電信你是不是在開我玩笑?

Caddy + gunicorn + django

前言

目前這個部落格是放在東京 Linode 主機上,最近遇到的問題是 nginx 每天都會自動死掉,每天都得要 ssh 進去 restart nginx service,實在有夠麻煩。再加上我有用 Let’s Encrypt,每 90 天都要更新憑證。乾脆一不做二不休的把 web server 換成會自動更新憑證的 caddy,以下這篇記錄轉換的過程。

安裝 caddy

以下參考這份文件

安裝 caddy 很簡單,直接在 shell 下執行:

curl -s https://getcaddy.com | bash -s personal

使用 personal license 來安裝 caddy

然後建立必要的目錄

sudo mkdir /etc/caddy && sudo chown -R root:www-data /etc/caddy

建立空白的 caddy 設定檔

sudo touch /etc/caddy/Caddyfile

建立給 caddy 使用的 ssl 目錄

sudo mkdir /etc/ssl/caddy
sudo chown -R www-data:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy

安裝 Caddy 系統服務

從官方 repository 下載 caddy.service

sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service

讓 systemd 發現新下載的 caddy.service

sudo systemctl daemon-reload

Enable caddy.service

sudo systemctl enable caddy.service

(Optional) 檢查 Caddy 是否有正確運作

建立 /var/www/index.html

echo '<h1>Hello World!</h1>' | sudo tee /var/www/index.html

編輯 /etc/caddy/Caddyfile 設定檔

http:// {
    root /var/www
    gzip
}

然後啟動 Caddy server

sudo systemctl start caddy

設定 gunicorn

之前用 nginx 當作 web server 的時候,是搭配 uwsgi 來把 request 傳到 django 內。而 Caddy 雖然有 plugin 可以支援 uwsgi,但是需要自己編 Caddy,所以在這裡我改用 gunicorn。

安裝 gunicorn 和 runit

sudo apt install -y runit
sudo -H pip install gunicorn
sudo service runit start

設定 runit,${project_name} 為您的專案名稱

mkdir /etc/sv/${product_name}/
touch /etc/sv/${project_name}/run
chmod u+x /etc/sv/${project_name}/run
vim /etc/sv/${project_name}/run

編輯 /etc/sv/${project_name}/run

#!/bin/sh

# gunicorn 執行檔位置
GUNICORN=/usr/local/bin/gunicorn
# Django 專案位置
ROOT=/var/www/my_django_project
# 執行時的 pid 位置
PID=/tmp/my_django_project.pid

# Django 專案的 wsgi.py 位置
APP=my_django_project.wsgi

if [ -f $PID ]; then rm $PID; fi

cd $ROOT
exec $GUNICORN -c $ROOT/gunicorn.conf.py --pid=$PID $APP --group www-data

再來設定 django 專案,在專案根目錄中新增 gunicorn.conf.py,內容如下

# 用本機的 8000 port
bind = "127.0.0.1:8000"
# gunicorn 的 pid file,和前面 runit 設定檔內相同
pidfile = "/tmp/my_django_project.pid"
# 設定要用幾個 worker 來執行
workers = 1
timeout = 90

再來讓 runit 把 gunicorn 跑起來

ln -s /etc/sv/${project_name} /etc/service/${project_name}

如果到這邊都有做對,當你建立好 symbolic link 後執行 ps -aux | grep gunicorn,就會看到 gunicorn 的 process 跑起來了

設定 Caddy

最後設定 Caddy 把 request 丟給 gunicorn 處理,編輯 /etc/caddy/Caddyfile,加上

my_django_project.fykuan.tw {
    root /var/www/my_django_project
    proxy / 127.0.0.1:8000 {
        transparent
        except /static
    }
    tls ${your_email_address}
}

然後重新啟動 Caddy

sudo service caddy restart

就可以用瀏覽器打開 https://my_django_project.fykuan.tw 試試看了

新同文堂無法在 Firefox 使用後的簡繁轉換方案

2017-04-26: 新同文堂新版 release 了,這個版本在 Firefox 53.0 上使用沒有問題,所以就不再需要使用 workaround 了

新同文堂這個簡繁轉換套件,在開啟了 e10s 之後的 Firefox 中無法使用的問題困擾我有一陣子了。現在似乎也從附加元件中下架了。在這之後一直沒有找到順手的替代方案。今天稍微拜了一下 Google 才發現這個走 Greasemonkey 的替代方案。

  1. 如果 Firefox 沒有安裝 Greasemonkey 套件的話,請先到這裡安裝
  2. 安裝簡繁自由切換這個 Greasemonkey script

以後如果再遇到簡體中文網頁,就會自動轉換成正體中文。

俠諾 Qno 防火牆無法下載 Gmail 附件

都是垃圾

最近被找去某社處理網路的問題。去之前就被告知有好幾個大問題困擾他們很久了,其中之一就是總部辦公室用 Gmail 網頁版無法下載或是上傳附件,但是用 Outlook、Airmail 等等的郵件軟體又沒問題。偏偏總部的 email 是用 Google Apps,同事也都習慣用 web 介面收發信了。於是可以說根本是哀鴻遍野啊…

雖然我用 Airmail 收發信,但是進公司以後測試起來的確是常常遇到按下上傳附件,或是點選附件連結要下載以後就不動了,大約要等一分鐘才會好。但是直接接上中華電信的設備撥 PPPoE 又不會遇到這問題…

等等,到這邊是不是有幾個巧合?

  1. 一分鐘
  2. 只有 Gmail 有問題
  3. 直接接中華設備撥 PPPoE 出去不會有問題

這時候就聯想到會不會跟 Google 的新協定 QUIC 有關?前面的 IT 主管用的這設備(Qno QVF8201)是不是有問題,把這些封包當作 DoS 檔掉一分鐘了?

(幹,其實在這之前我根本沒聽過這牌子,我真是白混了)

這樣的猜測大概已經有 90% 的把握了,所以就開始請款採購 Juniper SRX240。

中間還有以前的廠商打電話來跟我說他們之前測了很久,還是 Qno 比較穩,Juniper 和 Cisco 可能都不行這種垃圾

結果接下來的某一天忘記為什麼去開到俠諾 Qno 的首頁,好死不死給我看到這一篇公告

qno

居然自己承認有問題了

但是問題是…

我一開始覺得是這個問題的時候就把防火牆關掉了啊…問題完全不會解決

而且…

靠盃啊,防火牆建議人家關閉防火牆是哪一招?這是什麼超級 workaround…?

然後又讓我看到這一篇 FAQ

qno2

差點沒嘔出幾十斤鮮血…

會不會根本就是關掉防火牆以後要重開機才會生效啊?拜託各位大哥,辦公室用的有辦法想什麼時候重開就重開嗎…

算了,沒時間跟你胡鬧,直接放棄俠諾 Qno 的設備。

換上 Juniper SRX240 以後,辦公室同事再也沒遇到奇怪的問題,而且其他奇奇怪怪的網路問題,像是掉封包、DHCP 發不出來或是亂發一通都沒了。

我現在每天工作的重心就是把原本整個建在俠諾 Qno QVF8201 上,前人建的亂七八糟的網路架構拆到 SRX 240 上面用正規的架構重新搭起來。不過 SRX 設定起來就不是隨便網頁介面勾一勾選項就可以了事的了。

等我拆完真希望可以把 QVF8201 從六樓辦公室丟下去

所以假設有同樣遇到這問題,在 Google 解法的朋友抱歉了,我沒有解法。

我倒是建議你把俠諾 Qno 的設備丟掉,換一個正常一點、遇到問題找的到社群可以問問題的設備(如 Cisco ASA、Juniper SRX)

Linode 從 Fremont, CA 搬家到 Tokyo, JP

因為之前看到有人說雖然 Linode 東京 Datacenter 現在是大客滿的狀態,但是沒事上去點點看有機會會有意外的驚喜。所以我沒事就會上去點點看。結果今天還真的給我點出了一個 Tokyo, JP 的空位 XDDDDD

當然點出來之後毫不猶豫的馬上把原本在 Fremont, CA 的 VPS 搬到 Tokyo, JP,過程大概花了半小時到一小時吧。就完全無痛的搬好了。

下圖是搬家前後從 Hinet 光世代 ping 那台 VPS 的 domain name 的記錄。可以看到搬家前後 ping 的差異。

smokeping
]2 smokeping

爽度大大大提升啊