Apache的主要目錄和配置文件詳解

来源:http://www.cnblogs.com/qianyuliang/archive/2017/05/09/6831942.html
-Advertisement-
Play Games

一、Apache 主要配置文件註釋Apache的主配置文件:/etc/httpd/conf/httpd.conf預設站點主目錄:/var/www/html/Apache伺服器的配置信息全部存儲在主配置文件/etc/httpd/conf/httpd.conf中,這個文件中的內容非常多,用wc命令統計一 ...


一、Apache 主要配置文件註釋
Apache的主配置文件:/etc/httpd/conf/httpd.conf
預設站點主目錄:/var/www/html/
Apache伺服器的配置信息全部存儲在主配置文件/etc/httpd/conf/httpd.conf中,這個文件中的內容非常多,用wc命令統計一共有1009行,其中大部分是以#開頭的註釋行。

ServerTokens OS
在出現錯誤頁的時候是否顯示伺服器操作系統的名稱,ServerTokens Prod為不顯示

ServerRoot "/etc/httpd"
用於指定Apache的運行目錄,服務啟動之後自動將目錄改變為當前目錄,在後面使用到的所有相對路徑都是想對這個目錄下

User daemon                          # apache的用戶,預設為daemon
Group daemon                         # apache的用戶,預設為daemon

PidFile run/httpd.pid
記錄httpd守護進程的pid號碼,這是系統識別一個進程的方法,系統中httpd進程可以有多個,但這個PID對應的進程是其他的父進程

Timeout 60
伺服器與客戶端斷開的時間

KeepAlive Off
是否持續連接(因為每次連接都得三次握手,如果是訪問量不大,建議打開此項,如果網站訪問量比較大關閉此項比較好),修改為:KeepAlive On 表示允許程式性聯機

MaxKeepAliveRequests 100
表示一個連接的最大請求數

KeepAliveTimeout 15
斷開連接前的時間

<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>
系統預設的模塊,表示為每個訪問啟動一個進程(即當有多個連接公用一個進程的時候,在同一時刻只能有一個獲得服務)。
StartServer開始服務時啟動8個進程,最小空閑5個進程,最多空閑20個進程。
MaxClient限制同一時刻客戶端的最大連接請求數量超過的要進入等候隊列。
MaxRequestsPerChild每個進程生存期內允許服務的最大請求數量,0表示永不結束

<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>
為Apache配置線程訪問,即每對WEB服務訪問啟動一個線程,這樣對記憶體占用率比較小。
ServerLimit伺服器允許配置進程數的上限。
ThreadLimit每個子進程可能配置的線程上限
StartServers啟動兩個httpd進程,
MaxClients同時最多能發起250個訪問,超過的要進入隊列等待,其大小有ServerLimit和ThreadsPerChild的乘積決定
ThreadsPerChild每個子進程生存期間常駐執行線程數,子線程建立之後將不再增加
MaxRequestsPerChild每個進程啟動的最大線程數,如達到限制數時進程將結束,如置為0則子線程永不結束

Listen 80
監聽的埠,如有多塊網卡,預設監聽所有網卡

LoadModule auth_basic_module modules/mod_auth_basic.so
......
LoadModule version_module modules/mod_version.so
啟動時載入的模塊

