用阿里雲搭建正向代理伺服器
1. 有沒有簡單的內網穿透工具
埠映射」通俗來說就是將外網主機的IP地址埠映射到內網中一台機器,提供相應的服務。內網相通,電網際網路對外開放服務或者接收大數據,都需要埠映射。首先,想要做好埠映射,確定路由器,清楚的認識軟體需要開放什麼埠號,設置獨立固定的Ip地址,關閉主機防火牆,檢查wan口獲取的Ip是否是公網Ip,最後就是測試。
之前市場上有很多免費版的埠映射工具,現如今基本上都收費了;且測試後,感覺有部分付費的效果也不盡人意。後來測試一款試用的,綜合使用後感覺挺穩定,個人開發測試與商用都挺合適,因為我是用來實現再家可以遠程訪問公司內部的文件,工作需要,沒有公網ip很不方便。這個法子挺好用,使用教程如下:
需要的工具:
網雲穿內網穿透
一個可以正常上網的電腦
網雲穿是一款可以在包括但不限於Windows、Mac、Linux、群輝、樹莓派、威聯通上使用的內網穿透,它可以很便捷的幫助你將本地內網的應用發布出去,比如:網站、資料庫、硬碟文件、遠程桌面、應用、游戲(如我的世界)等等,這樣您就可以很方便的微信調試、自建雲盤、異地辦公等等,它不需要您有公網IP、不需要您有伺服器、也不需要您設置任何路由器,只需要您安裝軟體進行簡單設置即可直接使用。WIndows使用網雲穿穿透3389遠程桌面首先我們開啟被遠程那台電腦的遠程桌面訪問功能(因為這個網雲穿只需要安裝在被遠程的電腦上即可
2. 阿里雲伺服器部署flask項目
當我們執行下面的hello.py時,使用的flask自帶的伺服器,完成了web服務的啟動。在生產環境中,flask自帶的伺服器,無法滿足性能要求,我們這里採用Gunicorn做wsgi容器,來部署flask程序。Gunicorn(綠色獨角獸)是一個python WSGI的HTTP伺服器。從Ruby的獨角獸(Unicorn )項目移植。該Gunicorn伺服器與各種Web框架兼容,實現非常簡單,輕量級的資源消耗。Gunicorn直接用命令啟動,不需要編寫配置文件,相對uWSGI要容易很多。
區分幾個概念 :
WSGI:全稱是Web Server Gateway Interface(web伺服器網關介面),它是一種規范,它是web伺服器和web應用程序之間的介面。它的作用就像是橋梁,連接在web伺服器和web應用框架之間。
uwsgi:是一種傳輸協議,用於定義傳輸信息的類型。
uWSGI:是實現了uwsgi協議WSGI的web伺服器。
我們的部署方式: nginx + gunicorn + flask
web開發中,部署方式大致類似。簡單來說,前端代理使用Nginx主要是為了實現分流、轉發、負載均衡,以及分擔伺服器的壓力。Nginx部署簡單,內存消耗少,成本低。Nginx既可以做正向代理,也可以做反向代理。
正向代理 :請求經過代理伺服器從區域網發出,然後到達互聯網上的伺服器。
特點 :服務端並不知道真正的客戶端是誰。
反向代理 :請求從互聯網發出,先進入代理伺服器,再轉發給區域網內的伺服器。
特點 :客戶端並不知道真正的服務端是誰。
區別 :正向代理的對象是客戶端。反向代理的對象是服務端。
查看命令行選項 : 安裝gunicorn成功後,通過命令行的方式可以查看gunicorn的使用信息。
直接運行 :
指定進程和埠號 : -w: 表示進程(worker)。 -b:表示綁定ip地址和埠號(bind)。--access-logfile:表示指定log文件的路徑
作為守護進程後台運行 :
阿里雲伺服器默認安裝到 /user/sbin/ 目錄,進入目錄,啟動 ngnix:
Ubuntu 上配置 Nginx 也是很簡單,不要去改動默認的 nginx.conf 只需要將/etc/nginx/sites-available/default文件替換掉就可以了。
新建一個 default 文件,添加以下內容:
修改完成後重啟nginx即可。
Ubuntu 上配置 Nginx 另一種方法,cd 到 /etc/nginx/conf.d 文件夾,新建 xxx.conf 文件(xxx 可以是項目名,只要是 .conf 文件即可),寫入以下內容:
需要監聽 https 請求時,寫入以下內容:
3. 如何成為一個數據分析師需要具備哪些技能
接下來我們分別從每一個部分講講具體應該學什麼、怎麼學。
數據獲取:公開數據、Python爬蟲
如果接觸的只是企業資料庫里的數據,不需要要獲取外部數據的,這個部分可以忽略。
外部數據的獲取方式主要有以下兩種。
第一種是獲取外部的公開數據集,一些科研機構、企業、政府會開放一些數據,你需要到特定的網站去下載這些數據。這些數據集通常比較完善、質量相對較高。
另一種獲取外部數據費的方式就是爬蟲。
比如你可以通過爬蟲獲取招聘網站某一職位的招聘信息,爬取租房網站上某城市的租房信息,爬取豆瓣評分評分最高的電影列表,獲取知乎點贊排行、網易雲音樂評論排行列表。基於互聯網爬取的數據,你可以對某個行業、某種人群進行分析。
在爬蟲之前你需要先了解一些 Python 的基礎知識:元素(列表、字典、元組等)、變數、循環、函數(鏈接的菜鳥教程非常好)……以及如何用成熟的 Python 庫(urllib、BeautifulSoup、requests、scrapy)實現網頁爬蟲。如果是初學,建議從 urllib 和 BeautifulSoup 開始。(PS:後續的數據分析也需要 Python 的知識,以後遇到的問題也可以在這個教程查看)
網上的爬蟲教程不要太多,爬蟲上手推薦豆瓣的網頁爬取,一方面是網頁結構比較簡單,二是豆瓣對爬蟲相對比較友好。
掌握基礎的爬蟲之後,你還需要一些高級技巧,比如正則表達式、模擬用戶登錄、使用代理、設置爬取頻率、使用cookie信息等等,來應對不同網站的反爬蟲限制。
除此之外,常用的的電商網站、問答網站、點評網站、二手交易網站、婚戀網站、招聘網站的數據,都是很好的練手方式。這些網站可以獲得很有分析意義的數據,最關鍵的是,有很多成熟的代碼,可以參考。
數據存取:SQL語言
你可能有一個疑惑,為什麼沒有講到Excel。在應對萬以內的數據的時候,Excel對於一般的分析沒有問題,一旦數據量大,就會力不從心,資料庫就能夠很好地解決這個問題。而且大多數的企業,都會以SQL的形式來存儲數據,如果你是一個分析師,也需要懂得SQL的操作,能夠查詢、提取數據。
SQL作為最經典的資料庫工具,為海量數據的存儲與管理提供可能,並且使數據的提取的效率大大提升。你需要掌握以下技能:
提取特定情況下的數據:企業資料庫里的數據一定是大而繁復的,你需要提取你需要的那一部分。比如你可以根據你的需要提取2018年所有的銷售數據、提取今年銷量最大的50件商品的數據、提取上海、廣東地區用戶的消費數據……,SQL可以通過簡單的命令幫你完成這些工作。
資料庫的增、刪、查、改:這些是資料庫最基本的操作,但只要用簡單的命令就能夠實現,所以你只需要記住命令就好。
數據的分組聚合、如何建立多個表之間的聯系:這個部分是SQL的進階操作,多個表之間的關聯,在你處理多維度、多個數據集的時候非常有用,這也讓你可以去處理更復雜的數據。
數據預處理:Python(pandas)
很多時候我們拿到的數據是不幹凈的,數據的重復、缺失、異常值等等,這時候就需要進行數據的清洗,把這些影響分析的數據處理好,才能獲得更加精確地分析結果。
比如空氣質量的數據,其中有很多天的數據由於設備的原因是沒有監測到的,有一些數據是記錄重復的,還有一些數據是設備故障時監測無效的。比如用戶行為數據,有很多無效的操作對分析沒有意義,就需要進行刪除。
那麼我們需要用相應的方法去處理,比如殘缺數據,我們是直接去掉這條數據,還是用臨近的值去補全,這些都是需要考慮的問題。
對於數據預處理,學會 pandas 的用法,應對一般的數據清洗就完全沒問題了。需要掌握的知識點如下:
選擇:數據訪問(標簽、特定值、布爾索引等)
缺失值處理:對缺失數據行進行刪除或填充
重復值處理:重復值的判斷與刪除
空格和異常值處理:清楚不必要的空格和極端、異常數據
相關操作:描述性統計、Apply、直方圖等
合並:符合各種邏輯關系的合並操作
分組:數據劃分、分別執行函數、數據重組
Reshaping:快速生成數據透視表
概率論及統計學知識
數據整體分布是怎樣的?什麼是總體和樣本?中位數、眾數、均值、方差等基本的統計量如何應用?如果有時間維度的話隨著時間的變化是怎樣的?如何在不同的場景中做假設檢驗?數據分析方法大多源於統計學的概念,所以統計學的知識也是必不可少的。需要掌握的知識點如下:
基本統計量:均值、中位數、眾數、百分位數、極值等
其他描述性統計量:偏度、方差、標准差、顯著性等
其他統計知識:總體和樣本、參數和統計量、ErrorBar
概率分布與假設檢驗:各種分布、假設檢驗流程
其他概率論知識:條件概率、貝葉斯等
有了統計學的基本知識,你就可以用這些統計量做基本的分析了。通過可視化的方式來描述數據的指標,其實可以得出很多結論了,比如排名前100的是哪些,平均水平是怎樣的,近幾年的變化趨勢如何……
你可以使用python的包 Seaborn(python包)在做這些可視化的分析,你會輕松地畫出各種可視化圖形,並得出具有指導意義的結果。了解假設檢驗之後,可以對樣本指標與假設的總體指標之間是否存在差別作出判斷,已驗證結果是否在可接受的范圍。
python數據分析
如果你有一些了解的話,就知道目前市面上其實有很多 Python 數據分析的書籍,但每一本都很厚,學習阻力非常大。但其實真正最有用的那部分信息,只是這些書里很少的一部分。比如用 Python 實現不同案例的假設檢驗,其實你就可以對數據進行很好的驗證。
比如掌握回歸分析的方法,通過線性回歸和邏輯回歸,其實你就可以對大多數的數據進行回歸分析,並得出相對精確地結論。比如DataCastle的訓練競賽「房價預測」和「職位預測」,都可以通過回歸分析實現。這部分需要掌握的知識點如下:
回歸分析:線性回歸、邏輯回歸
基本的分類演算法:決策樹、隨機森林……
基本的聚類演算法:k-means……
特徵工程基礎:如何用特徵選擇優化模型
調參方法:如何調節參數優化模型
Python 數據分析包:scipy、numpy、scikit-learn等
在數據分析的這個階段,重點了解回歸分析的方法,大多數的問題可以得以解決,利用描述性的統計分析和回歸分析,你完全可以得到一個不錯的分析結論。
當然,隨著你實踐量的增多,可能會遇到一些復雜的問題,你就可能需要去了解一些更高級的演算法:分類、聚類,然後你會知道面對不同類型的問題的時候更適合用哪種演算法模型,對於模型的優化,你需要去學習如何通過特徵提取、參數調節來提升預測的精度。這就有點數據挖掘和機器學習的味道了,其實一個好的數據分析師,應該算是一個初級的數據挖掘工程師了。
系統實戰
這個時候,你就已經具備了數據分析的基本能力了。但是還要根據不同的案例、不同的業務場景進行實戰。能夠獨立完成分析任務,那麼你就已經打敗市面上大部分的數據分析師了。
如何進行實戰呢?
上面提到的公開數據集,可以找一些自己感興趣的方向的數據,嘗試從不同的角度來分析,看看能夠得到哪些有價值的結論。
另一個角度是,你可以從生活、工作中去發現一些可用於分析的問題,比如上面說到的電商、招聘、社交等平台等方向都有著很多可以挖掘的問題。
開始的時候,你可能考慮的問題不是很周全,但隨著你經驗的積累,慢慢就會找到分析的方向,有哪些一般分析的維度,比如top榜單、平均水平、區域分布、年齡分布、相關性分析、未來趨勢預測等等。隨著經驗的增加,你會有一些自己對於數據的感覺,這就是我們通常說的數據思維了。
你也可以看看行業的分析報告,看看優秀的分析師看待問題的角度和分析問題的維度,其實這並不是一件困難的事情。
在掌握了初級的分析方法之後,也可以嘗試做一些數據分析的競賽,比如 DataCastle 為數據分析師專門定製的三個競賽,提交答案即可獲取評分和排名:
員工離職預測訓練賽
美國King County房價預測訓練賽
北京PM2.5濃度分析訓練賽
種一棵樹最好的時間是十年前,其次是現在。現在就去,找一個數據集開始吧!!
4. Plex 使用指南之遠程訪問(正向代理)篇
遠程訪問是 Plex 的關鍵功能,它使你能夠隨時隨地瀏覽並訪問 Plex 內容,無論是在自家伺服器上還是好友共享的內容,都能伴你左右。然而,實際操作中,網路環境差異可能導致一些問題,尤其是對新手來說可能難以應對。本文將帶你了解 Plex 遠程訪問的配置流程,並提供三種主要的連接方式。
連接方式主要有三種:
公網 IP:若伺服器擁有公網 IP(靜態或動態,IPv4 或 IPv6),可通過公網 IP 加 Plex 埠直接連接伺服器,但上行帶寬受限於伺服器所在網路。
內網穿透:在伺服器沒有公網 IP 的情況下,通過內網穿透建立虛擬區域網或組網連接伺服器。連接方式與公網 IP 類似,帶寬受限於伺服器所在網路的上行帶寬;若打洞失敗,則通過中轉伺服器進行中繼和轉發,訪問帶寬受限於中轉伺服器的提供者。
Plex 中轉:如果無法直連伺服器,Plex 提供了免費中轉服務,通過伺服器間接訪問,免費用戶帶寬限制為 1 Mbps,Pass 用戶為 2 Mbps。
理想的連接方式是使用 IPv4 公網 IP,穩定且應用廣泛。如果網路沒有 IPv4 公網 IP,建議聯系運營商申請,某些地區提供免費 IPv4 動態公網 IP,而 IPv6 動態公網 IP 使用場景有一定局限性。
Plex 中轉服務意義有限,用於遠程訪問時可能僅適用於聽音樂,視頻播放可能會卡頓,帶寬限制較小。若申請不到 IPv4 公網 IP 且需要在 IPv4 網路下進行遠程訪問,建議通過內網穿透嘗試連接。
配置遠程訪問需要准備以下步驟:
- 將光貓設置為橋接模式,關閉 DHCP 服務和無線網路(可聯系運營商遠程操作),使用路由器或軟路由設置 PPPoE 撥號上網。
- 啟用 IPv6 網路,如小米路由器,進入後台設置「IPV6 網路設置」,打開「IPV6 網路設置」開關,選擇「Native」上網方式,關閉「防火牆」,設置自動配置 DNS,等待網路啟用。
- 確保 Plex 伺服器和遠程訪問客戶端設備開啟 IPv6 網路,獲取公網 IPv6 地址(國內運營商 IPv6 地址通常以 2409、2408 或 240e 開頭)。
- 啟用 Plex 伺服器的 IPv6 支持,在「設置 - 網路」中勾選「啟動支持 IPv6 的伺服器」,設置加密連接為「優先」。
- 禁用遠程訪問和中轉功能,在「設置 - 遠程訪問」中禁用,取消「啟用中轉」。
- 允許非加密連接,在所有 Plex 客戶端設置「允許非加密連接」為「始終允許」。
接下來,配置用於發現伺服器的 URL:
- 注冊域名,選擇性價比高的平台如 Spaceship、阿里雲或騰訊雲,注冊六位純數字的 xyz 域名。
- 託管域名至騰訊雲,修改 DNS 伺服器地址,確保解析成功。
- 將域名解析到 Plex 伺服器公網 IPv6 地址,通過騰訊雲控制台添加「AAAA」類型記錄。
配置動態域名解析,使用免費的 DDNS-GO 進行 IP 地址更新,確保域名解析始終有效。
完成動態域名解析後,在 Plex 的「設置 - 網路」中配置自定義伺服器訪問 URL 為「http://域名:32400」。
為提升遠程訪問安全性,配置自定義證書以使用「https」連接伺服器。通過阿里雲、騰訊雲或 Let's Encrypt 等平台申請免費 SSL 證書。
總結,通過本文的步驟配置,Plex 將能順暢地進行遠程訪問。在配置過程中,若網路環境為 IPv6,確保遠程訪問端的設備支持 IPv6,否則可能無法連接。同時,定期檢查證書狀態,以確保遠程訪問的安全性和穩定性。