一個加速訪問 StackOverflow 的方法

安全預(yù)警:最近的 xcode ghost 事件讓大家的安全意識提高了不少剩胁。本文介紹的方法可能存在一些安全隱患。當(dāng)然森缠,解決方案也是有的祝闻,就是可以把本地 cdn 加速的文件和官網(wǎng)發(fā)布的正式版本做 md5 檢驗,這樣確保本地文件沒有被修改甘苍。由于時間緊迫尝蠕,目前還沒有實現(xiàn) md5 檢驗。請自己負(fù)責(zé)你的計算機安全载庭。

問題

訪問 StackOverflow 時奇慢無比有沒有看彼?其實原因不是因為 StackOverflow 不能訪問,而是因為 StackOverflow 網(wǎng)站引用了 Google 的 CDN 加速服務(wù)器來下載 jqeury 腳本囚聚。知乎上有個話題討論了這個問題靖榕。

解決方案

在本地搭建一個 web 服務(wù)器透敌,然后下載好 jquery 腳本锤岸,放在本地 web 服務(wù)器上。再修改 hosts 文件启绰,把 ajax.googleapis.com 重定向到本地 127.0.0.1 跋破。這樣瀏覽器就會從本地下載腳本簸淀,而不再從 ajax.googleapis.com 下載了。

詳細(xì)步驟

這里將介紹詳細(xì)的安裝和配置過程毒返,需要注意的是所有的目錄和命令以我的 mac 下的環(huán)境為例租幕。如果你用的是不同的版本或不同的操作系統(tǒng),根據(jù)你的情況完成相應(yīng)的配置即可拧簸。

安裝 nginx 服務(wù)器

網(wǎng)上一堆教程劲绪,搜索一下就可以成功安裝,需要注意的是兩點盆赤。一是需要設(shè)置 nginx 開機啟動贾富。二是需要修改 nginx 運行權(quán)限,因為我們要在 80 端口提供服務(wù)牺六,80 端口需要 root 權(quán)限才可以颤枪。

設(shè)置 nginx 開機啟動

把下面文件內(nèi)容保存到 /Library/LaunchAgents/com.nginx.plist。然后運行 launchctl load -w /Library/LaunchAgents/com.nginx.plist淑际。

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>homebrew.mxcl.nginx</string>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/opt/nginx/bin/nginx</string>
        <string>-g</string>
        <string>daemon off;</string>
    </array>
    <key>WorkingDirectory</key>
    <string>/usr/local</string>
    <key>StandardErrorPath</key>
    <string>/usr/local/var/log/nginx/error.log</string>
    <key>StandardOutPath</key>
    <string>/usr/local/var/log/nginx/access.log</string>
  </dict>
</plist>

修改 nginx 運行權(quán)限

sudo chown root:admin /usr/local/Cellar/nginx/1.8.0/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.8.0/bin/nginx

配置 nginx 服務(wù)器

配置 nginx 服務(wù)器主要分兩步畏纲。一是生成 ssl 證書扇住,用來提供 https 服務(wù)。二是下載 local-cdn 到本地盗胀,將配置 nginx 指向這個本地目錄以便提供 cdn 服務(wù)艘蹋。

生成 ssl 證書

我們本地 cdn 還需要支持 ssl,所以需要做一個自簽名的證書票灰。下面命令會在 /usr/local/etc/nginx/ssl/ 目錄下生成一個自簽名的證書女阀。這個證書后面會用到。

mkdir -p /usr/local/etc/nginx/ssl
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /usr/local/etc/nginx/ssl/nginx.key -out /usr/local/etc/nginx/ssl/nginx.crt

配置 nginx 服務(wù)器

把 local-cdn 下載到本地屑迂,比如放在 /Users/kamidox/work/local-cdn浸策。

cd /Users/kamidox/work/
git clone https://github.com/kamidox/local-cdn.git

然后配置 nginx 添加這個目錄當(dāng)作內(nèi)容目錄。我們把下面內(nèi)容保存到 /usr/local/etc/nginx/servers/local-cdn.conf屈糊。注意配置中用到了我們上面生成的證書的榛。另外琼了,nginx 默認(rèn)會 include /usr/local/etc/nginx/servers/ 下的所有配置文件逻锐。如果你修改過 nginx 的默認(rèn)配置,根據(jù)你自己的情況配置即可雕薪。

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;
    charset utf-8;

    listen 443 ssl;

    server_name localhost;
    ssl_certificate /usr/local/etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /usr/local/etc/nginx/ssl/nginx.key;

    location / {
        root /Users/kamidox/work/local-cdn/;
        index index.html index.htm;
    }
}

Contribution

歡迎大家提 pull request昧诱,一起完善科學(xué)文明的上網(wǎng)環(huán)境。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末所袁,一起剝皮案震驚了整個濱河市盏档,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌燥爷,老刑警劉巖蜈亩,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異前翎,居然都是意外死亡稚配,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門港华,熙熙樓的掌柜王于貴愁眉苦臉地迎上來道川,“玉大人,你說我怎么就攤上這事立宜∶疤眩” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵橙数,是天一觀的道長尊流。 經(jīng)常有香客問我,道長灯帮,這世上最難降的妖魔是什么崖技? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任蜘澜,我火速辦了婚禮,結(jié)果婚禮上响疚,老公的妹妹穿的比我還像新娘鄙信。我一直安慰自己,他們只是感情好忿晕,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布装诡。 她就那樣靜靜地躺著,像睡著了一般践盼。 火紅的嫁衣襯著肌膚如雪鸦采。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天咕幻,我揣著相機與錄音渔伯,去河邊找鬼。 笑死肄程,一個胖子當(dāng)著我的面吹牛锣吼,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蓝厌,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼玄叠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拓提?” 一聲冷哼從身側(cè)響起读恃,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎代态,沒想到半個月后寺惫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡蹦疑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年西雀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片必尼。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒋搜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出判莉,到底是詐尸還是另有隱情豆挽,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布券盅,位于F島的核電站帮哈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏锰镀。R本人自食惡果不足惜娘侍,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一咖刃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧憾筏,春花似錦嚎杨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至古拴,卻和暖如春箩帚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背黄痪。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工紧帕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桅打。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓是嗜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親油额。 傳聞我的和親對象是個殘疾皇子叠纷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容