Include conf.d/*.conf
載入的配置文件

啟動服務後轉換的身份,在啟動服務時通常以root身份,然後轉換身份,這樣增加系統安全

ServerAdmin root@localhost    #管理員的郵箱,如果出現問題,會在首頁顯示

#ServerName www.example.com:80
預設是不需要指定的,伺服器通過名字解析過程來獲得自己的名字,但如果解析有問題(如反向解析不正確),或者沒有DNS名字,也可以在這裡指定IP地址,當這項不正確的時候伺服器不能正常啟動。前面啟動Apache時候提示正在啟動  httpd:httpd: apr_sockaddr_info_get() failed forjustin httpd: Could not  reliably determine the server's fully qualified domain name, using  127.0.0.1forServerName,解決方法就是啟動該項把www.example.com:80修改為自己的功能變數名稱或者直接修改為localhost

UseCanonicalName Off
如果客戶端提供了主機名和埠,Apache將會使用客戶端提供的這些信息來構建自引用URL。這些值與用於實現基於功能變數名稱的虛擬主機的值相同,並且對於同樣的客戶端可用。CGI變數SERVER_NAME和SERVER_PORT也會由客戶端提供的值來構建

DocumentRoot "/var/www/html"    # apache的預設web站點目錄路徑,結尾不要添加斜線

<Directory />     #行為對根目錄的限制
    Options FollowSymLinks   # followsymlinks表示允許使用符號鏈接,預設為禁用
    AllowOverride None     # 表示禁止用戶對目錄配置文件(.htaccess進行修改)重載,普通站點不建議開啟
</Directory>

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
對/var/www/html目錄的一個許可權的設置,options中Indexes表示當網頁不存在的時候允許索引顯示目錄中的文件,FollowSymLinks是否允許訪問符號鏈接文件。有的選項有ExecCGI表是否使用CGI,如Options  Includes ExecCGI  FollowSymLinks表示允許伺服器執行CGI及SSI,禁止列出目錄。SymLinksOwnerMatch表示當符號鏈接的文件和目標文件為同一用戶擁有時才允許訪問。AllowOverrideNone表示不允許這個目錄下的訪問控制文件來改變這裡的配置,這也意味著不用查看這個目錄下的訪問控制文件,修改為:AllowOverride  All  表示允許.htaccess。Order對頁面的訪問控制順序後面的一項是預設選項,如allow,deny則預設是deny,Allowfromall表示允許所有的用戶,通過和上一項結合可以控制對網站的訪問控制

<IfModule mod_userdir.c>
    UserDir disabled
</IfModule>
是否允許用戶訪問其家目錄,預設是不允許

#<Directory /home/*/public_html>
#    AllowOverride FileInfo AuthConfig Limit
#    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
#    <Limit GET POST OPTIONS>
#        Order allow,deny
#        Allow from all
#    </Limit>
#    <LimitExcept GET POST OPTIONS>
#        Order deny,allow
#        Deny from all
#    </LimitExcept>
#</Directory>
如果允許訪問用戶的家目錄中的網頁文件,則取消以上註釋,並對其中進行修改

DirectoryIndex index.html index.html.var    #指定所要訪問的主頁的預設主頁名字,預設首頁文件名為index.html

AccessFileName .htaccess     #定義每個目錄下的訪問控制文件名,預設為.htaccess

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>
控制不讓web上的用戶來查看.htpasswd和.htaccess這兩個文件

TypesConfig /etc/mime.types     #用於設置保存有不同MIME類型數據的文件名

DefaultType text/plain   #預設的網頁的類型

<IfModule mod_mime_magic.c>
#   MIMEMagicFile /usr/share/magic.mime
     MIMEMagicFile conf/magic
</IfModule>
指定判斷文件真實MIME類型功能的模塊

HostnameLookups Off   #當打開此項功能時,在記錄日誌的時候同時記錄主機名,這需要伺服器來反向解析功能變數名稱,增加了伺服器的負載,通常不建議開啟

#EnableMMAP off
是否允許記憶體映射:如果httpd在傳送過程中需要讀取一個文件的內容,它是否可以使用記憶體映射。如果為on表示如果操作系統支持的話,將使用記憶體映射。在一些多核處理器的系統上,這可能會降低性能,如果在掛載了NFS的DocumentRoot上如果開啟此項功能,可能造成因為分段而造成httpd崩潰

#EnableSendfile off
這個指令控制httpd是否可以使用操作系統內核的sendfile支持來將文件發送到客戶端。預設情況下,當處理一個請求並不需要訪問文件內部的數據時(比如發送一個靜態的文件內容),如果操作系統支持,Apache將使用sendfile將文件內容直接發送到客戶端而並不讀取文件

ErrorLog logs/error_log   #錯誤日誌存放的位置
LogLevel warn    #Apache日誌的級別

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
定義了日誌的格式,並用不同的代號表示

#CustomLog logs/access_log common
CustomLog logs/access_log combined
說明日誌記錄的位置,這裡面使用了相對路徑,所以ServerRoot需要指出,日誌位置就存放在/etc/httpd/logs

ServerSignature On    #定義當客戶請求的網頁不存在,或者錯誤的時候是否提示apache的版本的一些信息

Alias /icons/ "/var/www/icons/"   #定義一些不在DocumentRoot下的文件,而可以將其映射到網頁根目錄中,這也是訪問其他目錄的一種方法,但在聲明的時候切記目錄後面加”/”

