主頁 > 軟體設計 > ??周末爆肝兩天??,萬字長文,手把手教你配置CSDN主頁的獨特域名(保姆級教程,建議收藏)

??周末爆肝兩天??,萬字長文,手把手教你配置CSDN主頁的獨特域名(保姆級教程,建議收藏)

2021-09-17 09:04:04 軟體設計

目錄

一、前言

二、先解決有沒有的問題

1. 前置條件

2. 購買云服務器

3. 購買DNS域名

4. 配置Apache2服務

5. 配置云服務器的埠映射

6. 配置nginx服務

7. 配置DNS域名決議

8. 大功告成,秀一下

三、再解決為什么的問題

1. Apache2服務是個啥?

2. nginx服務又是個啥?

3. Apahe2和nginx有啥區別?

4. 什么是域名?跟IP有什么關系?

5. 域名跳轉的實作原理

6. 抓包分析

四、你一定還有很多疑問

1. 如果我沒有云服務器怎么辦?

2. 如果我沒有自己的域名怎么辦?

3. 如果我不想映射公網埠,會影響域名跳轉嗎?

4. 如果某些步驟執行完了,達不到教程的效果怎么辦?

5. 能不能只配置Apache2或者nginx就完成相應的功能?

五、更多技術、更多分享

1. 教程的組態檔下載

2. 博主VX

3. 技術交流群

4. 博主的更多網路平臺

六、參考資料




一、前言

相信經常在CSDN上更新博文的博主,一定有這么痛點:“CSDN分配的給我的主頁地址太low了,我的博文這么牛皮,難道就不值得有個專屬的域名訪問嗎?”

比如像,yyds.recan-li.cn (Recan YYDS)就能夠訪問到我的CSDN主頁,多么87V5!

你要這么說,CSDN官方還真提供了類似這樣的服務,不知道你留意過沒有?

你試下把滑鼠移到個人頭像的圖示上,有個【內容管理】,進去之后找到有一項【自定義域名】配置,不過不得不說,這個配置真的很雞肋,名字不能太短,而且你還是得和CSDN的名字系結,最可惡的是,你選好了名字之后,一點【就是它了】,居然自動給你跳轉到購買會員頁面,言下之意,沒錢你玩個jj,所以你懂的!

OK,扯了這么多,有沒有什么辦法,繞過CSDN,搞一個高大上的域名地址呢?方法當然有,且聽下文分解,保姆級教程,手把手教你配置,你也可以擁有獨一無二且牛逼哄哄的自定義CSDN域名,



二、先解決有沒有的問題



1. 前置條件

要達到類似開頭說的功能,訪問 yyds.recan-li.cn 就能訪問到自己的CSDN主頁,你得具備以下幾個條件:

l 有點Linux服務器命令列的基礎,能夠操作基本的命令列配置(編輯、修改、洗掉);

l 你得擁有一臺具備公網IP地址的Linux(云)服務器,推薦使用Ubuntu版本;

l 你得擁有一個屬于你自己的DNS域名;

l 你得懂一些網路通訊的基礎知識,至少要知道IP、域名、埠、監聽、服務器、客戶端這些基本概念,



2. 購買云服務器

購買云服務很簡單,如果你僅僅是為了建站玩一玩自己的博客,配置選最低一點就好了,基本都夠用,國內網路環境下,首推阿里云、騰訊云、華為云這些大廠的云服務器,

一般這種配置低的服務器,價格都是比較便宜的,碰到打折促銷或者是新用戶的下單,往往更加便宜,大概也就是100塊一年吧,

購買這些云服務器基本都是傻瓜式0配置的,下單購買之后,即可在線自動配置,隨后在你的購買賬號下(比如我購買的是阿里云服務器,就在我的阿里云賬戶下),有個控制臺,點進去就可以看到你購買的云服務器了,有登錄密碼、公網IP地址之類的重要資訊,

一般來說,選購的云服務器都是沒有運行界面的,只有命令列,可以通過SSH遠程登錄,

這里推薦Ubuntu的Linux發行版本,對初始用戶還是比較友好的,

具體如何通過SSH登錄服務器,這里就不敘述了,很容易就學會的,

再次強調下,這一步驟,主要為了獲得一個具備公網IP訪問的公有云服務器,



3. 購買DNS域名

