nginx常用命令及配置文件详解

Nginx 常用命令

# 1、找到nginx的启动文件
cd /usr/local/nginx/sbin

# 2、启动nginx
./nginx

# 3、停止
./nginx -s stop

# 4、安全退出
./nginx -s quit

# 5、重新加载配置文件
./nginx -s reload

# 6、查看nginx进程
ps aux|grep nginx

配置文件详解

        公共配置模块

## 1、Nginx 用户及组:用户组。window下不指定
user  nobody;

## 2、工作进程:数目。根据硬件调整,通常等于CPU 数量或者2倍于CPU
worker_processes  1;

## 3、错误日志的存放目录
error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log info;

## pid(进程标识符):存放路径
pid        logs/nginx.pid;

## 指定进程的可以打开的最大描述符:数目。
## 这个指令是指当一个nginx进程打开多个文件描述符数目,理论值应该是最多打开文件数量(ulimit -n)
## 与nginx进程数相处,但是nginx分配请求并不是那么均匀,所以最好与limit -n 的值保持一致
worker_rlimit_nofile 100001;

        事件模块

events {
    # 使用epoll的I/O模型。linux建议epoll,FreeBSD建议采用kqueue,windos下不指定
    use epoll;

    # 每个工作进程的最大连接数
    worker_connections  1024;

    # keepalive 超时时间
    keepalive_timeout 60;

    # 客户端请求头部最大的缓冲区大小。根据系统的分页大小进行设定,可以通过getconf PAGESIZE 获得
    client_header_buffer_size 4k;

    # 将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一直 
    # inactive 是指经过多长时间没有被请求,删除缓存
    open_file_cache max=100001 inactive=60s

    # 这个是指多场时间检查一次缓存的有效信息
    open_file_cache_valid 80s

    # 指在inactive参数时间内使用的最少次数,如果不满足,将被移除
    open_file_cache_min_uses 1;
}

        http模块

http {
    # 设定mime类型,类型由mime.type 文件定义
    include       mime.types;

    # 
    default_type  application/octet-stream;

    # 日志格式这是
    # - &remote_addr和 $http_x_forwarded_for 记录客户端的ip地址
    # - &remote_user 记录客户端所用的名称
    # - &time_local 记录访问的时间于时区
    # - &request    记录请求的url和http协议
    # - $body_bytes_sent 记录发送给客户端文件主体内容大小
    # - $http_referer 记录从哪个页面连接访问过来的
    # - $http_user_agent 记录客户端浏览器的相关信息
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    # 用了log_format指令 设置日志格式口,需要access_log指令指定日志文件的存放路径
    access_log  logs/access.log  main;

    # 客户端请求头部的的缓冲区大小。可以根据系统分页的大小来设置。getconf PAGESIZE 取得
    client_header_buffer_size 4k;

    # 客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如
header过大,它会使用large_client_header_buffers来读取。
    large_client_header_buffers 8 128k;
    
    # 指定缓存是否启用
    open_file_cache max=102400 inactive=20s;

    # 通过nginx上传文件的大小
    client_max_body_size 300m;

    # sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime。
    sendfile        on;
    
    # 此选项允许或禁止使用socke的TCP_CORK的选项,此选项仅在使用sendfile的时候使用
    tcp_nopush     on;

    # 后端服务器连接的超时时间_发起握手等候响应超时时间
    proxy_connect_timeout 90; 
    
    # 连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)
    proxy_read_timeout 180;

    # 后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据
    proxy_send_timeout 180;

    # 设置从被代理服务器读取的第一部分应答的缓冲区大小,通常情况下这部分应答中包含一个小的应答头,默认情况下这个值的大小为指令proxy_buffers中指定的一个缓冲区的大小,不过可以将其设置为更小
    proxy_buffer_size 256k;

    # 设置用于读取应答(来自被代理服务器)的缓冲区数目和大小,默认情况也为分页大小,根据操作系统的不同可能是4k或者8k
    proxy_buffers 4 256k;

    # keepalive超时时间
    keepalive_timeout  65;


    # 负载均衡的配置 四种方式(轮询,权重,ip_hash、fair)
    # 在需要使用负载均衡的server中增加  proxy_pass http://anyboot/;
    # 1、轮询    (按照访问顺序,注意分配到不同的服务器,服务宕机后,自动剔除)
    upstream anyboot {

        server 127.0.0.1:8027;

        server 127.0.0.1:8028;
    }

    # 2、权重 (weight和访问比率成正比)
    upstream anyboot {
        server 192.168.0.14 weight=10;
        server 192.168.0.15 weight=10;
    }

    # 3、ip_hash (每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题)
    upstream anyboot {
        ip_hash;
        server 192.168.0.14:88;
        server 192.168.0.15:80;
    }

    # 4、fair (按后端服务器的响应时间来分配请求,响应时间短的优先分配)
    upstream anyboot {
        server server1;
        server server2;
        fair;
    }
    
    # 配置虚拟机
    server {

        # 监听的端口
        listen       80;

        # 访问的域名
        server_name  localhost;

        # 设置被代理的服务器端口,或者套接字,以及URL
        proxy_pass http://img_relay$request_uri;

        # 以下三行,目的是将代理服务器收到的用户的信息传到真实服务器上
        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

倪家李子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值