最近在使用 Ubuntu 時想開啟遠端桌面的功能,但在安裝系統時沒有勾選安裝 VNC Server 導致我在設定中找不到 螢幕分享
的選項可以用,如果想使用遠端桌面功能又不想傻傻的重裝系統該怎麼辦呢 ?
Server
[IIS][GitLab] Reverse Proxy 後的小問題
既上次 [IIS][GitLab] 利用 IIS Reverse Proxy 將 GitLab 加上 Https 將 gitlab 擺到 iis 後面之後,遇到部分功能無法正常使用的問題
- 無法瀏覽 `.cs` 、 `.config` 等檔案
- 無法使用 WebIDE
- 無法使用 `檔案庫 -> 比較` 功能
[IIS][GitLab] 利用 IIS Reverse Proxy 將 GitLab 加上 Https
最近工作上有個需求要將 GitLab 掛上 SSL 憑證,原本就有一台 Windows Server 在管理所有的 SSL 憑證,於是乎就想到可以利用 IIS Reverse Proxy 的方式將憑證集中管理在這台,這樣管理起來也比較方便。
前置作業
首先需要安裝兩個模組
安裝 URL Rewrite 的時候有踩到一個地雷,詳情請見 [IIS] Windows Server 2016 安裝 URL Rewrite 憑證失效
開始設定
- 建立一個新站台並設定好 SSL 憑證 (由於這邊我只是測試用,所以我自己簽一個自我憑證)
-
選擇
URL Rewrite
-
選擇
新增規則
->反向 Proxy
-
選擇
確定
啟用 Proxy
-
1
的地方輸入 GitLab 的位置,2
的位置輸入欲對外的 Domain
-
當我以為簡單就完成開啟網頁試試時卻噴錯誤給我看
HTTP 錯誤 500.52 - URL Rewrite Module Error.
當 HTTP 回應的內容經過編碼 ("gzip") 時,無法套用輸出重寫規則。
原因是因為 GitLab 有開啟壓縮,但使用了反向 Proxy 無法將已壓縮的檔案進行修改,所以就噴了這個錯誤
- 解決方法是在
伺服器變數
做調整
-
新增兩個變數分別是
HTTP_ACCEPT_ENCODING
與HTTP_X_ORIGINAL_ACCEPT_ENCODING
-
編輯輸入規則
-
新增兩個伺服器變數,伺服器變數名稱選擇剛剛加入的
HTTP_X_ORIGINAL_ACCEPT_ENCODING
,值輸入{HTTP_ACCEPT_ENCODING}
-
我們已經將
HTTP_ACCEPT_ENCODING
放到HTTP_X_ORIGINAL_ACCEPT_ENCODING
裡面,原本的值就可以清空清空,但因為 UI 不允許輸入空值,所以這邊我就隨便打個值
如果跟我一樣很在意的話可以去站台底下的web.config
清空剛剛的值
-
終於可以開起來囉 ~
顯示調整
雖然已經可以正常開啟網頁了,但網址還是會顯示錯誤
- 新增兩個伺服器變數
HTTP_X_FORWARDED_HOST
與HTTP_X_FORWARDED_PROTO
HTTP_X_FORWARDED_HOST
輸入 Domain,HTTP_X_FORWARDED_PROTO
輸入 https
- 修改
/etc/gitlab/gitlab.rb
加上這段
external_url 'https://gitlab.exfast.me' nginx['listen_port'] = 80 nginx['listen_https'] = false
這樣頁面顯示的網址就正常囉,不過 https://gitlab.exfast.me/profile/active_sessions
這邊顯示的 IP會是 IIS 那台的位址,所以還必須調整 /etc/gitlab/gitlab.rb
加上這段
# Each address is added to the the NGINX config as 'set_real_ip_from <address>;' nginx['real_ip_trusted_addresses'] = [ '127.0.0.1', '192.168.56.106' ] # other real_ip config options nginx['real_ip_header'] = 'X-Forwarded-For' nginx['real_ip_recursive'] = 'on'
參考資料
[IIS] Windows Server 2016 安裝 URL Rewrite 憑證失效
2016 年的時候我筆記過一篇 [IIS] Windows Server 2016 無法安裝 URL Rewrite !?
想不到現在 2018 年了再次安裝 URL Rewrite 時又遇到新問題,微軟爸爸不要亂放地雷好嗎?
我是從 這邊 下載的 這個版本 安裝時會出現下面這張圖的狀況
經過千辛萬苦的餵狗後發現是微軟在 2018/09/12 發布的版本帶了時間戳,而這個時間戳卻造成無法安裝的問題,這邊我有找到一個舊版本給大家急救一下 點我下載 (密碼:https://blog.exfast.me/
)
參考資料:
URL rewrite installation failing due to signature verification failure
[.NET Core] 將 NET Core 部署至 Ubuntu Server 16.04
最近裝了個Linux Server想來玩玩看NET Core並佈署到上面,結果發現好多眉眉角角,網路上的文件似乎有點舊讓我一直撞牆撞不停,經過了幾個小時的煎熬最後終於成功了,這裡筆記一下方便下次使用…
首先按照 官網 提供的步驟進行安裝如下:
- 加入apt-get來源
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893 sudo apt-get update
- 開始安裝
sudo apt-get install dotnet-dev-1.0.4
- 建立一個空資料夾
mkdir HelloWebApp cd HelloWebApp
- 初始化MVC專案
dotnet new mvc
Templates清單:
Templates Short Name Language Tags ---------------------------------------------------------------------- Console Application console [C#], F# Common/Console Class library classlib [C#], F# Common/Library Unit Test Project mstest [C#], F# Test/MSTest xUnit Test Project xunit [C#], F# Test/xUnit ASP.NET Core Empty web [C#] Web/Empty ASP.NET Core Web App mvc [C#], F# Web/MVC ASP.NET Core Web API webapi [C#] Web/WebAPI Solution File sln Solution
- 檢查套件是否遺失並安裝
dotnet restore
- 安裝Apache反向代理(Reverse-Proxy)
sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod proxy_ajp sudo a2enmod rewrite sudo a2enmod deflate sudo a2enmod headers sudo a2enmod proxy_balancer sudo a2enmod proxy_connect sudo a2enmod proxy_html
- 設定000-default.conf
<VirtualHost *:80> ProxyPreserveHost On ProxyPass / http://127.0.0.1:5000/ ProxyPassReverse / http://127.0.0.1:5000/ </VirtualHost>
- 重新啟動Apach並啟動.NET Core專案
sudo service apache2 restart dotnet run
- 完成 !!
- 2017/05/24 開啟啟動&背景執行
新增:/etc/systemd/system/kestrel-hellomvc.service
[Unit] Description = https://blog.exfast.me/ [Service] WorkingDirectory = /home/user/HelloWebApp/ ExecStart = /usr/bin/dotnet run /home/user/HelloWebApp/HelloWebApp.dll Restart = always # Restart service after 10 seconds if dotnet service crashes RestartSec = 10 SyslogIdentifier = dotnet-example User = user Environment = ASPNETCORE_ENVIRONMENT = Production [Install] WantedBy = multi-user.target
指令:
sudo systemctl stop kestrel-hellomvc sudo systemctl disable kestrel-hellomvc sudo systemctl enable kestrel-hellomvc sudo systemctl start kestrel-hellomvc sudo systemctl status kestrel-hellomvc
來源:
[IIS] 在 Windows Server 上執行 PHP 莫名的慢
原本在Linux非常順暢的Wordpress移植到了Windows Server上卻發生一個頁面要Loading一秒以上,餵狗了一下找了幾種方法來優化一下。
- 修改
php.ini
將output_buffering
修改為Off
output_buffering = Off
- 將php內用到
localhost
的通通修改為127.0.0.1
- 關閉Router的防DDOS功能
<-- 這個功能害我測了好久
修改完後有快一點點了,但還是比不上Linux的速度,可能這就是Windows Server先天上的吃資源吧。
來源:https://forums.iis.net/t/1153459.aspx?PHP+very+slow+on+IIS7
[IIS] Windows Server 2016 無法安裝 URL Rewrite !?
今天興致來在VM上灌了2016打算把Wordpress移植過去的時候發現,無法安裝URL Rewrite !!!!
我明明就已經7.0以上了阿,我書讀得少不要唬爛我啊 !!!
餵狗了一下才發現,原來不只我有這個問題,解法如下:
Win+R
輸入下方指令打開註冊檔regedit
- 找到
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\MajorVersion
- 將數值修改為
7
再進行安裝!!
- 就可以順利安裝囉 !!
- 安裝完記得改回去嘿,避免發生不必要的錯誤 !!
[WordPress] 在Windows Server 2012 R2中使用 Disqus Comment System 連結帳號失敗
最近手賤把Disqus解除帳號連結,卻發現怎麼樣都無法連結帳號,一直顯示Unable to connect to the Disqus API servers
如下:
拜了Google大神很久都找不到原因,無論重新安裝Windows Server還是使用國外HostGator Web Hosting(Windows)都發生同樣錯誤,忽然想起之前安裝這個外掛的時候也有發生這個問題,後來改用Linux後就正常了,於是乎懷疑是否是作業系統的問題,立即開了虛擬機安裝一台Linux測試,在Linux底下沒有做什麼特別的設定,按下登入馬上就連結成功到Disqus。
個人猜測在Windows裡安裝的php套件少了什麼東西,導致外掛無法正常運作,雖然切回Windows後無法同步留言回Wordpress,但是此外掛還是有正常在運作中可以正常留言,那就先這樣結案吧!
WordPress 新增媒體後顯示 500 – 內部伺服器錯誤
在Windwes Server 2012 R2下安裝Wordpress還滿多東西需要設定的,像是上傳新照片的時候會出現500 - 內部伺服器錯誤
,
這個問題非常讓人頭痛,詢問了Google小姐一陣子後找到了解答是說,由於IIS沒有權限讀取暫存資料夾C:\Windows\Temp
,明明沒有權限讀取此資料夾為什麼又要上傳到這裡呢?難道沒有自己的一個專屬暫存資料夾嗎?
不過既然知道了問題點,解決起來就不是甚麼問題了。
解決方法:
- 找到路徑
C:\Windows\Temp
,編輯IIS_IUSRS
使用者,給予該使用者讀取
的權限即可。
- 這樣就可以正常顯示圖片囉!