use host part in URL
diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c
index b9022bd..b141000 100644
--- a/src/http/ngx_http_parse.c
+++ b/src/http/ngx_http_parse.c
@@ -260,7 +260,7 @@
         case sw_schema_slash_slash:
             switch (ch) {
             case '/':
-                r->host_start = p;
+                r->host_start = p + 1;
                 state = sw_host;
                 break;
             default:
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index 951db75..bbd0255 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -1385,8 +1385,15 @@
     ngx_http_core_loc_conf_t  *clcf;
     ngx_http_core_srv_conf_t  *cscf;
 
-    host = r->headers_in.host->value.data;
-    len = r->headers_in.host_name_len;
+    host = r->host_start;
+
+    if (host == NULL) {
+        host = r->headers_in.host->value.data;
+        len = r->headers_in.host_name_len;
+
+    } else {
+        len = r->host_end - host;
+    }
 
     if (vn->hash.buckets) {
         cscf = ngx_hash_find(&vn->hash, hash, host, len);
diff --git a/src/http/ngx_http_variables.c b/src/http/ngx_http_variables.c
index 1201458..c31defc 100644
--- a/src/http/ngx_http_variables.c
+++ b/src/http/ngx_http_variables.c
@@ -667,13 +667,20 @@
 ngx_http_variable_host(ngx_http_request_t *r, ngx_http_variable_value_t *v,
     uintptr_t data)
 {
-    if (r->headers_in.host) {
-        v->len = r->headers_in.host_name_len;
-        v->data = r->headers_in.host->value.data;
+    if (r->host_start == NULL) {
+
+        if (r->headers_in.host) {
+            v->len = r->headers_in.host_name_len;
+            v->data = r->headers_in.host->value.data;
+
+        } else {
+            v->len = r->server_name.len;
+            v->data = r->server_name.data;
+        }
 
     } else {
-        v->len = r->server_name.len;
-        v->data = r->server_name.data;
+        v->len = r->host_end - r->host_start;
+        v->data = r->host_start;
     }
 
     v->valid = 1;