Nginx配置文件
user www www; #定义nginx运行的用户和用户组
worker_processes auto; #nginx进程数,建议设置为CPU总核心数,也可以根据服务器性能,设置auto
error_log /var/log/nginx/error.log info; #全局错误日志定义类型,crit 记录内容最少,degug记录内容最多,默认crit [ debug | info | notice | warn | error | crit ]
pid /var/run/nginx.pid; #PID文件,记录当前启动的Nginx进程ID
worker_rlimit_nofile 65535; #单个nginx进程打开的最多文件描述符数目
#工作模式与连接数上限
events {
use epoll; #事件驱动模型的选择, use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]等
worker_connections 131072; #单个worker process进程的最大并发连接数(最大连接数=连接数*进程数)
}
#设定HTTP服务器,利用它的反向代理功能提供负载均衡支持
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型
#设定日志格式
log_format main '[$remote_addr] - [$remote_user] [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
charset utf-8; #编码格式
server_names_hash_bucket_size 128; #服务器名字的hash表大小
client_header_buffer_size 32k; #客户端请求头部的缓冲区大小
large_client_header_buffers 4 64k; #客户请求头缓冲大小
keepalive_timeout 60; #连接超时时间
sendfile on; #开启高效文件传输模式
tcp_nopush on; #待数据包装满数据发出,解决网络拥塞,配合sendfile使用
tcp_nodelay on; #收到数据包就发出
# 作为文件服务器下载使用,开启目录列表访问
autoindex on; #显示目录
autoindex_exact_size on; #显示文件大小
autoindex_localtime on; #显示文件时间
# FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度
fastcgi_connect_timeout 300; #nginx服务器和后端fasstcgi服务器连接的超时时间
fastcgi_send_timeout 300; #nginx允许fastcgi服务器返回数据的超时时间,在规定时间内后端服务器必须传完所有数据,否则nginx断开连接
fastcgi_read_timeout 300; #nginx从fastcgi服务器读取响应信息的超时时间,表示连接建立成功后,nginx等待后端服务器的响应时间
fastcgi_buffer_size 64k; #nginx fastcgi的缓冲区大小,用来读取从fastcgi服务器收到的第一部分响应信息的缓冲区大小
fastcgi_buffers 4 64k; #设定用来读取从fastcgi服务器收到的响应信息的缓冲区大小和缓冲区数量
fastcgi_busy_buffers_size 128k; #用于设置系统繁忙时可以使用的 proxy_buffers大小
fastcgi_temp_file_write_size 128k; #fastcgi临时文件的大小
upstream bj_backend_server {
#weight 参数代表权重值,权重值越高被分配的几率越大
server 172.17.0.15:80 weight=5;
server 172.17.0.16:80 weight=3;
server 172.17.0.17:80 weight=2;
}
#HTTP服务器
server {
listen 80; #监听端口
server_name www.acj.com; #定义域名www.acj.com访问
#如果https访问,需要配置证书,server部分配置不同
ssl_certificate cert.pem; #ssl 证书文件位置(常见证书文件格式为:crt/pem)
ssl_certificate_key cert.key; #ssl 证书 key 位置
#ssl 配置参数(选择性配置)
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#数字签名,此处使用 MD5
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
#对所有请求进行负载均衡请求
location / {
root /data/app; #定义网站根目录位置
index index.html index.htm; #定义首页索引文件名称
proxy_pass http://bj_backend_server; #请求转向bj_backend_server 定义服务器列表
proxy_set_header Host $Host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
#后端web服务器可以通过X-Forwarded-For获取用户真是IP
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接受超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 3 32k; #proxy_buffers缓冲区
proxy_busy_buffer_size 64k; #高负荷下缓冲区大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值将从upstream服务器传
client_max_body_size 10m; #允许客户端请求的最大文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
}
}
}
常用的命令如下:
nginx -s stop 快速关闭nginx,不能不保存相关信息,迅速终止web服务
nginx -s queit 平稳关闭nginx,保存相关信息,平稳退出web服务
nginx -s reload 修改nginx配置文件,重新加载
nginx -s reopen 重新打开日志文件
nginx - c filename 为nginx指定配置文件
nginx -t 检测配置文件语法正确性
nginx -v 显示nginx版本
nginx -V 显示nginx版本,编译器版本和配置参数