Files
nginx-unit/src/nxt_unit_request.h
Valentin Bartenev 376d758dd7 PHP: implemented "targets" option.
This allows to specify multiple subsequent targets inside PHP applications.
For example:

  {
      "listeners": {
          "*:80": {
              "pass": "routes"
          }
      },

      "routes": [
          {
              "match": {
                  "uri": "/info"
              },

              "action": {
                  "pass": "applications/my_app/phpinfo"
              }
          },
          {
              "match": {
                  "uri": "/hello"
              },

              "action": {
                  "pass": "applications/my_app/hello"
              }
          },
          {
              "action": {
                  "pass": "applications/my_app/rest"
              }
          }
      ],

      "applications": {
          "my_app": {
              "type": "php",
              "targets": {
                  "phpinfo": {
                      "script": "phpinfo.php",
                      "root": "/www/data/admin",
                  },

                  "hello": {
                      "script": "hello.php",
                      "root": "/www/data/test",
                  },

                  "rest": {
                      "root": "/www/data/example.com",
                      "index": "index.php"
                  },
              }
          }
      }
  }
2020-05-14 13:15:01 +03:00

53 lines
1.3 KiB
C

/*
* Copyright (C) NGINX, Inc.
*/
#ifndef _NXT_UNIT_REQUEST_H_INCLUDED_
#define _NXT_UNIT_REQUEST_H_INCLUDED_
#include <inttypes.h>
#include "nxt_unit_sptr.h"
#include "nxt_unit_field.h"
#define NXT_UNIT_NONE_FIELD 0xFFFFFFFFU
struct nxt_unit_request_s {
uint8_t method_length;
uint8_t version_length;
uint8_t remote_length;
uint8_t local_length;
uint8_t tls;
uint8_t websocket_handshake;
uint8_t app_target;
uint32_t server_name_length;
uint32_t target_length;
uint32_t path_length;
uint32_t query_length;
uint32_t fields_count;
uint32_t content_length_field;
uint32_t content_type_field;
uint32_t cookie_field;
uint64_t content_length;
nxt_unit_sptr_t method;
nxt_unit_sptr_t version;
nxt_unit_sptr_t remote;
nxt_unit_sptr_t local;
nxt_unit_sptr_t server_name;
nxt_unit_sptr_t target;
nxt_unit_sptr_t path;
nxt_unit_sptr_t query;
nxt_unit_sptr_t preread_content;
nxt_unit_field_t fields[];
};
#endif /* _NXT_UNIT_REQUEST_H_INCLUDED_ */