購買DNS域名,與購買云服務器類似,也可以選主流的阿里云、騰訊云、華為云等服務器上,當然如果你首次購買,建議你同樣選擇云服務器那個服務商,這樣你就只需要登入一個賬戶就可以看到你的云服務器和DNS域名,

當然你可以單獨選另一家服務商,比如我的就選了華為云的DNS域名,

購買,配置,登錄都類似,只不過在勾選域名的時候,需要你指定你的域名后綴,不同型別的后綴價格不一樣,而且有可能你想用的域名后綴已經被人選了,這也是為何會有【域名投資】這種玩法的出現,就是瘋狂去搶注域名,等別人要用的時候,只能向你購買轉讓,畢竟域名是唯一的,

我的域名服務(華為云)控制臺界面,每個服務商提供的界面應該都是類似的,

再次強調下,這一步驟,主要為了獲得一個具備你個人標識的獨一無二的域名地址,

推薦個華為云域名服務,還真的很便宜:

域名建站專場_域名購買_域名優惠活動_域名注冊_域名申請_域名特惠_網站建設-華為云



4. 配置Apache2服務

Apache2服務是什么,我先不做具體敘述,后面會詳講,這一步我主要先把Aapche2服務給搭起來,

在主流的Linux發行版里面,使用命令列就可以在線安裝這個服務,

比如我使用的是Ubuntu Linux,它的安裝命令就是:

sudo apt-get install apache2

注意如果你是普通用戶的話,一定要使用sudo權限才能安裝成功,

輸完密碼之后,根據提示就可以很順利地把Apache2服務安裝好,

下面開始配置Apache2服務,它的組態檔位于/etc/apache2/目錄下:

配置程序中,我們有3個地方需要配置:ports.conf、sites-enabled、sites-available;

先說ports.conf的配置:

用vim打開它,默認它是監聽80埠的,我們先把它注釋掉,換成監聽8101埠,這個埠就是專門為CSDN主頁跳轉使用的,因為80埠后面的nginx服務需要使用,

修改好的內容如下所示:

# If you just change the port or add more ports here, you will likely also

# have to change the VirtualHost statement in

# /etc/apache2/sites-enabled/000-default.conf



#Listen 80



#csdn port

Listen 8101



<IfModule ssl_module>

        Listen 443

</IfModule>



<IfModule mod_gnutls.c>

        Listen 443

</IfModule>



# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

再看site-enabled目錄的配置,先進到這個目錄,里面只有2個檔案:

由于我們先不考慮ssl訪問,所以ssl那個組態檔先不用動,

我們在這個目錄下新建一個組態檔叫001-csdn.conf,里面的內容如下:

<VirtualHost *:8101>

        # The ServerName directive sets the request scheme, hostname and port that

        # the server uses to identify itself. This is used when creating

        # redirection URLs. In the context of virtual hosts, the ServerName

        # specifies what hostname must appear in the request's Host: header to

        # match this virtual host. For the default virtual host (this file) this

        # value is not decisive as it is used as a last resort host regardless.

        # However, you must set it for any further virtual host explicitly.

        #ServerName www.example.com



        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/csdn/html



        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,

        # error, crit, alert, emerg.

        # It is also possible to configure the loglevel for particular

        # modules, e.g.

        #LogLevel info ssl:warn



        ErrorLog ${APACHE_LOG_DIR}/csdn_error.log

        CustomLog ${APACHE_LOG_DIR}/csdn_access.log combined



        # For most configuration files from conf-available/, which are

        # enabled or disabled at a global level, it is possible to

        # include a line for only one particular virtual host. For example the

        # following line enables the CGI configuration for this host only

        # after it has been globally disabled with "a2disconf".

        #Include conf-available/serve-cgi-bin.conf

</VirtualHost>



# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

其中虛擬主機的埠號8101一定得是ports.conf里面配置的,要對得上,然后這個虛擬主機的站點檔案是位于/var/www/csdn/html目錄下,

下面我們就去這個站點目錄撰寫我們的站點檔案,也就是我們常說的html檔案,

首先/var/www/csdn/html目錄開始是不存在的,你需要使用以下命令重新建立:

mkdir -p /var/www/csdn/html

然后進到這個目錄,創建一個叫index.html的檔案,里面的內容如下:

<!DOCTYPE html>

