Nginx configuration file full version (use the latest stable version NGINX1.8.0), nginxnginxnginx1.8.0
# Used users and groups
User nginx;
# Specify the number of work-derivative processes. Generally, several CPU cores are configured. Number of nginx processes. We recommend that you set it to equal to the total number of CPU cores.
Worker_processes 1;
# Global error log and PID file; Global error Log definition type, [debug | info | notice | warn | error | crit]
Error_log/var/log/nginx/error. log warn;
# Process files
Pid/var/run/nginx. pid;
# The maximum number of file descriptors opened by an nginx process. The theoretical value should be that the maximum number of opened files (system value ulimit-n) is the same as the number of nginx processes, but the allocation requests of nginx are uneven, therefore, we recommend that you keep the value consistent with that of ulimit-n.
# Worker_rlimit_nofile 65535;
# Maximum number of working modes and connections
Events {
# Refer to the event model. use [kqueue | rtsig | epoll |/dev/poll | select | poll]; epoll model,
# It is a high-performance network I/O model in the kernel of Linux 2.6 or later versions. If it runs on FreeBSD, it uses the kqueue model.
# For details, see http://wiki.codemongers.com/event Model
Use epoll;
# Maximum number of connections of a single process (maximum number of connections = number of connections * Number of processes) connections 2000worker_connections 1024;
}
# Set the http server
Http {
# File extension and file type ing table, set the mime type, the type is defined by the mime. type file
Include/etc/nginx/mime. types;
# Default file type default_type application/octet-stream; # default encoding # charset UTF-8; # reverse proxy configuration, which can be enabled. conf to see # include/etc/nginx/proxy. conf; # fastcgi configuration. You can enable fastcgi. conf to see # include/etc/nginx/fastcgi. conf; # log format log_format main' $ remote_addr-$ remote_user [$ time_local] "$ request" ''$ status $ response" $ http_referer "'' "$ http_user_agent" "$ http_x_forwarded_for" '; # access log access_log/var/log/nginx/access. log main; # sen The dfile command specifies whether nginx calls the sendfile function (zero copy mode) to output files. For common applications, # It must be set to on. If it is used for downloading and other application disk I/O heavy load applications, it can be set to off to balance the disk and network I/O processing speed and reduce the system uptime. sendfile on; # enable directory list access, which is suitable for downloading servers. This function is disabled by default. # Autoindex on; # preventing network congestion # tcp_nopush on; # connection timeout time, in seconds: keepalive_timeout 65; # preventing network congestion tcp_nodelay on; # server name hash table size # server_names_hash_bucket_size 128; # size limit of uploaded files # client_header_buffer_size 32 k; # Set Request delay # limit 4 64 k; # Set Request cache # client_max_body_size 8 m; # FastCGI parameters are used to improve website performance: reduce resource usage and increase access speed. The following parameters can be understood literally. # Fastcgi_connect_timeout 300; # fastcgi_send_timeout 300; # fastcgi_read_timeout 300; # fastcgi_buffer_size 64 k; # fastcgi_buffers 4 64 k; # limit 128 k; # limit 128 k; # gzip module setting # enable gzip compression output # gzip on; # minimum compressed file size # gzip_min_length 1 k; # compressed buffer # gzip_buffers 4 16 k; # compressed version (default 1.1, for the front end squid2.5, use 1.0) # gzip_http_version 1.0; # compression level # gzip_comp_level 2; # The compression type. By default, text/html is included, so you do not need to write it again, no questions will be asked if it is written. But there will be a warn. # Gzip_types text/plain application/x-javascript text/css application/xml; # gzip_vary on; # Use # limit_zone crawler $ binary_remote_addr 10 m to enable IP connection restriction; include/etc/nginx/conf. d /*. conf; # include/etc/nginx/sites-enabled/*; # Set the Server list of Server Load balancer # upstream ctrip_oa_tomcat {## upstream load balancing, weight is the weight, you can define the weight based on the machine configuration. The weigth parameter indicates the weight. A higher weight indicates a higher probability of being assigned. # Server 127.0.0.1: 8080 weight = 1; # server 192.168.1.116: 8081 weight = 1 ;#}# set the server list of server Load balancer, you can configure a list of servers for multiple Server Load balancer instances # upstream ctrip_oa_tomcat2 {## upstream Server Load balancer. weight is the weight. You can define the weight according to the machine configuration. The weigth parameter indicates the weight. A higher weight indicates a higher probability of being assigned. # Server 127.0.0.1: 8080 weight = 1; # server 192.168.1.116: 8081 weight = 1 ;#}# configure server {# listen to port listen 80; # multiple domain names, use spaces to separate server_name 192.168.1.116; # define the homepage index index.html index.htm index. jsp; # root/home/oa/ctripoa-ui/usky-ctripoa-uui/public; # define the error page error_page 400 402 403 404 405 406 410 411 413 416 500 501 502 503 504/error.html; error_page 505/error.html; # log format setting # log_format access' $ remote_addr-$ remote_user [$ time_local] "$ request" '#' $ status $ body_bytes_sent "$ http_referer" '#' "$ http_user_agent" $ http_x_forwarded_for '; # define the access log of the VM # access_log/var/log/nginx/ctrip_oa_access.log access; # default access address
Location /{
Expires 2 m;
Add_header Cache-Control "public, must-revalidate, proxy-revalidate ";
Add_header Cache-Control "public, must-revalidate, proxy-revalidate ";
}
# All rest requests start with an api
Location ~ /Sms/(api | images | files )/{
Proxy_pass http: // localhost: 8080;
Proxy_next_upstream error timeout;
Proxy_connect_timeout 8 s;
Proxy_intercept_errors on;
Proxy_set_header X-Forwarded-Host Httphost; proxysetheaderX −forwarded −server Host;
Proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
Proxy_set_header X-Real-IPremote_addr;
Proxy_set_header Host $ http_host;
}
# Default request
# Enable reverse proxy "/"
# Location /{
# Proxy_pass localhost;
# Proxy_redirect off; # proxy_set_header X-Real-IP $ remote_addr; # the backend Web server can use X-Forwarded-For to obtain the user's Real IP address # proxy_set_header X-Forwarded-For $ response; # The following are some reverse proxy configurations, which are optional. # Proxy_set_header Host $ host; # maximum number of single-file bytes allowed for client requests # client_max_body_size 10 m; # maximum number of bytes for buffer client requests, # client_body_buffer_size 128; # nginx and backend server connection timeout (proxy connection timeout) # proxy_connect_timeout 90; # backend server data return time (proxy sending timeout) # proxy_send_timeout 90; # after successful connection, response time of the backend server (proxy receiving timeout) # proxy_read_timeout 90; # Set the buffer size for the proxy server (nginx) to save user header information # proxy_buffer_size 4 k; # proxy_buffers buffer, set the average webpage size below 32 KB # proxy_buffers 4 32 KB; # buffer size under high load (proxy_buff Ers * 2) # proxy_busy_buffers_size 64 k; # Set the cache folder size. If it is greater than this value, it will be uploaded from the upstream server # proxy_temp_file_write_size 64 k; #}# The following is a static resource, nginx self-processing # static files, nginx self-processing # location ~ ^/(Images | javascript | js | css | flash | media | static)/{# root/home/oa/ctripoa-ui/usky-ctripoa-uui; # expires 30d; # static files are not updated for 30 days after they expire. You can set them to a larger value when they expire. If they are updated frequently, you can set them to a smaller value. #}# Image Cache Time Setting # location ~. *. (Gif | jpg | jpeg | png | bmp | swf) $ {# expires 30d ;#}# JS and CSS cache time settings # location ~. *. (Js | css )? $ {# Expires 30 h; #}# all jsp pages are processed by tomcat or resin # location ~. (Jsp | jspx | do )? $ {# Proxy_set_header Host $ host; # proxy_set_header X-Real-IP $ remote_addr; # proxy_set_header X-Forwarded-For $ scheme; # proxy_pass http: // 127.0.0.1: 8080; #}# all static files are directly read by nginx without passing through tomcat or rest # location ~. *. (Htm | html | gif | jpg | jpeg | png | bmp | swf | ioc | rar | zip | txt | flv | mid | doc | ppt | pdf | xls | mp3 | wma) $ {# expires 15d ;#}# location ~. *. (Js | css )? $ {# Expires 1 h ;#}# set the address for viewing Nginx status # location/NginxStatus {# stub_status on; # access_log on; # auth_basic "NginxStatus "; # auth_basic_user_file conf/htpasswd; # the content of the htpasswd file can be generated using the htpasswd tool provided by apache. #}
}
}
Copyright Disclaimer: This article is an original article by the blogger and cannot be reproduced without the permission of the blogger.