#配置文件為mosquitto #參見mosquitto.conf(5)了解更多信息。 #顯示默認值,取消注釋以更改。 #使用#字符來表示注釋,但只有當它是 #第一個字符就行了。 #=============================================== ================ #一般配置 #================================================= ================ #重新發送出站QoS = 1或QoS = 2消息之前等待的時間(秒)。 #retry_interval 20 #$ SYS樹更新之間的時間(秒)。 #設置為0以禁用$ SYS樹的發布。 #sys_interval 10 #清除未引用消息的內部消息存儲之間的時間(秒)。較低的值將導致更低的內存使用,但更多的處理器時間,較高的值將產生相反的效果。 #設置值為0表示未被引用的消息將被盡快處理。 #store_clean_interval 10 #將進程標識寫入文件。默認是一個空白字符串,這意味着不應該寫一個pid文件。 #如果在啟動時使用init腳本和start-stop-daemon或類似程序啟動mosquitto,則應將其設置為/var/run/mosquitto.pid。 #pid_file #以root身份運行時,將此權限刪除給該用戶及其主組。 #留空以保持為root,但不建議這樣做。 #如果以非root用戶身份運行,此設置不起作用。 #注意,在Windows上這沒有任何效果,所以蚊子應該由您希望運行的用戶啟動。 #user mosquitto #當前每個客戶端的QoS 1和2消息的最大數量。 #這包括通過握手和正在重試的消息。默認為20.設置為0,無最大值。設置為1將保證QoS 1和2消息的按順序傳送。 #max_inflight_messages 20 #隊列中保持的QoS 1和2消息的最大數量超過當前正在運行的。默認為100.設置為0,無最大值(不推薦)。 #另請參見queue_qos0_messages。 #max_queued_messages 100 #當持久性客戶端被斷開連接時,設置為true以排隊具有QoS 0的消息。這些消息包含在由max_queued_messages強加的限制之內。 #默認為false。 #這是MQTT v3.1規范的非標准選項,但允許使用 #v3.1.1。 #queue_qos0_messages false #此選項設置代理將允許的最大發布有效載荷大小。 #經紀人不會接收超過此大小的收到的郵件。 #默認值為0,表示接受所有有效的MQTT消息。 MQTT的最大有效載荷大小為268435455個字節。 #message_size_limit 0 #此選項控制是否允許客戶端與零長度客戶機ID連接。此選項僅影響使用MQTT v3.1.1及更高版本的客戶端。如果設置為false,則與客戶端id的零長度連接的客戶端將被斷開連接。如果設置為true,則客戶端將被代理分配一個客戶機ID。這意味着只有清潔會話設置為true的客戶端才有用。 #allow_zero_length_clientid true #如果allow_zero_length_clientid為true,則此選項允許您將前綴設置為自動生成的客戶端ID以幫助日志中的可見性。 #auto_id_prefix #此選項允許永久性客戶端(干凈會話設置為false)被刪除,如果它們在一定時間段內未重新連接。 # #這是MQTT V3.1中的非標准選項,但在MQTT v3.1.1中允許。 # #使用隨機生成的客戶端ID時,設計糟糕的客戶端可能將清潔會話設置為false。這導致永遠不會重新連接的持久客戶端。此選項允許刪除這些客戶端。 # #過期期間應該是一個整數,然后分別是小時,日,周,月和年的h d w m y之一。例如 # #persistent_client_expiration 2m #persistent_client_expiration 14d #persistent_client_expiration 1y # #如果沒有設置,默認為永久不會過期。 #persistent_client_expiration #如果客戶端訂閱了重疊的多個訂閱,例如foo /#和foo / + / baz,那么MQTT期望當代理人收到一個與兩個訂閱(如foo / bar / baz)匹配的主題的消息時,客戶端應該只接收一次消息。 #Mosquitto跟蹤哪些客戶端已經發送了一個消息,以滿足這一要求。 allow_duplicate_messages選項允許禁用此行為,如果您有大量客戶端訂閱相同的主題集並且非常關心最小化內存使用情況,這可能會很有用。 #如果您事先知道您的客戶端將永遠不會有重疊的訂閱,則可以將其設置為true,否則即使有QoS = 2,您的客戶端也必須能夠正確地處理重復的消息。 #allow_duplicate_messages為false #=============================================== ================ #默認監聽器 #=============================================== ================ #將IP地址/主機名綁定到默認偵聽器。如果沒有給出,默認監聽器將不會被綁定到特定的地址,所以所有網絡接口都可以訪問。 bind_address ip-address /主機名 #bind_address #用於默認偵聽器的端口。 #port 1883 #允許的最大客戶端連接數。這是一個每個監聽器設置。默認值為-1,表示無限制連接。請注意,其他進程限制意味着無限連接不是真的可能。通常,可能的默認最大連接數約為1024。 #max_connections -1 #選擇聽時要使用的協議。這可以是mqtt或websockets。默認情況下,Websockets支持在編譯時被禁用。基於證書的TLS可以與websockets一起使用,但只支持cafile,certfile,keyfile和ciphers選項。 #protocol mqtt #當偵聽器使用websockets協議時,也可以提供http數據。將http_dir設置為包含要提供的文件的目錄。如果未指定此選項,則無法正常的http連接。 #http_dir #將use_username_as_clientid設置為true以替換與其用戶名連接的客戶端的clientid。這允許認證綁定到clientid,這意味着可以通過使用相同的clientid來防止一個客戶端斷開另一個客戶端。如果客戶端連接沒有用戶名,則將不會斷開連接 #將此選項設置為true時授權。不要與clientid_prefixes一起使用。另請參見use_identity_as_username。 #use_username_as_clientid #------------------------------------------------- ---------------- #基於證書的SSL / TLS支持 #------------------------------------------------- ---------------- #以下選項可用於為此偵聽器啟用SSL / TLS支持。請注意,MQTT over TLS的推薦端口為8883,但必須手動設置。 #另見mosquitto-tls手冊頁。 #必須至少定義一個cafile或capath。它們都定義了訪問已簽署服務器證書並且希望信任的PEM編碼的證書頒發機構證書的方法。 cafile定義包含CA證書的文件的路徑。 capath定義將搜索包含CA證書的文件的目錄。為了使capath正常工作,證書文件必須具有“.crt”作為文件結束,您必須在每次添加/刪除證書時運行“c_rehash <path to capath>”。 #cafile #capath #PEM編碼服務器證書的路徑。 #certfile #PEM編碼密鑰文件的路徑。 #keyfile #此選項定義要用於此偵聽器的TLS協議的版本。默認值允許v1.2,v1.1和v1.0,如果它們都是經過編譯的openssl版本都支持的。對於openssl> = 1.0.1,有效值為tlsv1.2 tlsv1.1和tlsv1。對於openssl <1.0.1,有效值為tlsv1。 #tls_version #默認情況下,啟用TLS的偵聽器將以與啟用https的Web服務器類似的方式運行,因為服務器具有由CA簽名的證書,客戶端將驗證它是否為可信證書。總體目標是加密網絡流量。通過將require_certificate設置為true,客戶端必須提供有效的證書才能繼續進行網絡連接。這允許在MQTT提供的機制之外對代理進行訪問。 #require_certificate為false #如果require_certificate為true,則可以將use_identity_as_username設置為true,以使用客戶端證書中的CN值作為用戶名。如果是這樣,密碼文件選項將不會用於此偵聽器。 #use_identity_as_username false #如果將require_certificate設置為true,則可以創建證書吊銷列表文件以撤消對特定客戶端證書的訪問。如果您這樣做,請使用crlfile指向PEM編碼的撤銷文件。 #crlfile #如果要控制使用哪種加密密碼,請使用ciphers選項。可以使用“openssl ciphers”命令來選擇可用密碼列表,並且應該以與該命令的輸出相同的格式提供。如果未設置默認為DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:@STRENGTH #ciphers DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:@STRENGTH #------------------------------------------------- ---------------- #基於預共享密鑰的SSL / TLS支持 #------------------------------------------------- ---------------- #以下選項可用於為此偵聽器啟用基於PSK的SSL / TLS支持。請注意,MQTT over TLS的推薦端口為8883,但必須手動設置。 # #另請參閱mosquitto-tls手冊頁和“基於證書的SSL / TLS支持”部分。只有一個證書或PSK加密支持可以 #為任何偵聽器啟用。 #psk_hint選項啟用此偵聽器的預共享密鑰支持,並且還作為此偵聽器的標識符。提示發送給客戶端,可以在本地使用以幫助身份驗證。提示是一個自由的字符串,本身沒有太多的意義,所以隨意做創意。如果提供此選項,請參閱psk_file來定義要使用的預共享密鑰或創建安全插件來處理它們。 #psk_hint #將use_identity_as_username設置為將客戶端發送的psk標識用作其用戶名。驗證將使用PSK而不是MQTT用戶名/密碼進行,因此password_file將不會用於此偵聽器。 #use_identity_as_username false #使用PSK時,使用的加密密碼將從可用的PSK密碼列表中選擇。如果要控制哪些密碼可用,請使用“密碼”選項。可以使用“openssl ciphers”命令來選擇可用密碼列表,並且應該以與該命令的輸出相同的格式提供。 #ciphers #=============================================== ================ #多聽眾 #=============================================== ================ #監聽端口/ ip地址組合。通過多次使用這個變量,蚊子可以在多個端口上收聽。如果使用此變量,並且既沒有bind_address也沒有給出端口,則默認監聽器將不會被啟動。必須給出要監聽的端口號。可選地,可以提供IP地址或主機名作為第二參數。在這種情況下,mosquitto將嘗試將偵聽器綁定到該地址,從而限制對相關網絡和接口的訪問。默認情況下,mosquitto會偵聽所有接口。請注意,對於Websockets偵聽器,不可能綁定到主機名。 listener port-number [ip address / host name] #listener #允許的最大客戶端連接數。這是一個每個監聽器設置。默認值為-1,表示無限制連接。請注意,其他進程限制意味着無限連接不是真的可能。通常,可能的默認最大連接數約為1024。 #max_connections -1 #監聽器可以被限制為使用mount_point選項在主題層次結構中運行。對於連接到此偵聽器的任何客戶端,實現了將mount_point字符串前綴到所有主題的前綴。這種前綴只在內部在經紀人身上發生;客戶端將看不到前綴。 #mount_point #選擇聽時要使用的協議。這可以是mqtt或websockets。基於證書的TLS可以與websockets一起使用,但只支持cafile,certfile,keyfile和ciphers選項。 #protocol mqtt #當偵聽器使用websockets協議時,也可以提供http數據。將http_dir設置為包含要提供的文件的目錄。如果未指定此選項,則無法正常的http連接。 #http_dir #將use_username_as_clientid設置為true以替換與其用戶名連接的客戶端的clientid。這允許認證綁定到clientid,這意味着可以通過使用相同的clientid來防止一個客戶端斷開另一個客戶端。如果客戶端連接沒有用戶名,則當該選項設置為true時,它將被斷開,因為未被授權。不要與clientid_prefixes一起使用。另請參見use_identity_as_username。 #use_username_as_clientid #------------------------------------------------- ---------------- #基於證書的SSL / TLS支持 #------------------------------------------------- ---------------- #以下選項可用於為此偵聽器啟用基於證書的SSL / TLS支持。請注意,MQTT over TLS的推薦端口為8883,但必須手動設置。 # #另請參見mosquitto-tls手冊頁和“基於預共享密鑰的SSL / TLS支持”部分。只有一個證書或PSK加密支持可以為任何監聽器啟用。 #必須至少定義一個cafile或capath以啟用基於證書的TLS加密。它們都定義了訪問已簽署服務器證書並且希望信任的PEM編碼的證書頒發機構證書的方法。 cafile定義包含CA證書的文件的路徑。 capath定義將搜索包含CA證書的文件的目錄。為了使capath正常工作,證書文件必須具有“.crt”作為文件結束,您必須在每次添加/刪除證書時運行“c_rehash <path to capath>”。 #cafile #capath #PEM編碼服務器證書的路徑。 #certfile #PEM編碼密鑰文件的路徑。 #keyfile #默認情況下,啟用TLS的偵聽器將以與啟用https的Web服務器類似的方式運行,因為服務器具有由CA簽名的證書,客戶端將驗證它是否為可信證書。總體目標是加密網絡流量。通過將require_certificate設置為true,客戶端必須提供有效的證書才能繼續進行網絡連接。這允許在MQTT提供的機制之外對代理進行訪問。 #require_certificate為false #如果require_certificate為true,則可以將use_identity_as_username設置為true,以使用客戶端證書中的CN值作為用戶名。如果是這樣,密碼文件選項將不會用於此偵聽器。 #use_identity_as_username false #如果將require_certificate設置為true,則可以創建證書吊銷列表文件以撤消對特定客戶端證書的訪問。如果您這樣做,請使用crlfile指向PEM編碼的撤銷文件。 #crlfile #如果要控制使用哪種加密密碼,請使用ciphers選項。可以使用“openssl ciphers”命令來選擇可用密碼列表,並且應該以與該命令的輸出相同的格式提供。 #ciphers #------------------------------------------------- ---------------- #基於預共享密鑰的SSL / TLS支持 #------------------------------------------------- ---------------- #以下選項可用於為此偵聽器啟用基於PSK的SSL / TLS支持。請注意,MQTT over TLS的推薦端口為8883,但必須手動設置。 # #另請參閱mosquitto-tls手冊頁和“基於證書的SSL / TLS支持”部分。只有一個證書或PSK加密支持可以為任何監聽器啟用。 #psk_hint選項啟用此偵聽器的預共享密鑰支持,並且還作為此偵聽器的標識符。提示發送給客戶端,可以在本地使用以幫助身份驗證。提示是一個自由的字符串,本身沒有太多的意義,所以隨意做創意。如果提供此選項,請參閱psk_file來定義要使用的預共享密鑰或創建安全插件來處理它們。 #psk_hint #將use_identity_as_username設置為將客戶端發送的psk標識用作其用戶名。驗證將使用PSK而不是MQTT用戶名/密碼進行,因此password_file將不會用於此偵聽器。 #use_identity_as_username false #使用PSK時,使用的加密密碼將從可用的PSK密碼列表中選擇。如果要控制哪些密碼可用,請使用“密碼”選項。可以使用“openssl ciphers”命令來選擇可用密碼列表,並且應該以與該命令的輸出相同的格式提供。 #ciphers #=============================================== ================ 持久性 #=============================================== ================ #如果啟用持久性,請將內存數據庫保存到每個autosave_interval秒。如果設置為0,則持久性數據庫將僅在mosquitto退出時被寫入。另請參見autosave_on_changes。請注意,持久性數據庫的寫入可以通過將蚊子發送到SIGUSR1信號來強制執行。 #autosave_interval 1800 #如果為真,mosquitto將計算訂閱更改次數,保留收到的消息和排隊消息,如果總數超過autosave_interval,則內存數據庫將被保存到磁盤。如果為false,則mosquitto會將內存數據庫保存到磁盤,方法是將autosave_interval視為一段時間。 #autosave_on_changes false 將永久消息數據保存到磁盤(true / false)。這將保存有關所有消息的信息,包括訂閱,當前正在運行的消息和保留的消息。 retain_persistence是此選項的同義詞。 #persistence false #用於持久數據庫的文件名,不包括路徑。 #persistence_file mosquitto.db #持久數據庫的位置。必須包含尾/默認是一個空字符串(當前目錄)。設置為例如/ var / lib / mosquitto /如果在Linux或類似的服務器上運行。 #persistence_location #=============================================== ================ #記錄 #=============================================== ================ #登錄的地方。對多個日志記錄目的地使用多個log_dest行。可能的目的地是:stdout stderr syslog主題文件 # #stdout和stderr登錄到命名輸出的控制台。 # #syslog使用通常結束於/ var / log / messages或類似的userspace syslog工具。 # #主題記錄到代理主題'$ SYS / broker / log / <severity>',其中severity是D,E,W,N,I,M之一,它們是調試,錯誤,警告,通知,信息和消息。消息類型嚴重性由subscribe / unsubscribe log_types使用,並將日志消息發布到$ SYS / broker / log / M / susbcribe或$ SYS / broker / log / M / unsubscribe。 # #文件目的地需要一個附加參數,這是一個要記錄的文件,例如。 “log_dest file /var/log/mosquitto.log”。當代理接收到HUP信號時,文件將被關閉並重新打開。只能配置一個文件目的地。 # #注意,如果代理作為Windows服務運行,它將默認為“log_dest none”,stdout和stderr日志都不可用。如果要禁用日志記錄,請使用“log_dest none”。 #log_dest stderr #如果使用syslog日志記錄(不在Windows上),默認情況下會將消息記錄到“守護程序”工具。使用log_facility選項來選擇local0 to local7來登錄。期權值應為整數值,例如“log_facility 5”使用local5。 #log_facility #要記錄的消息的類型。使用多個log_type行來記錄多種類型的消息。可能的類型是:調試,錯誤,警告,通知,信息,無,訂閱,取消訂閱,Websockets,所有。請注意,調試類型消息用於解碼傳入/傳出網絡數據包。他們沒有登錄“主題”。 #log_type錯誤 #log_type警告 #log_type通知 #log_type信息 #更改websockets日志記錄級別。這是一個全局選項,不可能設置每個監聽器。這是由libwebsockets解釋為lws_log_levels枚舉的位掩碼的整數。有關更多詳細信息,請參閱libwebsockets文檔。還必須啟用“log_type websockets”。 #websockets_log_level 0 #如果設置為true,客戶端連接和斷開連接消息將包含在日志中。 #connection_messages為true #如果設置為true,請為每個日志消息添加時間戳值。 #log_timestamp true #=============================================== ================ #安全 #=============================================== ================ #如果設置,只有在clientid上具有匹配前綴的客戶端將被允許連接到代理。默認情況下,所有客戶端都可以連接。例如,在這里設置“secure-”意味着客戶端“安全客戶端”可以連接,而另一個客戶端“mqtt”則不能連接。 #clientid_prefixes #布爾值,用於確定連接而不提供用戶名的客戶端是否允許連接。如果設置為false,則應創建一個密碼文件(請參閱password_file選項)來控制經過身份驗證的客戶端訪問。默認為true。 #allow_anonymous true #除了clientid_prefixes,allow_anonymous和TLS身份驗證選項之外,還可以進行基於用戶名的身份驗證。默認支持在下面的“默認身份驗證和主題訪問控制”中進行了說明。 auth_plugin允許使用其他身份驗證方法。指定可加載插件的路徑,並參閱下面的“驗證和主題訪問插件選項”部分。 #auth_plugin #------------------------------------------------- ---------------- #默認認證和主題訪問控制 #------------------------------------------------- ---------------- #使用密碼文件控制對代理的訪問。可以使用mosquitto_passwd實用程序生成此文件。如果TLS支持沒有被編譯到mosquitto(建議應該包含TLS支持),那么使用純文本密碼,在這種情況下文件應該是一個文本文件,行格式為:username:password密碼(和冒號)如果需要可以省略,盡管這提供了很少的安全性。 # #查看TLS客戶端require_certificate和use_identity_as_username選項以進行備用認證選項。 #password_file #訪問也可以使用預共享密鑰文件進行控制。這需要TLS-PSK支持和配置為使用它的偵聽器。該文件應該是格式如下的文本行:identity:key該鍵應為十六進制格式,不帶前導“0x”。 #psk_file #使用訪問控制列表文件控制代理上的主題訪問。如果定義了此參數,則只列出列出的主題。如果ACL文件的一行的第一個字符是#,則將其視為注釋。主題訪問添加了以下格式的行: # #topic [read | write | readwrite] <topic> # #訪問類型使用“讀”,“寫”或“讀寫”進行控制。此參數是可選的(除非<topic>包含一個空格字符) - 如果沒有給出,則訪問是讀/寫。 <topic>可以包含與訂閱中的+或#通配符。 # #假設allow_anonymous為true,第一組主題應用於匿名客戶端。用戶特定主題ACL在用戶行之后添加如下: # #user <username> # #這里提到的用戶名與password_file相同。這不是客戶。 # # #如果還可以根據主題中的模式替換來定義ACL。可用於變電站的模式有: # #%c以匹配客戶端%u的客戶端ID以匹配客戶端的用戶名 # #替代模式必須是層次結構級別的唯一文本。 # #表單與主題關鍵字相同,但使用模式作為關鍵字。即使先前已經提供了“user”關鍵字,模式ACL也適用於所有用戶。 # #如果使用具有用戶名和ACL的網橋,可以使用以下模式允許連接消息:pattern write $ SYS / broker / connection /%c / state # #pattern [read | write | readwrite] <topic> # #示例: # #模式寫入傳感器/%u /數據 # #acl_file #------------------------------------------------- ---------------- #驗證和主題訪問插件選項 #------------------------------------------------- ---------------- #如果使用上面的auth_plugin選項,請按照插件說明所述定義選項以傳遞給插件。使用格式auth_opt_ *命名的所有選項將被傳遞到插件,例如: # #auth_opt_db_host #auth_opt_db_port #auth_opt_db_username #auth_opt_db_password #=============================================== ================ #橋 #=============================================== ================ #橋是連接多個MQTT經紀人的一種方式。使用“連接”選項創建一個新橋,如下所述。使用剩余的參數設置橋梁的選項。您必須指定地址和至少一個要訂閱的主題。每個連接必須有唯一的名稱。地址線可以指定多個主機地址和端口。有關使用多個地址的橋接行為的更多詳細信息,請參見round_robin描述。可以通過在默認值為out的地方指定out或者兩者來選擇主題將被共享的方向。可以使用下一個主題選項指定橋接通信的QoS級別。默認QoS級別為0,為了改變QoS,也必須給出主題方向。本地和遠程前綴選項允許在橋接到/從遠程代理程序時重新映射主題。這提供了將主題樹放置在適當位置的能力。有關詳細信息,請參閱mosquitto.conf手冊頁。可以為每個連接指定多個主題,但要小心不要創建任何循環。如果您使用將cleanession設置為false(默認值),那么如果更改了您要訂閱的主題,則可能會從傳入的主題中獲取意外的行為。這是因為遠程代理保留舊主題的訂閱。如果您有這個問題,將您的網橋與cleanession設置為true,然后將cleanession設置為false正常連接。 #connection <name> #address <host> [:<port>] [<host> [:<port>]] #topic <topic> [[[out |在| both] qos-level] local-prefix remote-prefix] #設置此橋接使用的MQTT協議版本。可以是mqttv31或mqttv311之一。默認為mqttv31。 #bridge_protocol_version mqttv31 #如果一個網橋具有“out”方向的主題,那么默認的行為就是發送一個取消訂閱請求給該主題的遠程代理。這意味着將主題方向從“in”更改為“out”將不會繼續接收傳入的消息。發送這些取消訂閱請求並不總是可取的,將bridge_attempt_unsubscribe設置為false將禁止發送取消訂閱請求。 #bridge_attempt_unsubscribe true #如果橋接器在地址/地址配置中提供多個地址,那么round_robin選項可以定義橋接器故障時橋接器的行為。如果round_robin為false,則為默認值,則將第一個地址視為主橋連接。如果連接失敗,將會依次嘗試其他輔助地址。當連接到次級橋時,橋將定期嘗試重新連接到主橋,直到成功。如果round_robin為true,則所有地址都被視為等於。如果連接失敗,將嘗試下一個地址,如果成功將保持連接,直到失敗 #round_robin false #設置該橋接連接遠端使用的客戶端ID。如果未定義,則默認為“name.hostname”,其中name是連接名稱,hostname是此計算機的主機名。這替換了舊的“clientid”選項,以避免混淆。 “clientid”暫時有效。 #remote_clientid #將clientid設置為在本地代理上使用。如果未定義,則默認為“local”。<clientid>“。如果您將代理橋接到自身,那么local_clientid和clientid不重要。 #local_clientid #設置此橋接器的干凈會話變量。當設置為true時,當橋由於任何原因斷開連接時,所有消息和訂閱將在遠程代理上清除。請注意,將清理設置為true后,當橋接器在連接失敗后重新連接時可能會發送大量保留的消息。當設置為false時,訂閱和消息將保留在遠程代理上,並在橋重新連接時發送。 #cleansession false #如果設置為true,請向本地和遠程代理發布通知消息,以提供有關橋接連接狀態的信息。保留的消息被發布到主題$ SYS / broker / connection / <clientid> / state,除非使用notification_topic選項。如果消息為1,則連接處於活動狀態,如果連接失敗,則為0。 #notifications為真 #選擇發布此網橋的通知消息的主題。如果未設置,消息將在主題$ SYS / broker / connection / <clientid> / state上發布 #notification_topic #設置此橋接連接的keepalive間隔時間,單位為秒。 #keepalive_interval 60 #設置橋的起始類型。這控制了橋梁的啟動方式,可以是三種類型之一:自動,懶惰和一次。請注意,RSMB提供了第四種起始類型“手動”,目前不被蚊子支持。 # #“自動”是默認的開始類型,意味着當代理啟動時,橋連接將自動啟動,如果連接失敗,則在短時延(30秒)后重新啟動。 # #排隊消息數超過“threshold”參數設置的數字時,使用“懶惰”啟動類型的橋將自動啟動。它將在“idle_timeout”參數設置的時間后自動停止。如果希望連接只有在需要時才能處於活動狀態,請使用此啟動類型。 # #當代理啟動時,使用“一次”啟動類型的橋將自動啟動,但如果連接失敗,將不會重新啟動。 #start_type自動 #設置橋接器使用自動啟動類型的時間等待,直到嘗試重新連接。默認為30秒。 #restart_timeout 30 #設置使用延遲啟動類型的網橋在停止之前必須空閑的時間。默認為60秒。 #idle_timeout 60 #設置要重新啟動具有延遲啟動類型的網橋需要排隊的消息數。默認為10條消息。必須小於max_queued_messages。 #threshold 10 #如果try_private設置為true,橋將嘗試向遠程代理指示它不是普通客戶端的橋。如果成功,這意味着循環檢測將更有效,並且保留的消息將被正確傳播。並非所有經紀人都支持此功能,因此如果您的網橋連接不正確,可能需要將try_private設置為false。 #try_private true #設置連接到需要身份驗證的代理時使用的用戶名。這將替換舊的“用戶名”選項,以避免混淆。 “username”暫時有效。 #remote_username #設置連接到需要身份驗證的代理時使用的密碼。僅當還設置了remote_username時才使用此選項。這將替換舊的“密碼”選項以避免混淆。 “密碼”暫時有效。 #remote_password #------------------------------------------------- ---------------- #基於證書的SSL / TLS支持 #------------------------------------------------- ---------------- #必須定義bridge_cafile或bridge_capath才能啟用此橋接的TLS支持。 bridge_cafile定義包含已簽署遠程代理證書的證書頒發機構證書的文件的路徑。 bridge_capath定義將搜索包含CA證書的文件的目錄。為了使bridge_capath正常工作,證書文件必須以“.crt”作為文件結束,並且每次添加/刪除證書時都必須運行“c_rehash <path to capath>”。 #bridge_cafile #bridge_capath #遠程代理所需的PEM編碼客戶端證書的路徑。 #bridge_certfile #遠程代理所需的PEM編碼客戶端私鑰的路徑。 #bridge_keyfile #在使用基於證書的加密時,bridge_insecure禁用對服務器證書中服務器主機名的驗證。這在測試初始服務器配置時可能很有用,但是通過DNS欺騙可以讓惡意第三方冒充您的服務器。僅在測試中使用此選項。如果您需要在生產環境中使用此選項,則您的設置會出現故障,並且無需使用加密。 #bridge_insecure false #------------------------------------------------- ---------------- #基於PSK的SSL / TLS支持 #------------------------------------------------- ---------------- #預共享密鑰加密為基於證書的加密提供了替代方案。橋可以配置為使用具有bridge_identity和bridge_psk選項的PSK。這些是客戶端PSK標識,並且以十六進制格式預共享密鑰,沒有“0x”。一次只能在一個橋上使用證書和基於PSK的加密之一。 #bridge_identity #bridge_psk #=============================================== ================ #外部配置文件 #=============================================== ================ #使用include_dir選項可以包括外部配置文件。這定義了一個將要搜索配置文件的目錄。以“.conf”結尾的所有文件都將作為配置文件加載。最好將其作為主文件中的最后一個選項。此選項只能從主配置文件處理。指定的目錄不能包含主配置文件。 #include_dir #=============================================== ================ #rsmb選項 - 不太可能被支持 #=============================================== ================ #ffdc_output #max_log_entries #trace_level #trace_output