/*
* Copyright (C) Igor Sysoev
* Copyright (C) Nginx, Inc.
*/
#include <ngx_config.h>
#include <ngx_core.h>
#include <ngx_http.h>
typedef struct {
u_char *name;
uint32_t method;
} ngx_http_method_name_t;
#define NGX_HTTP_REQUEST_BODY_FILE_OFF 0
#define NGX_HTTP_REQUEST_BODY_FILE_ON 1
#define NGX_HTTP_REQUEST_BODY_FILE_CLEAN 2
static ngx_int_t ngx_http_core_find_location(ngx_http_request_t *r);
static ngx_int_t ngx_http_core_find_static_location(ngx_http_request_t *r,
ngx_http_location_tree_node_t *node);
static ngx_int_t ngx_http_core_preconfiguration(ngx_conf_t *cf);
static void *ngx_http_core_create_main_conf(ngx_conf_t *cf);
static char *ngx_http_core_init_main_conf(ngx_conf_t *cf, void *conf);
static void *ngx_http_core_create_srv_conf(ngx_conf_t *cf);
static char *ngx_http_core_merge_srv_conf(ngx_conf_t *cf,
void *parent, void *child);
static void *ngx_http_core_create_loc_conf(ngx_conf_t *cf);
static char *ngx_http_core_merge_loc_conf(ngx_conf_t *cf,
void *parent, void *child);
static char *ngx_http_core_server(ngx_conf_t *cf, ngx_command_t *cmd,
void *dummy);
static char *ngx_http_core_location(ngx_conf_t *cf, ngx_command_t *cmd,
void *dummy);
static ngx_int_t ngx_http_core_regex_location(ngx_conf_t *cf,
ngx_http_core_loc_conf_t *clcf, ngx_str_t *regex, ngx_uint_t caseless);
static char *ngx_http_core_types(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_type(ngx_conf_t *cf, ngx_command_t *dummy,
void *conf);
static char *ngx_http_core_listen(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_server_name(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_root(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
static char *ngx_http_core_limit_except(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_directio(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_error_page(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_try_files(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_open_file_cache(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_error_log(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_keepalive(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_internal(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_http_core_resolver(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
#if (NGX_HTTP_GZIP)
static ngx_int_t ngx_http_gzip_accept_encoding(ngx_str_t *ae);
static ngx_uint_t ngx_http_gzip_quantity(u_char *p, u_char *last);
static char *ngx_http_gzip_disable(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
#endif
static ngx_int_t ngx_http_get_forwarded_addr_internal(ngx_http_request_t *r,
ngx_addr_t *addr, u_char *xff, size_t xfflen, ngx_array_t *proxies,
int recursive);
#if (NGX_HAVE_OPENAT)
static char *ngx_http_disable_symlinks(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
#endif
static char *ngx_http_core_lowat_check(ngx_conf_t *cf, void *post, void *data);
static char *ngx_http_core_pool_size(ngx_conf_t *cf, void *post, void *data);
static ngx_conf_post_t ngx_http_core_lowat_post =
{ ngx_http_core_lowat_check };
static ngx_conf_post_handler_pt ngx_http_core_pool_size_p =
ngx_http_core_pool_size;
static ngx_conf_deprecated_t ngx_conf_deprecated_optimize_server_names = {
ngx_conf_deprecated, "optimize_server_names", "server_name_in_redirect"
};
static ngx_conf_deprecated_t ngx_conf_deprecated_open_file_cache_retest = {
ngx_conf_deprecated, "open_file_cache_retest", "open_file_cache_valid"
};
static ngx_conf_deprecated_t ngx_conf_deprecated_satisfy_any = {
ngx_conf_deprecated, "satisfy_any", "satisfy"
};
static ngx_conf_enum_t ngx_http_core_request_body_in_file[] = {
{ ngx_string("off"), NGX_HTTP_REQUEST_BODY_FILE_OFF },
{ ngx_string("on"), NGX_HTTP_REQUEST_BODY_FILE_ON },
{ ngx_string("clean"), NGX_HTTP_REQUEST_BODY_FILE_CLEAN },
{ ngx_null_string, 0 }
};
#if (NGX_HAVE_FILE_AIO)
static ngx_conf_enum_t ngx_http_core_aio[] = {
{ ngx_string("off"), NGX_HTTP_AIO_OFF },
{ ngx_string("on"), NGX_HTTP_AIO_ON },
#if (NGX_HAVE_AIO_SENDFILE)
{ ngx_string("sendfile"), NGX_HTTP_AIO_SENDFILE },
#endif
{ ngx_null_string, 0 }
};
#endif
static ngx_conf_enum_t ngx_http_core_satisfy[] = {
{ ngx_string("all"), NGX_HTTP_SATISFY_ALL },
{ ngx_string("any"), NGX_HTTP_SATISFY_ANY },
{ ngx_null_string, 0 }
};
static ngx_conf_enum_t ngx_http_core_lingering_close[] = {
{ ngx_string("off"), NGX_HTTP_LINGERING_OFF },
{ ngx_string("on"), NGX_HTTP_LINGERING_ON },
{ ngx_string("always"), NGX_HTTP_LINGERING_ALWAYS },
{ ngx_null_string, 0 }
};
static ngx_conf_enum_t ngx_http_core_if_modified_since[] = {
{ ngx_string("off"), NGX_HTTP_IMS_OFF },
{ ngx_string("exact"), NGX_HTTP_IMS_EXACT },
{ ngx_string("before"), NGX_HTTP_IMS_BEFORE },
{ ngx_null_string, 0 }
};
static ngx_conf_bitmask_t ngx_http_core_keepalive_disable[] = {
{ ngx_string("none"), NGX_HTTP_KEEPALIVE_DISABLE_NONE },
{ ngx_string("msie6"), NGX_HTTP_KEEPALIVE_DISABLE_MSIE6 },
{ ngx_string("safari"), NGX_HTTP_KEEPALIVE_DISABLE_SAFARI },
{ ngx_null_string, 0 }
};
static ngx_path_init_t ngx_http_client_temp_path = {
ngx_string(NGX_HTTP_CLIENT_TEMP_PATH), { 0, 0, 0 }
};
#if (NGX_HTTP_GZIP)
static ngx_conf_enum_t ngx_http_gzip_http_version[] = {
{ ngx_string("1.0"), NGX_HTTP_VERSION_10 },
{ ngx_string("1.1"), NGX_HTTP_VERSION_11 },
{ ngx_null_string, 0 }
};
static ngx_conf_bitmask_t ngx_http_gzip_proxied_mask[] = {
{ ngx_string("off"), NGX_HTTP_GZIP_PROXIED_OFF },
{ ngx_string("expired"), NGX_HTTP_GZIP_PROXIED_EXPIRED },
{ ngx_string("no-cache"), NGX_HTTP_GZIP_PROXIED_NO_CACHE },
{ ngx_string("no-store"), NGX_HTTP_GZIP_PROXIED_NO_STORE },
{ ngx_string("private"), NGX_HTTP_GZIP_PROXIED_PRIVATE },
{ ngx_string("no_last_modified"), NGX_HTTP_GZIP_PROXIED_NO_LM },
{ ngx_string("no_etag"), NGX_HTTP_GZIP_PROXIED_NO_ETAG },
{ ngx_string("auth"), NGX_HTTP_GZIP_PROXIED_AUTH },
{ ngx_string("any"), NGX_HTTP_GZIP_PROXIED_ANY },
{ ngx_null_string, 0 }
};
static ngx_str_t ngx_http_gzip_no_cache = ngx_string("no-cache");
static ngx_str_t ngx_http_gzip_no_store = ngx_string("no-store");
static ngx_str_t ngx_http_gzip_private = ngx_string("private");
#endif
static ngx_command_t ngx_http_core_commands[] = {
{ ngx_string("variables_hash_max_size"),
NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
ngx_conf_set_num_slot,
NGX_HTTP_MAIN_CONF_OFFSET,
offsetof(ngx_http_core_main_conf_t, variables_hash_max_size),
NULL },
{ ngx_string("variables_hash_bucket_size"),
NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
ngx_conf_set_num_slot,
NGX_HTTP_MAIN_CONF_OFFSET,
offsetof(ngx_http_core_main_conf_t, variables_hash_bucket_size),
NULL },
{ ngx_string("server_names_hash_max_size"),
NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
ngx_conf_set_num_slot,
NGX_HTTP_MAIN_CONF_OFFSET,
offsetof(ngx_http_core_main_conf_t, server_names_hash_max_size),
NULL },
{ ngx_string("server_names_hash_bucket_size"),
NGX_HTTP_MAIN_CONF|NGX_CONF_TAKE1,
ngx_conf_set_num_slot,
NGX_HTTP_MAIN_CONF_OFFSET,
offsetof(ngx_http_core_main_conf_t, server_names_hash_bucket_size),
NULL },
{ ngx_string("server"),
NGX_HTTP_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_NOARGS,
ngx_http_core_server,
0,
0,
NULL },
{ ngx_string("connection_pool_size"),
NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_CONF_TAKE1,
ngx_conf_set_size_slot,
NGX_HTTP_SRV_CONF_OFFSET,
offsetof(ngx_http_core_srv_conf_t, connection_pool_size),
&ngx_http_
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
nginx 日志自动分割(根据nginx源码修改) (521个子文件)
nginx.8 5KB
nginx.8 5KB
acc 224B
bcc 1KB
makefile.bcc 530B
makefile.bcc 382B
makefile.bcc 365B
makefile.bcc 341B
makefile.bcc 333B
ngx_http_core_module.c 140KB
ngx_http_upstream.c 133KB
ngx_http_proxy_module.c 105KB
ngx_http_fastcgi_module.c 93KB
ngx_http_request.c 90KB
ngx_http_mp4_module.c 88KB
ngx_http_ssi_filter_module.c 78KB
ngx_http_spdy.c 74KB
ngx_event_openssl.c 70KB
ngx_resolver.c 68KB
ngx_http_variables.c 63KB
ngx_http_uwsgi_module.c 58KB
ngx_http_parse.c 56KB
ngx_http_scgi_module.c 52KB
ngx_http.c 51KB
ngx_http_file_cache.c 49KB
ngx_http_log_module.c 45KB
ngx_http_geo_module.c 42KB
ngx_event_openssl_stapling.c 42KB
ngx_http_script.c 41KB
ngx_mail_auth_http_module.c 41KB
ngx_string.c 40KB
ngx_http_charset_filter_module.c 40KB
ngx_http_image_filter_module.c 38KB
ngx_process_cycle.c 37KB
ngx_cycle.c 33KB
nginx.c 32KB
ngx_event.c 32KB
ngx_conf_file.c 32KB
ngx_connection.c 31KB
ngx_http_dav_module.c 31KB
ngx_mail_proxy_module.c 31KB
ngx_http_gzip_filter_module.c 31KB
ngx_open_file_cache.c 30KB
ngx_http_xslt_filter_module.c 29KB
ngx_http_spdy_filter_module.c 29KB
ngx_http_rewrite_module.c 28KB
ngx_http_request_body.c 27KB
ngx_inet.c 26KB
ngx_file.c 26KB
ngx_event_pipe.c 25KB
ngx_http_limit_req_module.c 25KB
ngx_http_ssl_module.c 24KB
ngx_mail_parse.c 24KB
ngx_http_perl_module.c 24KB
ngx_http_range_filter_module.c 24KB
ngx_http_geoip_module.c 22KB
ngx_http_userid_filter_module.c 22KB
ngx_hash.c 21KB
ngx_epoll_module.c 20KB
ngx_http_special_response.c 20KB
ngx_http_autoindex_module.c 20KB
ngx_mail_smtp_handler.c 20KB
ngx_http_limit_conn_module.c 20KB
ngx_http_browser_module.c 20KB
ngx_rtsig_module.c 19KB
ngx_http_memcached_module.c 19KB
ngx_kqueue_module.c 19KB
ngx_http_header_filter_module.c 19KB
ngx_http_sub_filter_module.c 19KB
ngx_freebsd_rfork_thread.c 18KB
ngx_slab.c 18KB
ngx_http_upstream_round_robin.c 17KB
ngx_http_referer_module.c 17KB
ngx_mail_handler.c 17KB
ngx_mail_core_module.c 17KB
ngx_http_gunzip_filter_module.c 17KB
ngx_eventport_module.c 16KB
ngx_process.c 16KB
ngx_http_headers_filter_module.c 16KB
ngx_output_chain.c 15KB
ngx_mail_ssl_module.c 15KB
ngx_http_index_module.c 15KB
ngx_devpoll_module.c 15KB
ngx_http_map_module.c 14KB
ngx_mail.c 14KB
ngx_http_upstream_keepalive_module.c 14KB
ngx_files.c 13KB
ngx_event_accept.c 13KB
ngx_http_auth_basic_module.c 12KB
ngx_freebsd_sendfile_chain.c 12KB
ngx_log.c 12KB
ngx_http_access_module.c 12KB
ngx_times.c 12KB
ngx_poll_module.c 11KB
ngx_mail_pop3_handler.c 11KB
ngx_http_auth_request_module.c 11KB
ngx_select_module.c 11KB
ngx_mail_imap_handler.c 11KB
ngx_http_spdy_module.c 11KB
ngx_http_upstream_least_conn_module.c 10KB
共 521 条
- 1
- 2
- 3
- 4
- 5
- 6
死亡前奏曲
- 粉丝: 8
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页