<html>

        <script>

                    window.location.href="https://blog.csdn.net/szullc";

        </script>

         

        <body>

        </body>

         

</html>

藍色部分替換成你的CSDN主頁即可,

為什么檔案名叫index.html,是因為一般的網路站點都會自動找站點目錄下有沒有index.html,

到這一步,Aapche2服務基本就配置好,我們需要使用以下命令重啟下服務,使得剛剛的配置生效,

sudo /etc/init.d/apache2 restart (注意使用sudo權限)

提示成功之后,服務就跑起來了,

為了保險起見,我們可以確認下我們監聽的8101埠是否處于監聽狀態,

使用如下命令查看:

netstat -an | grep 8101

當你看類似如下的LISTEN字樣時,表示它處于正常的監聽狀態,也就證明我們的Aapche2服務已經跑起來了,

這時,如果你是本地服務器配置的,比如通過虛擬機工具搭建的服務器,有瀏覽器的話,輸入http://127.0.0.1:8101就可以正常跳轉到你的CSDN主頁了,

但是我們購買的是云服務器,只有命令列,沒有瀏覽器怎么辦?你可以使用命令訪問下,看下Apache2服務回傳是否正常:

curl http://127.0.0.1:8101

如果你能看到這樣的回傳,就是把你上面的index.html的內容回傳給你,證明運行是完全OK的,

但,我們不是買具備公網IP的服務器嗎?我們能不能通過公網IP訪問而不是127.0.0.1這種回環IP訪問呢?我們試試看,假如我的公網IP是8.23.56.89,那么訪問地址就是:

curl http://8.23.56.89:8101 (記得更換成你自己的IP)

你會發現訪問超時,無法訪問,類似這樣的錯誤,

或者使用windows的瀏覽器直接訪問:http://8.23.56.89:8101 (記得更換成你自己的IP)

同樣也是超時,無法訪問,

為什么啊?

我的8101埠明明處于監聽狀態啊?

原因就是公網IP的埠映射問題,

你可以通過公網IP的22埠SSH登錄你的服務器,那是因為云服務器提供商默認幫你把22埠映射好了,至于其他的一些埠,默認都是沒有對外映射的,也就是說如果你想通過公網IP+埠的形式訪問你的服務器,你必須保證這個埠有被映射出來

如何配置埠映射,請看下一章節,



5. 配置云服務器的埠映射

首先登錄你的云服務器賬戶,你在哪個平臺購買的就登錄哪個,

下面以我的阿里云服務器為例來講解,其他云服務器也類似,可能就是配置的選單有所變化而已,

找到云服務器ECS,點進去:

找到安全組那一欄,點進去:

找到配置規則,點進去:

找到入方向-》手動添加,點進去:

之后,下面會多出一行埠配置,參考如下來填寫:

因為后面也需要用到80埠,所以干脆在這里一同把80埠也給配置了,如下:

如上配置成功之后,我們再試下使用公網IP加埠的方式訪問:

curl http://8.23.56.89:8101 (記得更換成你自己的IP)

可以訪問成功了,證明8101的埠映射已經OK了,

或者使用windows的瀏覽器直接訪問:http://8.23.56.89:8101 (記得更換成你自己的IP)

這時候應該可以正常跳到你的CSDN主頁了,

OK,離最終的目標已經很接近了,



6. 配置nginx服務

nginx服務是什么,這里先不做敘述,下文會詳講,

配置nginx服務,與配置Apache2服務類似,也需要先安裝nginx服務,

在ubuntu下使用以下命令安裝,注意使用sudo權限:

sudo apt-get install nginx

注意如果你是普通用戶的話,一定要使用sudo權限才能安裝成功,

輸完密碼之后,根據提示就可以很順利地把nginx服務安裝好,

下面開始配置nginx服務,它的組態檔位于/etc/nginx/目錄下:

在這個目錄下,有個nginx.conf組態檔,我們用vim打開它,發現它有一行:

