輕量web伺服器開發日記05 配置檔案的實現

2021-07-12 02:10:36 字數 1606 閱讀 3537

配置檔案是伺服器必不可少的主要模組之一,它記錄著伺服器的初始化的相關引數,例如伺服器的埠和ip值,工作程序數目,工作根目錄等,而在目前三大伺服器(apache lighttpd nginx)的配置檔案中會有更多更複雜的引數,使得伺服器與該使用者的互動性大大的提高。

在之前的日記中所介紹的記憶體池的塊大小和數目以及伺服器的根目錄的值是從配置檔案上讀取的。若大家需要移植該配置檔案,只需要修改下面部分**即可。現在我介紹一下配置檔案的實現。

先看看存放配置檔案資訊的結構體實現:

typedef

struct server_config;

而讀取配置檔案資訊的操作:

server_config *read_server_config()

while((len = fread(readline,1,100,fp)) > 0)

else

if(readline[i] == ':' || readline[i] == '=')

else

if(readline[i] == '\n')

else

if(strcmp("port",key) == 0)

else

if(strcmp("docroot",key) == 0)

else

if(strcmp("logfile",key) == 0)

else

if(strcmp("memblock_size",key) == 0)

else

if(strcmp("mempool_size",key) == 0)

else

if(strcmp("worker_num",key) == 0)

else

v_index = 0;

flag = 0;

}else

if(flag)

else}}

if(flag)

else

if(strcmp("port",key) == 0)

else

if(strcmp("docroot",key) == 0)

else

if(strcmp("logfile",key) == 0)

else

if(strcmp("memblock_size",key) == 0)

else

if(strcmp("mempool_size",key) == 0)

else

if(strcmp("worker_num",key) == 0)

else

}if(!temp->port || !strlen(temp->bindip) || !strlen(temp->docroot) || !strlen(temp->workdir) || !strlen(temp->logfile))

return temp;

}

而配置檔案(test.conf)的格式例子如下:

port:8086

ip:192.168.1.2

docroot:/www

logfile:/weblog/test.log

worker_num:5

輕量web伺服器開發日記09 日誌檔案的實現

主流的伺服器都標配乙個日誌檔案,其檔案用於記錄伺服器執行的日常資訊,例如某個時間段的使用者請求連線數 訪問檔案統計數 成功或完成請求連線數 伺服器出錯資訊等等 該檔案主要幫助伺服器管理員更好地了解伺服器的運 況。具體操作函式實現 1 開啟日誌檔案 int log file open const ch...

騰訊雲 輕量伺服器 體驗

例項規格 cpu 1核 記憶體 2gb 磁碟 系統盤 40gb 流量包 頻寬 3mbps,流量包 500gb 月 3年253塊,跟以前買的 雲伺服器cvm 標準型sa2,1核2g,一年350,相比便宜很多。記錄下對比體驗。開啟ssh客戶端,連線,跟 sa2 的北京節點一樣,基本秒連。進入 ssh,打...

WEB伺服器部署日記

近日朋友想開乙個論壇,他對這方面的東西不太懂 叫我幫忙弄乙個 跟他一商量,決定用他的新機器做伺服器 p4 2.4g ddr400 512m 的記憶體 其他配置忘了 使用在網上down的 dvbbs 7 sp2 sql版本 幾下把系統和sqlserver裝好,打好補丁,配好iis,裝上天網 就開始部署...