<Directory "/var/www/icons">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>
定義對/var/www/icons/的許可權,修改為 Options MultiViews FollowSymLinks表示不在瀏覽器上顯示樹狀目錄結構

<IfModule mod_dav_fs.c>
     # Location of the WebDAV lock database.
     DAVLockDB /var/lib/dav/lockdb
</IfModule>
對mod_dav_fs.c模塊兒的管理

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"   #對CGI模塊兒的的別名,與Alias相似

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
對/var/www/cgi-bin文件夾的管理,方法同上

# Redirect old-URI new-URL
Redirect參數是用來重寫URL的,當瀏覽器訪問伺服器上的一個已經不存在的資源的時候,伺服器返回給瀏覽器新的URL,告訴瀏覽器從該URL中獲取資源。這主要用於原來存在於伺服器上的文檔改變位置之後,又需要能夠使用老URL能訪問到原網頁

IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
...
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
當一個HTTP請求的URL為一個目錄的時候,伺服器返回這個目錄中的索引文件,如果目錄中不存在索引文件,並且伺服器有許可顯示目錄文件列表的時候,就會顯示這個目錄中的文件列表,為了使得這個文件列表能具有可理解性,而不僅僅是一個簡單的列表,就需要前這些參數。如果使用了IndexOptionsFancyIndexing選項,可以讓伺服器針對不同的文件引用不同的圖標。如果沒有就使用DefaultIcon定義預設圖標。同樣,使用AddDescription可以為不同類型的文檔介入描述

AddLanguage ca .ca
......
AddLanguage zh-TW .zh-tw
添加語言

LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
Apache支持的語言

AddDefaultCharset UTF-8  #預設支持的語言

#AddType application/x-tar .tgz   #支持的應用如果想支持對php的解析添加這樣一行

#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
支持對以.Z和.gz.tgz結尾的文件

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
添加對上述兩種文件的應用

#AddHandler cgi-script .cgi   #修改為:AddHandler cgi-script .cgi .pl 表示允許擴展名為.pl的CGI腳本運行
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
添加動態處理類型為server-parsed由伺服器預先分析網頁內的標記,將標記改為正確的HTML標識

#ErrorDocument 404 /missing.html   #當伺服器出現404錯誤的時候,返回missing.html頁面
Alias /error/ "/var/www/error/"   #賦值別名

<IfModule mod_negotiation.c>
<IfModule mod_include.c>
    <Directory "/var/www/error">
        AllowOverride None
        Options IncludesNoExec
        AddOutputFilter Includes html
        AddHandler type-map var
        Order allow,deny
        Allow from all
        LanguagePriority en es de fr
        ForceLanguagePriority Prefer Fallback
    </Directory>
對/var/www/error網頁的許可權及操作

BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
.....
設置特殊的參數,以保證對老版本瀏覽器的相容,並支持新瀏覽器的特性

#NameVirtualHost *:80   #如果啟用虛擬主機的話,必須將前面的註釋去掉,而且,第二部分的內容都可以出現在每個虛擬主機部分。
# VirtualHost example:
#<VirtualHost *:80>
#    ServerAdmin [email protected]
#    DocumentRoot /www/docs/www.linuxidc.com
#    ServerName www.linuxidc.com
#    ErrorLog logs/www.linuxidc.com-error_log
#    CustomLog logs/www.linuxidc.com-access_log common
#</VirtualHost>
www.linuxidc.com替換為你的網址

二、Apache擴展的配置文件
$APACHE_HOME/conf/extra          # apache擴展的配置文件
[root@extra]# ll
total 56
-rw-r--r-- 1 root root  2859 Jan 10 01:49 httpd-autoindex.conf
-rw-r--r-- 1 root root  1753 Jan 10 01:49 httpd-dav.conf
-rw-r--r-- 1 root root  2344 Jan 10 01:49 httpd-default.conf
-rw-r--r-- 1 root root  1103 Jan 10 01:49 httpd-info.conf
-rw-r--r-- 1 root root  5078 Jan 10 01:49 httpd-languages.conf
-rw-r--r-- 1 root root   932 Jan 10 01:49 httpd-manual.conf
-rw-r--r-- 1 root root  3789 Jan 10 01:49 httpd-mpm.conf
-rw-r--r-- 1 root root  2207 Jan 10 01:49 httpd-multilang-errordoc.conf
-rw-r--r-- 1 root root 11185 Jan 10 01:49 httpd-ssl.conf
-rw-r--r-- 1 root root   817 Jan 10 01:49 httpd-userdir.conf
-rw-r--r-- 1 root root  1507 Jan 10 01:49 httpd-vhosts.conf # 虛擬主機配置文件