include /etc/nginx/conf.d/*.conf;

所以它的組態檔,主要位于/etc/nginx/conf.d/目錄下,

默認情況下,它里面是沒有組態檔的,我們在這個目錄下建立一個csdn的組態檔,取名叫001-csdn.conf(主要時后綴一定得是.conf),里面的配置內容如下:

# forward for CSDN

server {

    listen 80;



    server_name csdn.recan-li.cn blog.recan-li.cn yyds.recan-li.cn; # config domain



    location / {

        proxy_pass http://localhost:8101;

    }



}

尤其要注意藍色部分,

server_name那里就是配置你的需要由什么域名訪問進來,這里可以寫多個域名,每個域名以空格隔開;像我這里就寫了三個,也就是說,正常配置好了之后,這三個域名都可以達到跳轉的目的,這里的域名記得替換成你想使用的跳轉域名,也就是你自己域名下的yyds.xxx.com,

下面那個proxy_pass就是設定跳轉的代理服務,還記得我們上面配置Apache2的CSDN站點,使用的是8101埠,而localhost其實就是127.0.0.1;所以http://localhost:8101就是跳轉到訪問Apache2配置的CSDN站點去了,

這里還有埠的配置,nginx默認就是80埠,而且在上一步中我們已經把80埠的映射打開了,所以不用管它了,

配置好了之后,重啟下nginx服務,使用以下命令;

sudo /etc/init.d/nginx restart (注意使用sudo權限)

提示成功表示服務重啟成功了,

為了保險起見,我們還是查一下80埠是否正常處于監聽狀態,使用命令查看:

netstat -an | grep 80

當你看到圖中類似的字樣,表示監聽正常,

既然nginx已經啟動成功了,那我們試一下yyds.recan-li.cn跳轉是否正常?

嗯哼?怎么回事?無法訪問此界面?

仔細看下,原來是域名地址的決議還沒配置,決議失敗了!

不然,我怎么會說一定要有自己的域名呢?

這可是非常關鍵的一步,且看下文步驟,



7. 配置DNS域名決議

配置DNS域名,需要登錄你購買的域名決議的賬戶,是阿里云賬戶就登錄阿里云,

下面我以華為云的為例,講解下我的域名如何配置,其他云服務器提供商的配置方法都類似,

首先登錄賬戶,進入到控制臺界面,找到你的【域名注冊】服務:

找到【決議】這一按鈕,點進去:

找到【管理決議】,點進去:

找到【添加記錄集】,點進去:

填寫決議記錄,參考如下:

這里我們可以取自己想取的名字,比如niupi等等,注意域名的后半部分都是確定的,那是由你購買的域名決定的,

選決議型別,選A類決議即可,

值里面填你的公網IP地址,保存就可以了,

配置好了之后,我們可以試下這個域名是否能正常決議到你配置的IP,使用cmd的ping命令:ping yyds.recan-li.cn

當你能看到你的公網IP的時候,證明決議成功了,

這里需要注意的是,配置好域名,它是不會立即就生效的,需要等點時間,一般5分鐘之后,決議就可以,



8. 大功告成,秀一下

把域名決議這最后一步搞定了,基本就已經全部配置好了,

我們來體驗下:

OK,大家可以看到,成功達到跳轉的目的,一起秀起來吧!



三、再解決為什么的問題



1. Apache2服務是個啥?

Apache HTTP Server(簡稱Apache)是Apache軟體基金會的一個開放原始碼的網頁服務器,是目前世界上使用最廣泛的一種web server,它以跨平臺,高效和穩定而聞名,可以運行在幾乎所有廣泛使用的計算機平臺上,Apache的特點是簡單、速度快、性能穩定,并可做代理服務器來使用,

Apache2是apache的2.x版本,

Apache是用C語言開發的基于模塊化設計的web應用,總體上看起來代碼的可讀性高于php代碼,它的核心代碼并不多,大多數的功能都被分割到各種模塊中,各個模塊在系統啟動時按需載入,

支持SSL技術,支持多個虛擬主機,Apache是以行程的Prefork模式(還有基于執行緒的Worker模式)為基礎的結構,行程要比執行緒消耗更多的系統開支,不太適合于多處理器環境,因此,在一個Apache Web站點擴容時,通常是增加服務器或擴充群集節點而不是增加處理器,

簡單一點就是:它是一個HTTP服務器(WEB服務器),客戶端(比如瀏覽器)可以通過HTTP協議訪問它;并且它還支持虛擬主機技術,本教程中的配置就是利用這個虛擬主機技術進行配置,



2. nginx服務又是個啥?

nginx是一款自由的、開源的、高性能的HTTP服務器和反向代理服務器;同時也是一個IMAP、POP3、SMTP代理服務器;Nginx可以作為一個HTTP服務器進行網站的發布處理,另外Nginx可以作為反向代理進行負載均衡的實作,

簡單來說,它就是:一個輕量級的HTTP服務器,但可以支持反向代理功能;本教程的配置就是利用了nginx的反向代理功能,可以參考后面的參考資料,有細講nginx的反向代理是怎么回事,



3. Apahe2和nginx有啥區別?

我不是專業的,找了一篇講得比較清晰的文章,大家可以參考下:

Nginx 和 Apache 區別最全詳解? - 云+社區 - 騰訊云



4. 什么是域名?跟IP有什么關系?

域名(英語:Domain Name),又稱網域,是由一串用點分隔的名字組成的Internet上某一臺計算機或計算機組的名稱,用于在資料傳輸時對計算機的定位標識(有時也指地理位置),

由于IP地址具有不方便記憶并且不能顯示地址組織的名稱和性質等缺點,人們設計出了域名,并通過網域名稱系統(DNS,Domain Name System)來將域名和IP地址相互映射,使人更方便地訪問互聯網,而不用去記住能夠被機器直接讀取的IP地址數串,

盡管IP地址能夠唯一地標記網路上的計算機,但IP地址是一長串數字,不直觀,而且用戶記憶十分不方便,于是人們又發明了另一套字符型的地址方案,即所謂的域名地址,IP地址和域名是一一對應的,這份域名地址的資訊存放在一個叫域名服務器(DNS,Domain name server)的主機內,使用者只需了解易記的域名地址,其對應轉換作業就留給了域名服務器,域名服務器就是提供IP地址和域名之間的轉換服務的服務器,

本教程就是通過購買一個域名服務,然后自定義一個子域名來達到訪問跳轉主頁的需求,



5. 域名跳轉的實作原理

有了上面的預備知識,到這我來講下實作自定義域名來跳轉到CSDN主頁的原理就比較容易了,

注意,等你真正理解并學會了這里的配置方法,你可以實作任意域名(當然域名后綴得是你的)跳轉到你的任意社交主頁,比如我的知乎主頁 (zhihu.recan-li.cn),我的github主頁(github.recan-li.cn),我的gitee主頁(gitee.recan-li.cn),

整一個跳轉的原理如下圖所示:

實作跳轉主要有以下幾步:

1) 瀏覽器輸入自定義的域名:yyds.xxx.com

2) 經過域名服務器,決議成公網IP,這個IP就是云服務器的公網IP;

3) 取得IP后,加上默認的HTTP埠80,再在HTTP報文頭添加hostname欄位,欄位填寫自定義的域名,對nginx服務發起HTTP連接;

4) nginx收到請求后,識別HTTP報文頭的Host欄位,然后于nginx的虛擬主機組態檔中的server_name一個個比對,當識別到對應的server之后,執行代理服務訪問,訪問的地址由proxy_pass指定;這一步驟就是nginx的反向代理的關鍵步驟;

5) 接著nginx的代理就訪問到Apache2架起的HTTP服務,把其對應的index.html通過代理的形式回傳,一直回傳到瀏覽器中;

6) 瀏覽器收到index.html的內容后,開始決議;其中有一個html的腳本:

window.location.href="https://blog.csdn.net/szullc";

瀏覽器就會執行“地址重定向”,相當于重新把這個href的url放到瀏覽器的地址欄進行 跳轉,這一步是html語法定義的,瀏覽器會自動執行的,無需人工干預;

7) 瀏覽器取得需要跳轉的url后,也同樣需要發起域名決議,經過域名服務器取得對應服務器的IP地址,然后根據是HTTP還是HTTPS,分別添加80或443埠,訪問真實的服務器,也就是對應我們要跳轉到的主頁;

8) 待瀏覽器重新跳轉完成之后,就會看到對應的主頁就顯示出來了,也就是上面展示的那種效果,



6. 抓包分析

為了進一步驗證上面的原理,我們來嘗試抓一下網路通訊報文,通過報文一看,便一目了然,任何跳轉都逃不過網路報文的法眼,

這里需要用到的工具是wireshark抓包工具,關于wireshark工具,我這里可以簡單介紹一下:

Wireshark(前稱Ethereal)是一個網路封包分析軟體,網路封包分析軟體的功能是截取網路封包,并盡可能顯示出最為詳細的網路封包資料,Wireshark使用WinPCAP作為介面,直接與網卡進行資料報文交換,

網路管理員使用Wireshark來檢測網路問題,網路安全工程師使用Wireshark來檢查資訊安全相關問題,開發者使用Wireshark來為新的通訊協定除錯,普通使用者使用Wireshark來學習網路協定的相關知識,當然,有的人也會“居心叵測”的用它來尋找一些敏感資訊……

Wireshark不是入侵偵測系統(Intrusion Detection System,IDS),對于網路上的例外流量行為,Wireshark不會產生警示或是任何提示,然而,仔細分析Wireshark擷取的封包能夠幫助使用者對于網路行為有更清楚的了解,Wireshark不會對網路封包產生內容的修改,它只會反映出流通的封包資訊, Wireshark本身也不會送出封包至網路上,

具體如何操作wireshak來抓取網路,大家可以參考這里的教程:

https://jingyan.baidu.com/article/8cdccae9385fe9315413cda6.html

這里我直接把我這邊抓到的通訊報文放這里,

訪問CSDN主頁網路抓包-網路安全檔案類資源-CSDN下載

感興趣的可以拿來分析分析,

通過分析報文,發現真正的訪問程序比我描述的步驟還要多一些,但大體還是按照我說的這個流程來的,

以下做一下簡要的步驟分析:

1) 決議yyds.xxx.com域名,獲取IP;

2) 發起HTTP請求,注意HTTP頭部填充了Host欄位,往對應IP的80埠(HTTP默認埠)發起GET請求;

3) nginx識別到請求,根據Host的值進行反向代理,回傳對應的index.html;由于這一步是在服務器完成的,所以抓包里面無法體現;

4) 瀏覽器取得index.html,進行二次訪問;首先也得決議域名,拿到服務器的IP;

5) 取得IP后,根據是訪問的URL是HTTP還是HTTPS,加上80或443埠,發起連接訪問,最后成功回傳主頁的內容,



四、你一定還有很多疑問



1. 如果我沒有云服務器怎么辦?

如果你只有自己的域名,但沒有自己的公網IP云服務器,那么你需要找一個別人有云服務器的朋友(比如我),幫你配置一個埠,然后把埠對應的Apache2服務站點的index.html跳轉到你的CSDN主頁,同時在nginx中將server_name配置成你的域名地址,這樣就可以了,

說白了,就是重新走了一遍配置程序,這些配置對于云服務器是沒有增加多大壓力的,只不過增加了幾個埠的跳轉而已,

如果有此需求的朋友,可以關注我的主頁,然后私信我,我幫你搞定,



2. 如果我沒有自己的域名怎么辦?

對不起,如果沒有域名的話,就只有通過IP加埠的方式來訪問了;雖然通過域名最終也都是IP和埠進行通訊,但是使用IP和埠的方式,有個致命的弱點就是需要記住IP和埠,而這些東西都是一串數字,不具備很好的記憶條件,

所以,為了方便,還是建議你買一個域名,域名不貴但是很值,



3. 如果我不想映射公網埠,會影響域名跳轉嗎?

如果不希望別人通過公網IP加埠就訪問到我的服務,那是不是可以把配置的映射埠給洗掉了?這樣會不會影響域名跳轉呢?

這種情況下,你可以刪掉這個埠的映射的,因為在我們的方案里面,是先通過80埠訪問nginx服務,然后nginx根據傳入的Host欄位,再由代理轉發到指定的埠(埠是由Apache2服務在監聽的),由于nginx和Apache2是在同一臺機器上,所以可以通過127.0.0.1:xxx的訪問方式,也就是內網訪問的方式來訪問,這樣這個xxx埠就不需要映射到公網,跳轉也是沒有問題的,



4. 如果某些步驟執行完了,達不到教程的效果怎么辦?

這里給大家提供幾個排查的方法,也就是幾個問題需要重點關注:

1) 安裝好了Apache2,如果確保這個服務行程已經正常運行?

使用命令:ps -ef | grep apache2 確認下apache2的行程是否正常運行

2) 配置好了Apache2的CSDN站點,如果確保服務已經正常運行?

使用命令:netstat -an | grep 8101

埠號就使用你自己配置的那個,確認下埠是否處于LISTEN狀態,

還可以使用curl http://127.0.0.1:8101

確認下index.html能否正常取到,

3) 配置好了Apache2的CSDN站點,通過公網加埠的方式無法訪問,

確認下云服務器的公網埠映射是否配置成功?

4) 安裝好了nginx,如果確保服務行程已經正常運行?

使用命令:ps -ef | grep nginx 確認下nginx的行程是否正常運行

5) 配置好了nginx的虛擬主機,如果確保服務已經正常運行?

使用命令:netstat -an | grep 80

埠號默認就是80,確認下80埠是否處于LISTEN狀態,

6) 使用我的域名無法決議,提示DNS決議失敗,

確認下DNS域名決議配置是否正確,另外,是否有等5分鐘以上,以便于域名決議生效,

可以使用ping命令ping一下你的域名,正常是可以ping通的,

7) 域名可以決議,但是無法正常跳轉到CSDN主頁,

這里需要先確認下nginx的虛擬主機配置的server_name串列里面是否有你要跳轉的域名;

其次需要確認下nginx配置中跳轉到Apache2的埠是否正確,

以上這些簡單的排查方法,基本就可以解決你遇到的問題了,



5. 能不能只配置Apache2或者nginx就完成相應的功能?

在我目前的認知里面,應該是可行的,一定程度上,Apache2和nginx的功能有重復的部分,

一開始我也是只配置Apache2,它的組態檔里面也有一個ServerName 欄位,理論上可以這里填上你的訪問域名,然后虛擬主機的監聽埠改為80,應該是可以跑通的,

單配置nginx來實作,也是類似的,

但是可能我操作的程序中哪里搞錯了,最終沒有配置成功,

后面才想到這個Apache2+nginx的組合來完成我的需求,這么搞是已經達到我的目的了,畢竟我不是專業配置這個的,還需要多學習學習,以后有機會再試試單獨使用一個服務來完成,

如果有單用Apache2或nginx就完成了這個需求的朋友,歡迎分享你的配置方法,不甚感激,



五、更多技術、更多分享



1. 教程的組態檔下載

本教程中的所有組態檔,我可以毫無保留地分享給大家,包括Apache2的組態檔、csdn跳轉的站點組態檔、nginx的配置的檔案、Apache2和nginx的啟動停止腳本等等,

這些組態檔是我的主機上真實在用的組態檔,理論上拿到之后,修修改改,換成自己的配置就能用的,歡迎添加我的VX,我私發給你,

組態檔壓縮包參考圖:



2. 博主VX

博主專注于嵌入式IoT領域,深耕多年,目前在做一些軟體架構設計的作業,平時作業中也會深挖一些關聯領域的知識,比如Python,比如網路通訊,歡迎大家找我探討技術,知無不答,

添加我VX,請備注【CSDN】,謝謝,



3. 技術交流群

為了方便讀者朋友們一起交流技術,我特意組建了一個CSDN技術交流VX群,歡迎大家加入討論技術,



4. 博主的更多網路平臺

歡迎大家來交流,,

1) 個人博客網站:http://www.recan-li.cn

2) CSDN:http://csdn.recan-li.cn

3) 知乎:http://zhihu.recan-li.cn

4) 新浪微博:http://weibo.recan-li.cn

5) gitee碼云:http://gitee.recan-li.cn

6) github:http://github.recan-li.cn

7) 簡書:http://jianshu.recan-li.cn

8) 掘金:http://juejin.recan-li.cn



六、參考資料

1) Apache官網:Welcome to The Apache Software Foundation!

2) Apache的介紹:Apache服務一簡介與安裝_南風喃的博客-CSDN博客_apache服務

3) nginx官網:nginx news

4) nginx是什么?Nginx是什么?能干嘛?_代理

5) 使用nginx實作反向代理:使用Nginx實作反向代理_飯桶一生奮斗-CSDN博客_nginx反向代理

6) Apache和nginx的區別詳解:Nginx 和 Apache 區別最全詳解? - 云+社區 - 騰訊云

7) wireshark官網:Wireshark · Go Deep.

8) wireshark百度百科:Wireshark_百度百科

9) wireshark抓包教程:https://jingyan.baidu.com/article/8cdccae9385fe9315413cda6.html

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/300714.html

標籤:其他

上一篇:60道計算機網路面試題(附答案,背誦版)

下一篇:暢購商城專案(面試版)一

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more