web

优质
小牛编辑
139浏览
2023-12-01

这个服务器专门处理静态文件。来看代码:


#include <mongols/web_server.hpp>

int main(int,char**)
{
    auto f=[](const mongols::request& req){
        if(req.method=="GET"&&req.uri.find("..")==std::string::npos){
            return true;
        }
        return false;
    };
    int port=9090;
    const char* host="127.0.0.1";
    mongols::web_server 
    server(host,port,5000,512000,0);
    //server(host,port);
    server.set_root_path("127.0.0.1:9090","html");
    server.set_root_path("localhost:9090","html")
    server.set_mime_type_file("mime.conf");
    server.set_list_directory(true);
    server.set_enable_mmap(true);
    server.run(f);
}

从v1.8.4.23开始,web_server支持虚拟主机配置。例如:

server.set_root_path("a:80","html/a");
server.set_root_path("a","html/a");
server.set_root_path("b:80","html/b");
server.set_root_path("b","html/b");

以上实现两个虚拟主机ab。需要注意的是,set_root_path方法的第一个参数是客户端请求的Host头部值,对于域名,端口值以及ip地址,是必须同时列出的。