1、nginx的配置文件中文详解如下:
#user nginx;
#nginx进程数,建议设置为等于CPU总核心数。
worker_processes 10;
#进程文件
pid logs/nginx.pid;
{
#参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
use epoll;
# 单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections 65535;
}
http # 设定http服务器
{
include mime.types; # 文件扩展名与文件类型映射表
default_type application/octet-stream; # 默认文件类型
sendfile on;
keepalive_timeout 65; # 长连接超时时间,单位是秒
#gzip on; #压缩,提升性能
ignore_invalid_headers off #若不关闭,带下划线的head将丢失
underscores_in_headers on;
client_max_body_size 10m;#允许客户端请求的最大单文件字节数
upstream images
{
#upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
ip_hash;
server 192.168.1.123:7900 weight=3;
server 192.168.1.124:7900 weight=2;
}
upstream app
#负载均衡
{
ip_hash;
server 192.168.1.123:80 weight=2;
server 192.168.1.124:80 weight=3;
}
}
server
{
#监听端口
listen 8080;
listen 80;
#对 "/" 启用反向代理
location /
{
if ($request_uri ~ "^\/test\/method1\/")
{
break;
proxy_pass http://app;
}
if ($request_uri ~ "^\/test\/method2\/")
{
break;
proxy_pass http://images;
}
proxy_pass http://app;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
#日志格式设定
log_format my_access_log
'[$time_local] - $server_addr:$server_port '
'$request_method $uri $args '
'- $upstream_addr $server_protocol [$http_user_agent] [$http_cookie] $http_referer '
'$host $status 0 0 $bytes_sent $request_length 0'
'"$upstream_cache_status"';
log_format my_access_log2
'$time_local - $upstream_addr $server_addr:$server_port '
'$request_method $uri $args '
'- $remote_addr $server_protocol [$http_user_agent] [$http_cookie] $http_referer '
'$host $status 0 0 $bytes_sent $request_length 0'
'"$upstream_cache_status"';
access_log /app/nginx/logs/access.log my_access_log2;
error_log /app/nginx/logs/error.log info;
#定义本虚拟主机的访问日志
log_format error_log '$server_name $remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
' $upstream_addr $request_time $upstream_response_time';
}
2、nginx启动、重启、关闭:
从容停止nginx:kill -QUIT 主进程号
快速停止nginx:kill -TERM 主进程号
强制停止nginx:pkill -9 nginx
平滑重启命令:kill -HUP 进程号或进程号文件路径
或者使用:./nginx -s reload