三、httpd-vhosts.conf虛擬主機配置文件註釋
[root@extra]# egrep -v "^.*#|^$" httpd-vhosts.conf |nl
     1  NameVirtualHost *:80                                # 基於名稱的虛擬主機配置( *:80表示監聽本機所有ip)
     2  <VirtualHost *:80>                                  # 定義一個虛擬主機
     3      ServerAdmin [email protected]    # 配置管理員郵箱
     4      DocumentRoot "/application/apache2.2.22/docs/dummy-host.example.com"  # 程式的站點目錄
     5      ServerName dummy-host.example.com               # 功能變數名稱服務,需要apache mode_alias模塊支持
     6      ServerAlias www.dummy-host.example.com          # 虛擬主機別名
     7      ErrorLog "logs/dummy-host.example.com-error_log"# 錯誤的日誌路徑
     8      CustomLog "logs/dummy-host.example.com-access_log" common  #訪問日誌配置(生產環境我們用combined格式代替common格式)
     9  </VirtualHost>
    10  <VirtualHost *:80>
    11      ServerAdmin [email protected]
    12      DocumentRoot "/application/apache2.2.22/docs/dummy-host2.example.com"
    13      ServerName dummy-host2.example.com
    14      ErrorLog "logs/dummy-host2.example.com-error_log"
    15      CustomLog "logs/dummy-host2.example.com-access_log" common
    16  </VirtualHost>


四、Apache服務存放站點的目錄
$APACHE_HOME/apache/htdocs              # 預設存放網頁的路徑,輸入IP 到此目錄 能夠見到it's wroks! 就是此目錄
[root@htdocs]# less  index.html
<html><body><h1>It works!</h1></body></html>




五、Apache服務目錄結構說明
[root@htdocs]# ls ../
 bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
bin啟動文件目錄說明
|-- bin                    # apache服務的命令目錄
|   |-- ab                 # http服務性能測試工具
|   |-- apachectl          # apache啟動命令
|   |-- apr-1-config      
|   |-- apu-1-config
|   |-- apxs               # http服務編譯和安裝擴展模塊使用工具,在DSO方式模塊編譯時用到
|   |-- checkgid
|   |-- dbmmanage
|   |-- envvars
|   |-- envvars-std
|   |-- htcacheclean       # 清理磁碟緩衝區的控制命令
|   |-- htdbm
|   |-- htdigest
|   |-- htpasswd           # 建立和更新基本認證文件
|   |-- httpd              # httpd為apache的控制命令程式
|   |-- httxt2dbm
|   |-- logresolve
|    -- rotatelogs         # apache自帶的日子輪詢命令(cronolog生產環境使用比較多)。


conf配置文件目錄
[root@htdocs]# ls ../conf/
extra  httpd.conf  magic  mime.types  original
/application/apache/conf/         # apache配置所有的配置文件目錄
|-- extra                         # 額外的apache配置文件目錄 如:httpd-vhost.conf
|   |-- httpd-autoindex.conf      
|   |-- httpd-dav.conf
|   |-- httpd-default.conf
|   |-- httpd-info.conf
|   |-- httpd-languages.conf
|   |-- httpd-manual.conf
|   |-- httpd-mpm.conf
|   |-- httpd-multilang-errordoc.conf
|   |-- httpd-ssl.conf
|   |-- httpd-userdir.conf
|   |-- httpd-vhosts.conf
|-- httpd.conf                     # apache主配置文件
|-- magic
|-- mime.types
|-- original
|   |-- extra
|   |   |-- httpd-autoindex.conf
|   |   |-- httpd-dav.conf                 # dav支持配置
|   |   |-- httpd-default.conf             # 這個文件里配置的是apache的相關服務參數:超時時間、保持鏈接
|   |   |-- httpd-info.conf
|   |   |-- httpd-languages.conf           # 語言支持
|   |   |-- httpd-manual.conf
|   |   |-- httpd-mpm.conf # 伺服器池管理,也是優化apache的一個配置文件(apache的模式以及配置鏈接數,常用模式為worker模式和profork模式,預設porfork)
|   |   |-- httpd-multilang-errordoc.conf
|   |   |-- httpd-ssl.conf                 # 提供apache ssl支持配置文件
|   |   |-- httpd-userdir.conf
|   |   |-- httpd-vhosts.conf              # 虛擬機的配置文件
|   |-- httpd.conf


