Skip to content

Commit 69e6f3e

Browse files
committed
Use X-Forwarded-For and X-Real-IP to log IP in production
As this service runs in a `docker` container behind a reverse proxy
1 parent e192f0b commit 69e6f3e

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

src/main.rs

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,13 +106,21 @@ async fn main() -> Result<()> {
106106
let start_http_server = move || -> Result<actix_web::dev::Server> {
107107
Ok(HttpServer::new(move || {
108108
let auth = GrantsMiddleware::with_extractor(extract_permissions);
109-
App::new()
109+
let a = App::new()
110110
.app_data(web::Data::new(http_db_pool.clone()))
111111
.app_data(http_news_updater.clone())
112112
.wrap(auth)
113-
.wrap(actix_web::middleware::Compress::default())
114-
.wrap(actix_web::middleware::Logger::default())
115-
.service(web::scope("/api").configure(controllers::api::configure))
113+
.wrap(actix_web::middleware::Compress::default());
114+
115+
let a = if cfg!(debug_assertions) {
116+
a.wrap(actix_web::middleware::Logger::default())
117+
} else {
118+
a.wrap(actix_web::middleware::Logger::new(
119+
r#"%{X-Forwarded-For}i (%{X-Real-IP}i) "%r" %s %b "%{Referer}i" "%{User-Agent}i" %T"#,
120+
))
121+
};
122+
123+
a.service(web::scope("/api").configure(controllers::api::configure))
116124
.service(web::scope("/releases").configure(controllers::releases::configure))
117125
.service(Files::new("/", "./build/").index_file("index.html"))
118126
})

0 commit comments

Comments
 (0)