nginx-0.1.0-2004-10-01-19:53:53 import
Igor Sysoev
17 years ago
27 | 27 | # optimize for Pentium 4, gcc 3.x |
28 | 28 | CPU_OPT="-march=pentium4" |
29 | 29 | ;; |
30 | ||
31 | sparc64) | |
32 | # build 64-bit binary, sparcv9 only | |
33 | CPU_OPT="-m64" | |
34 | ;; | |
35 | ||
36 | 30 | esac |
37 | 31 | |
38 | 32 | # STUB for batch builds |
6 | 6 | test -d $PREFIX || mkdir -p $PREFIX |
7 | 7 | |
8 | 8 | test -d `dirname $SBIN_PATH` || mkdir -p `dirname $SBIN_PATH` |
9 | test ! -f $SBIN_PATH || mv $SBIN_PATH $SBIN_PATH.old | |
9 | 10 | cp nginx $SBIN_PATH |
10 | 11 | |
11 | 12 | test -d `dirname $CONF_PATH` || mkdir -p `dirname $CONF_PATH` |
31 | 31 | |
32 | 32 | *:sun4u) |
33 | 33 | CFLAGS="$CFLAGS -mcpu=v9" |
34 | ||
35 | if [ ".$CPU" = ".sparc64" ]; then | |
36 | CFLAGS="$CFLAGS -m64" | |
37 | CPU_OPT="-m64" | |
38 | CORE_LINK="$CORE_LINK -m64" | |
39 | ||
40 | CC_TEST_FLAGS="$CC_TEST_FLAGS -mcpu=v9 -m64" | |
41 | fi | |
34 | 42 | ;; |
35 | 43 | |
36 | 44 | *) |
117 | 117 | |
118 | 118 | ngx_pid = ngx_getpid(); |
119 | 119 | |
120 | if (!(log = ngx_log_init_errlog())) { | |
120 | if (!(log = ngx_log_init_stderr())) { | |
121 | 121 | return 1; |
122 | 122 | } |
123 | 123 | |
141 | 141 | |
142 | 142 | if (ngx_getopt(&ctx, &init_cycle) == NGX_ERROR) { |
143 | 143 | return 1; |
144 | } | |
145 | ||
146 | if (ngx_test_config) { | |
147 | log->log_level = NGX_LOG_INFO; | |
148 | } else { | |
149 | if (ngx_log_init_error_log() == NGX_ERROR) { | |
150 | return 1; | |
151 | } | |
144 | 152 | } |
145 | 153 | |
146 | 154 | if (ngx_os_init(log) == NGX_ERROR) { |
222 | 222 | NGX_FILE_RDWR, |
223 | 223 | NGX_FILE_CREATE_OR_OPEN|NGX_FILE_APPEND); |
224 | 224 | |
225 | #if 1 | |
225 | #if 0 | |
226 | 226 | log->log_level = NGX_LOG_DEBUG_ALL; |
227 | 227 | #endif |
228 | 228 | ngx_log_debug3(NGX_LOG_DEBUG_CORE, log, 0, |
223 | 223 | #endif |
224 | 224 | |
225 | 225 | |
226 | ||
227 | ngx_log_t *ngx_log_init_errlog() | |
228 | { | |
229 | ngx_fd_t fd; | |
230 | ||
226 | ngx_log_t *ngx_log_init_stderr() | |
227 | { | |
231 | 228 | #if (WIN32) |
232 | 229 | |
233 | 230 | ngx_stderr.fd = GetStdHandle(STD_ERROR_HANDLE); |
252 | 249 | #endif |
253 | 250 | |
254 | 251 | ngx_log.file = &ngx_stderr; |
252 | ngx_log.log_level = NGX_LOG_ERR; | |
253 | ||
254 | return &ngx_log; | |
255 | } | |
256 | ||
257 | ||
258 | ngx_int_t ngx_log_init_error_log() | |
259 | { | |
260 | ngx_fd_t fd; | |
255 | 261 | |
256 | 262 | #ifdef NGX_ERROR_LOG_PATH |
257 | ||
258 | ngx_log.log_level = NGX_LOG_ERR; | |
259 | 263 | |
260 | 264 | fd = ngx_open_file(NGX_ERROR_LOG_PATH, NGX_FILE_RDWR, |
261 | 265 | NGX_FILE_CREATE_OR_OPEN|NGX_FILE_APPEND); |
263 | 267 | if (fd == NGX_INVALID_FILE) { |
264 | 268 | ngx_log_error(NGX_LOG_EMERG, (&ngx_log), ngx_errno, |
265 | 269 | ngx_open_file_n " \"" NGX_ERROR_LOG_PATH "\" failed"); |
266 | return NULL; | |
270 | return NGX_ERROR; | |
267 | 271 | } |
268 | 272 | |
269 | 273 | #if (WIN32) |
272 | 276 | ngx_log_error(NGX_LOG_EMERG, (&ngx_log), ngx_errno, |
273 | 277 | ngx_file_append_mode_n " \"" NGX_ERROR_LOG_PATH |
274 | 278 | "\" failed"); |
275 | return NULL; | |
279 | return NGX_ERROR; | |
276 | 280 | } |
277 | 281 | |
278 | 282 | #else |
280 | 284 | if (dup2(fd, STDERR_FILENO) == NGX_ERROR) { |
281 | 285 | ngx_log_error(NGX_LOG_EMERG, (&ngx_log), ngx_errno, |
282 | 286 | "dup2(STDERR) failed"); |
283 | return NULL; | |
284 | } | |
285 | ||
286 | #endif | |
287 | ||
288 | #else | |
287 | return NGX_ERROR; | |
288 | } | |
289 | ||
290 | #endif | |
291 | ||
292 | #else /* no NGX_ERROR_LOG_PATH */ | |
289 | 293 | |
290 | 294 | ngx_log.log_level = NGX_LOG_INFO; |
291 | 295 | |
292 | 296 | #endif |
293 | 297 | |
294 | return &ngx_log; | |
298 | return NGX_OK; | |
295 | 299 | } |
296 | 300 | |
297 | 301 |
194 | 194 | #define ngx_log_alloc_log(pool, log) ngx_palloc(pool, log, sizeof(ngx_log_t)) |
195 | 195 | #define ngx_log_copy_log(new, old) ngx_memcpy(new, old, sizeof(ngx_log_t)) |
196 | 196 | |
197 | ngx_log_t *ngx_log_init_errlog(); | |
197 | ngx_log_t *ngx_log_init_stderr(); | |
198 | ngx_int_t ngx_log_init_error_log(); | |
198 | 199 | ngx_log_t *ngx_log_create_errlog(ngx_cycle_t *cycle, ngx_array_t *args); |
199 | 200 | char *ngx_set_error_log_levels(ngx_conf_t *cf, ngx_log_t *log); |
200 | 201 |
918 | 918 | |
919 | 919 | ngx_conf_merge_msec_value(conf->connect_timeout, |
920 | 920 | prev->connect_timeout, 60000); |
921 | ngx_conf_merge_msec_value(conf->send_timeout, prev->send_timeout, 30000); | |
921 | ngx_conf_merge_msec_value(conf->send_timeout, prev->send_timeout, 60000); | |
922 | 922 | |
923 | 923 | ngx_conf_merge_value(conf->preserve_host, prev->preserve_host, 0); |
924 | 924 | ngx_conf_merge_value(conf->set_x_real_ip, prev->set_x_real_ip, 0); |
925 | 925 | ngx_conf_merge_value(conf->add_x_forwarded_for, |
926 | 926 | prev->add_x_forwarded_for, 0); |
927 | 927 | |
928 | ngx_conf_merge_msec_value(conf->read_timeout, prev->read_timeout, 30000); | |
928 | ngx_conf_merge_msec_value(conf->read_timeout, prev->read_timeout, 60000); | |
929 | 929 | |
930 | 930 | ngx_conf_merge_size_value(conf->header_buffer_size, |
931 | prev->header_buffer_size, 4096); | |
932 | ||
933 | ngx_conf_merge_bufs_value(conf->bufs, prev->bufs, 8, 4096); | |
931 | prev->header_buffer_size, (size_t) ngx_pagesize); | |
932 | ||
933 | ngx_conf_merge_bufs_value(conf->bufs, prev->bufs, 8, ngx_pagesize); | |
934 | 934 | |
935 | 935 | if (conf->bufs.num < 2) { |
936 | 936 | ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
1329 | 1329 | } |
1330 | 1330 | |
1331 | 1331 | ngx_conf_merge_size_value(conf->connection_pool_size, |
1332 | prev->connection_pool_size, 2048); | |
1332 | prev->connection_pool_size, 256); | |
1333 | 1333 | ngx_conf_merge_msec_value(conf->post_accept_timeout, |
1334 | prev->post_accept_timeout, 30000); | |
1334 | prev->post_accept_timeout, 60000); | |
1335 | 1335 | ngx_conf_merge_size_value(conf->request_pool_size, |
1336 | prev->request_pool_size, 16384); | |
1336 | prev->request_pool_size, 4096); | |
1337 | 1337 | ngx_conf_merge_msec_value(conf->client_header_timeout, |
1338 | 1338 | prev->client_header_timeout, 60000); |
1339 | 1339 | ngx_conf_merge_size_value(conf->client_header_buffer_size, |
1468 | 1468 | prev->default_type, "text/plain"); |
1469 | 1469 | |
1470 | 1470 | ngx_conf_merge_size_value(conf->client_max_body_size, |
1471 | prev->client_max_body_size, 10 * 1024 * 1024); | |
1471 | prev->client_max_body_size, 1 * 1024 * 1024); | |
1472 | 1472 | ngx_conf_merge_size_value(conf->client_body_buffer_size, |
1473 | prev->client_body_buffer_size, 8192); | |
1473 | prev->client_body_buffer_size, | |
1474 | (size_t) 2 * ngx_pagesize); | |
1474 | 1475 | ngx_conf_merge_msec_value(conf->client_body_timeout, |
1475 | 1476 | prev->client_body_timeout, 60000); |
1476 | 1477 | ngx_conf_merge_value(conf->sendfile, prev->sendfile, 0); |
548 | 548 | ngx_err_t err; |
549 | 549 | ngx_int_t n; |
550 | 550 | ngx_uint_t i; |
551 | struct timeval tv; | |
551 | 552 | ngx_listening_t *ls; |
552 | 553 | ngx_core_conf_t *ccf; |
553 | 554 | ngx_connection_t *c; |
555 | ||
556 | ||
557 | ngx_gettimeofday(&tv); | |
558 | ||
559 | ngx_start_msec = (ngx_epoch_msec_t) tv.tv_sec * 1000 + tv.tv_usec / 1000; | |
560 | ngx_old_elapsed_msec = 0; | |
561 | ngx_elapsed_msec = 0; | |
562 | ||
554 | 563 | |
555 | 564 | ngx_process = NGX_PROCESS_WORKER; |
556 | 565 |