Home >Backend Development >PHP Tutorial >Detailed explanation of nginx basic configuration and parameters
This article explains in detail the basic configuration and parameters of nginx
user nobody;
#Start the process, usually set to be equal to the number of cpu
worker_processes 1;
#Global error log and PID file
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#WorkingModeand maximum number of connections
events {
#epoll is a method of multiplexing IO (I/O Multiplexing),
#Only used for linux2.6 or above kernel, can Greatly improve the performance of nginx
use epoll;
#The maximum number of concurrent connections for a single background worker process
worker_connections 1024;
#The total number of concurrent connections is The product of worker_processes and worker_connections
# That is, max_clients = worker_processes * worker_connections
# When a reverse proxy is set, max_clients = worker_processes * worker_connections / 4 Why
# Why should the above reverse proxy be divided by 4? It should be said to be an empirical value
# According to the above conditions, the maximum number of connections that Nginx Server can handle under normal circumstances is: 4 * 8000 = 32000
# The setting of the worker_connections value is related to the physical memory size
# Because concurrency is restricted by IO, the value of max_clients must be less than the maximum number of files that the system can open
# The maximum number of files that can be opened by the system is proportional to the memory size. Generally, the number of files that can be opened on a machine with 1GB of memory is about 100,000.
# Let’s take a look at the file handles that can be opened by a VPS with 360M of memory. What is the number:
# $ cat /proc/sys/fs/file-max
# Output 34336
# 32000
# Therefore, the value of worker_connections needs to be determined based on the number of worker_processes processes and the maximum total number of files that the system can open. Set it appropriately
# Make the total number of concurrencies less than the maximum number of files that the operating system can open
# The essence is to configure according to the physical CPU and memory of the host
# Of course, the theoretical total number of concurrencies may deviate from the actual number, because the host has other working processes that need to consume system resources.
# ulimit -SHn 65535
}
http {
#Set the mime type, the type is defined by the mime.type file
include mime.types;
default_type application/octet-stream;
#Set log format
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer " '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
#sendfile directive specifies whether nginx calls sendfile function (zero copy method ) to output files,
#For ordinary applications, it must be set to on,
#If it is used for disk IO heavy load applications such as downloading, it can be set to off,
#To balance the disk and network I/O processing speed, reduce the system uptime.
sendfile on;
#tcp_nopush on;
#Connection timeout time
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
#Turn on gzipCompression
gzip on;
gzip_disable "MSIE [1-6].";
#Set request buffer
client_header_buffer_size 128k;
large_client_header_buffers 4 128k;
#SettingsVirtual hostConfiguration
server {
#Listening port 80
listen 80;
#Define using www.nginx.cn to visit
to Define the default website root directory location of
service#Set the access log of this virtual host
access_log logs/nginx. access.log main;
#Default request
location / {
. .php index.html index.htm;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
#Static
file, nginx handles it by itself
Location ~ ^/(images|
javascript|js|css|flash|media|static)/ {
#Expired for 30 days, static files are not very updated, the expiration can be set larger, #If you update frequently, you can set it smaller.
#PHP script requests are all forwarded to FastCGI for processing. Use FastCGI default configuration.
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#No access to .htxxx files
Location ~ /.ht {
deny all;
}
}
}
The above is the detailed content of Detailed explanation of nginx basic configuration and parameters. For more information, please follow other related articles on the PHP Chinese website!