VUE項目打包后發布到Docker的Nginx服務器后,基本使用正常,發現前端有一個404錯誤,但頁面顯示正常,在退出登錄后,跳轉到404頁面,便這個404頁面是nginx缺省的,并不是自己vue項目的,參考網上資料后搞定了此問題,特此記錄:
注意打包文件拷貝的目標路徑,后面的default.conf要一致,否則會有問題
FROM urbgn6za.mirror.aliyuncs.com/library/nginx
MAINTAINER Wu Jize <wujize188@163.com>
RUN rm /etc/nginx/conf.d/default.conf
ADD default.conf /etc/nginx/conf.d/
#文件拷貝到鏡像的目標路徑,后面用$uri可以訪問到,
COPY dist/ /etc/nginx/html/
Nginx啟動配置文件是default.conf文件,這個文件要特別注意格式
為一名web程序開發工程師,手上有幾個自己的站點,每天除了發布新的內容外,也會關注各自的流量變化,今日查看其中一個站點的時候,發現CNZZ統計過濾了大量PV,均來自于一個不屬于我的域名,于是將該域名放到站長工具檢測一看,好家伙,PR以及關鍵詞和我的一樣,于是訪問該域名查看源代碼仔細研究了一番,首先排除了采集的可能性,因為我全站都是絕對路徑,他的一點也沒改變,和我完全一樣。于是想到了惡意解析,翻閱了相關資料,都提到了這個原因,于是進入服務器配置一看,果不其然,沒有禁用默認的空主機頭,于是趕緊將其禁用,順便將此域名301跳轉到我的域名下面,以示“懲罰”,以下是我禁用空主機頭以及重定向的源碼
NameVirtualHost *
ServerAdmin xxx@xxx.com
DocumentRoot /404.html
ServerName www.惡意域名.com
ServerAlias 惡意域名.com
RedirectMatch permanent ^/(.*) http://www.我的域名.com/
配置完成后,重啟服務,訪問該惡意域名,順利跳轉至我的域名,大功告成!
很多建站新手,包括一些資深的研發人員把網站建設完成之后,在環境搭建的過程中可能沒有注意到,不同的服務商,可能給的基礎環境有所不同,大家拿到手之后要仔細檢查一下,惡意解析會帶來一系列的負面影響,首先是消耗你的服務器資源,占用服務器帶寬;其次是,一旦被工信部發現,這臺服務器上的域名都會受到影響,帶來很大損失。
HTTP 全稱:HyperText Transfer Protocol ,超文本傳輸協議。
HTTP 從客戶端到服務器端等一系列運作流程提供規范,是目前互聯網上使用的最廣泛的一種規范。
TCP/IP 協議族可以分為 4 層,分別是應用層、傳輸層、網絡層和鏈路層。
1. 應用層:應用服務之間的通信協議規范,如 FTP、DNS 和 HTTP 都在這層。
2. 傳輸層:傳輸層對應用層傳輸兩臺計算機之間的數據。傳輸層主要使用以下兩種協議:
3. 網絡層:網絡層對傳輸層提供的數據包進行傳送。用來處理網絡上流動的數據包,使用無連接的網際協議 IP 和許多種路由選擇協議。網絡層還有另一個任務就是選擇合適的路由。
4. 鏈路層(數據鏈路層):硬件上的處理均在鏈路層的范圍內。如:操作系統、硬件設備的驅動、網卡等。
TCP/IP 協議族分層的優點是:
TCP/IP 協議族按層次分為以下 4 層:應用層、傳輸層、網絡層和數據鏈路層。
OSI 則分為 7 層:應用層、表示層、會話層、運輸層、網絡層、數據鏈路層和物理層。
對應關系如下:
通過 TCP/IP 協議通信方式,會遵循分層的順序與對方進行通信
IP 網際協議處于網絡層,用于傳送數據包。它通過 IP 地址和 MAC 地址將數據包傳送到指定的位置。
其中 IP 地址指明了分配給節點的地址,可變化;MAC 地址指明了所屬網卡的固定地址,不可變化。
IP 之間的通信是依賴于 MAC 地址的,在網絡通信的過程中,根據 ARP (一種地址解析協議)協議,通過 IP 反查出對應 MAC 地址,再通過 MAC 地址來搜索中轉目標。
TCP 協議提供可靠的字節流服務,主要是通過采用三次握手的策略來確保傳輸數據的準確性的。
用 TCP 協議將數據包發送之后,它會向對方確認是否成功送達。握手過程中使用了 TCP 的標志(flag)——SYN(synchronize)和 ACK(acknowledgement)。
DNS 全稱為 Domain Name System。
DNS 協議與 HTTP 一樣位于應用層,主要負責將域名和 IP 之間的相互解析。
方法名稱含義GET(獲取資源)請求訪問已被 URI 標識的資源。響應返回經服務器解析后的內容POST(傳輸實體主題)GET 和 POST 都可以傳輸實體的主題,但一般使用 POST 方法來傳輸。區別在意 POST 的主要目的并不是獲取響應的主體內容。PUT(傳輸文件)用來傳輸文件。將文件內容放到請求報文的主題之中,然后放到請求的 URI 中HEAD(獲得報文首部)HEAD 方法和 GET 方法一樣,但不返回報文主體的部分。用于確認 URI 是否有效及更新資源的時間等。DELETED(刪除文件)用來刪除文件,與 PUT 方法相反。DELETED 根據請求刪除 URI 內指定的資源OPTIONS(詢問支持的方法)查詢根據請求 URI 指定的資源支持方法TRACE(路徑追蹤)讓 Web 服務器端將之前的請求返回個客戶端的方法CONNECT(用隧道協議連接代理)與代理服務器通信時建立隧道,使用 SSL 和 TLS 協議把加密后的通信內容經網絡隧道進行傳輸。
在使用 HTTP 協議建立通信之后,在沒有提出要斷開連接的時候,TCP 將一直保持連接狀態。
持久連接好處是減少了 TCP 連接的重復建立和斷開所造成的的額外開銷,減輕了服務器端的負載。而且減少重復建立連接的時間可以使 HTTP 請求和相應更早的結束,這樣 Web 頁面的加載速度也相應提高了。
HTTP 協議交互的信息被稱為 HTTP 報文。報文大致可以分為報文首部和報文主體兩塊,兩者由空行(CR+LF)來劃分,報文主體可以不要。
報文首部服務器端或者客戶端需要處理的請求或響應的內容及屬性空行(CR+LF)CR(回車)+ LF(換行)報文主體應被發送的數據(可以不要
1. 客戶端的 HTTP 報文被稱為請求報文
2. 服務器端的 HTTP 報文為響應報文
由上可知,請求報文和相應報文都是由請求行、狀態行、首部字段和其他組成。
注意:通常報文主體等同于實體主體。但是如果在傳輸的過程中進行編碼操作,實體主體的內容將發生變化,會導致它和報文主體產生差異。
可以通過首部字段 Range 來指定資源的 byte 的范圍。
1. 1001~2000 字節
?Range:bytes=1001-2000
2. 1001 以后的所有字節
Range:bytes=1001-
3. 從開始到 1000 字節和 2001~5000 的多重范圍
?Range:bytes=0-1000,2001-5000
?針對范圍請求,響應會返回狀態碼為 206 的響應報文。而對于多重范圍的范圍請求,響應會在首部字段 ContentType 標明 multipart/byteranges 后返回響應報文。
內容協商機制是指客戶端和服務器端就響應的資源內容進行交涉,然后提供給客戶端最為適合的資源。內容協商會以響應資源的語言、字符集、編碼方式等作為判斷的基準。其內容包含在首部以下字段中:Accept、Accept-Charset、Accept-Encoding、Accept-Language、Content-Language。
內容協商包括:服務器驅動協商、客戶端驅動協商和透明協商三種。
HTTP 協議無狀態在一個會話里面,不同的兩次請求彼此是不了解。
但是通過 Cookie 或者 Session 可以將狀態保存,后續訪問可能利用到前面的信息。
HTTP 狀態碼全稱:HTTP Status Code。表示服務器在響應超文本傳輸協議訪問的時候返回的狀態 3 位數字代碼。例如,當客戶端向服務端進行 HTTP 請求的時候,服務器會返回一個代碼數據來回應請求,這個代碼數據就是: HTTP 狀態碼。
HTTP 協議的請求和響應報文中必定包含 HTTP 首部。首部內容為客戶端和服務器分別處理請求和響應提供所需要的信息。
在請求中,HTTP 報文由方法、URI、HTTP 版本、HTTP 首部字段等部分構成。
在響應中,HTTP 報文由 HTTP 版本、狀態碼(數字和原因短語)、HTTP 首部字段 3 部分構成。
首部字段的主要作用:給瀏覽器和服務器提供一些必要信息,如報文主體 SIZE、語言類型、認證方式等內容。它是 HTTP 報文的組成要素之一。
首部字段構成方式:由字段名稱和字段值組成,用冒號“:”分隔。例如:Content-type:text/html。首部字段可以有多個值組成。
首部字段類型總共分為四類。如下所示:
通用首部字段
(請求報文與響應報文
都會使用的首部字段)Date創建報文時間Connection連接的管理Cache-Control緩存的控制Transfer-Encoding報文主體的傳輸編碼方式請求首部字段
(請求報文會使用的首部字段)Host請求資源所在服務器Accept可處理的媒體類型Accept-Charset可接收的字符集Accept-Encoding可接受的內容編碼Accept-Language可接受的自然語言響應首部字段
(響應報文會使用的首部字段)Accept-Ranges可接受的字節范圍Location令客戶端重新定向到的 URIServerHTTP 服務器的安裝信息實體首部字段
(請求報文與響應報文的實體
部分使用的首部字段)Allow資源可支持的 HTTP 方法Content-Type實體主類的類型Content-Encoding實體主體適用的編碼方式Content-Language實體主體的自然語言Content-Length實體主體的的字節數Content-Range實體主體的位置范圍,一般用于發出部分請求時使用
缺點:
解決方案:
1. 加密處理預防竊聽
2. 使用 SSL 可以驗證對方身份。SSL 除了具備加密處理能力,還使用了稱為證書的方法,可用于確定通信方。
3. 可以使用 MD5 和 SHA1 等散列值校驗的方法,以及用來確認文件的數字簽名方法。
非常可惜的是,以上的一些方法仍然存在很大的風險,如果想要有效地保證信息的安全性,則需要使用 HTTPS。
HTTP + 加密 + 認證 + 完整性保護 = HTTPS
1. HTTP 加上加密處理和認證以及完整性保護后即是 HTTPS
2. HTTPS 是身披 SSL 外殼的 HTTP
公開密鑰加密處理起來比共享密鑰加密方式更為復雜,因此若在通信時使用公開密鑰加密方式,效率就很低。
1. 使用公開密鑰加密方式,安全地交換在稍后的共享密鑰加密中要使用的密鑰
2. 確保交換的密鑰是安全的前提下,使用共享密鑰加密方式進行通信。
SQL 注入是一種注入攻擊。攻擊者通過將破壞性 SQL 代碼進行數據庫查詢,使攻擊者能夠完全控制數據庫資源。
XSS 全稱:跨站腳本攻擊(Cross Site Scripting)。是將前端腳本代碼插入 Web 頁面中,當用戶瀏覽頁面時,會執行嵌套在 Web 頁面里面的腳本代碼,從而達到攻擊用戶的目的。
XSS 類型包括:
CSRF:Cross-site request forgery 跨站請求偽造。
cookie 是網站利用來識別用戶的,用戶成功登陸之后瀏覽器就會得到一個 cookie 來標識其身份,在不關閉瀏覽器或者退出登錄,以后訪問這個網站會帶上這個 cookie。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。