站點存放目錄
[root@apache]# ls -l htdocs/    # 預設的首頁文件都放在此目錄當中。
total 4
-rw-r--r-- 1 root root 44 Nov 21  2004 index.html


日誌存放目錄
[root@es apache]# tree logs
logs                 # apache服務預設的日誌路徑,包括錯誤日誌和訪問日誌
|-- access_log       # apache服務訪問日誌 tail -f命令可以查看網頁用戶訪問的信息
|-- cgisock.16406    
|-- error_log        # apache服務的錯誤日誌。如:apache服務啟動故障
|-- httpd.pid        # httpd的pid文件,http進程啟動後,會把所有進程的id號寫到此文件


模塊目錄
[root@apache]# ls -l manual/     # apache的模塊目錄 如php mencache
total 2984
-rw-r--r-- 1 root root   543 May  6  2008 bind.html
-rw-r--r-- 1 root root 11422 Jan  3  2012 bind.html.de



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前段時間一個測試環境的mysql資料庫的root密碼找不到了,一個不重要的庫,安裝人員估計疏忽了...手動把密碼恢復了一下。記錄下來做個備註 1、進入my.cnf ,在[mysqld]欄位中添加 skip-grant-tables 2、重啟mysql服務 service mysqld restart ...
  • 在資料庫中,很多人員習慣使用SELECT COUNT(*)、SELECT COUNT(1)、SELECT COUNT(COL)來查詢一個表有多少記錄,對於小表,這種SQL的開銷倒不是很大,但是對於大表,這種查詢表記錄數的做法就是一個非常消耗資源了,而且效率很差。下麵介紹一下SQL Server、 O... ...
  • 問題: 兩張表 數據都非常多 A表中A1欄位 需要關聯B表主鍵 查詢 A1 欄位 存儲多個B表主鍵 格式為: 格式1:b1,b2,b3 格式2:b4 格式3:b5,b6 逗號分隔的占少數 這樣就導致在做關聯查詢時,必須使用 like '%...%', charindex ,又或者replace(A1 ...
  • " 1、視圖理論 " "1.1、視圖的存儲" "1.2、視圖的作用" "1.3、視圖的工作機制" "1.4、視圖的依賴性" "1.5、可更新的連接視圖" "1.6、內聯視圖" " 2、物化視圖 " "2.1、刷新物化視圖" "2.2、物化視圖日誌" "2.3、管理物化視圖" "2.4、物化視圖與索引 ...
  • 在ElasticSearch 2.4版本中,文檔存儲的介質分為記憶體和硬碟:記憶體速度快,但是容量有限;硬碟速度較慢,但是容量很大。同時,ElasticSearch進程自身的運行也需要記憶體空間,必須保證ElasticSearch進程有充足的運行時記憶體。為了使ElasticSearch引擎達到最佳性能,必... ...
  • 最近在學linux,使用ssh遠程登陸linux,記錄下來! 首先進入/etc目錄下,/etc目錄存放的是一些配置文件,比如passwd等配置文件,要想使用ssh遠程登陸,需要配置/etc/ssh/sshd_config文件里的配置信息,使用vim編輯,在命令行模式下輸入 vim /etc/ssh/ ...
  • 在本科期間學習過進程,網上也有很多關於進程的知識,但對於進程到底是什麼一直沒有讓我滿意的解答(以下截圖來自網路,感覺對進程理解有問題,說得也很虛)。 但今天找到這個博文感覺挺符合我的胃口:http://blog.csdn.net/yuqiang_ee_android/article/details/ ...
  • cat [功能說明] 建立文件 #cat命令用來串接文件或顯示文件內容的但是如果從標準輸入設備中讀入數據並將結果重定向到一個新的文件中,則可以到達建立新文件的目的。Cat命令只能在編輯新的文件時只能從鍵盤接收數據,不能靈活的對文件的內容編輯 因此靈活性遠遠不如專門的文本編輯工具,只能用來建立簡單的文 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...