我遇到了以下问题。我想在unix socket上安装acix,这是我的首选方式,但如果真的需要,我可以改变它。假设/etc/server.sock我的nginx服务器将流量从几个子域重定向到这个套接字现在,我想在同一个应用程序上设置几个域,以避免混乱。我试过设置tokio::net::UnixListener,并将其传递到listen方法中,我也试过将所有内容传递到一个服务器中,但后来我意识到我无法做到这一点,因为路由会在一些地方冲突。
/etc/server.sock
tokio::net::UnixListener
listen
t2a7ltrp1#
在朋友的帮助下,我设法找到了一个解决方案,我不知道这是否是一个好办法,但:
**1.**我已将文件拆分到不同的路径
Api folder (module) \---files for all subdomains main.rs
**2.**主要是为每个子域设置了服务
async fn main() -> io::Result<()> { let server = HttpServer::new(|| { App::new() .service(api::a_handler()) .service(api::b_handler()) .service(api::c_handler()) .service(api::d_handler()) }); server.bind("127.0.0.1:8000")? //I've also switched from unix sockets .run() .await }
**3.**然后在每个API文件中我分别设置了处理程序和保护程序
pub fn a_handler() -> Scope { web::scope("").guard(guard::Header("host", "a.example.com")) }
1条答案
按热度按时间t2a7ltrp1#
在朋友的帮助下,我设法找到了一个解决方案,我不知道这是否是一个好办法,但:
**1.**我已将文件拆分到不同的路径
**2.**主要是为每个子域设置了服务
**3.**然后在每个API文件中我分别设置了处理程序和保护程序