nginx的配置说明

Nginx是主流的web负载、代理转发工具,这里说明nginx的配置。其配置文件是nginx/conf/nginx.conf文件。

总览ngnix.conf

user  nobody;
worker_processes  1;
error_log  logs/error.log  error;
pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    gzip  on;

    upstream  myClusterServer1 {
       server 127.0.0.1:8081  weight=5;
       server 127.0.0.1:8082  weight=5;
       server 127.0.0.1:8083  weight=5;
    }

    server {
        listen 80;
        server_name 127.0.0.1;
        charset utf-8;
        location / {
            root html;
            index index.html index.htm index.jsp;
            proxy_pass http://myClusterServer1;
            proxy_redirect defaut;
            proxy_connect_timeout 10;
        }
        error_page 404 /404.html;
        error_page 500 502 503 503 /50x.html;
        location = /50x.html{
            root html;
        }
    }
}

1.创建进程的用户和用户组

user  nobody

2.服务进程数量,一般等于CPU数量

worker_processes 1;

3.全局错误日志定义

建议开启error级别日志,如输出错误日志或以上内容到 logs/error.log 文件:

error_log logs/error.log error;

可选级别:

级别说明
debug调试内容或以上
info信息内容或以上
notice通知内容或以上
warn警告内容或以上
error错误内容或以上
crit致命异常内容或以上

4.记录进程ID的文件

pid logs/nginx.pid;

5.启用epoll多路复用提高性能

epoll多路复用IO(I/O Multiplexing)中的一种方式,但仅用于linux2.6以上内核,可以大大提高nginx的性能。

Linux建议使用epoll,FreeBSD建议使用kqueue。

events {
   use epoll;
   worker_connections  1024;
}

说明:worker_connections 表示一个worker_processe允许的最近并发连接数量。

6.常用http设置

http {
   include       mime.types;
   default_type  application/octet-stream;
   access_log    logs/access.log  main;
   sendfile      on;
   keepalive_timeout  65;
}

7.http>gzip配置

ngnix可开启gzip功能来降低数据大小,以提高数据传输效率。gzip常用配置如下:

http {
    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 2;   
    gzip_vary on;
    gzip_types text/plain text/javascript text/css application/xmlapplication/x-javascript application/json;
}
  • 开启gzip

    gzip  on; 
  • 最小压缩文件大小

    gzip_min_length 1k; 
  • 压缩缓冲区

    gzip_buffers 4 16k;  
  • http的协议版本(1.0/1.1)

    • 默认1.1,前端如果是squid2.5请使用1.0。
    gzip_http_version 1.1;
  • gzip压缩比

    • 1压缩比最小处理速度最快。
    • 9压缩比最大但处理速度最慢(传输快但比较消耗cpu)。
    gzip_comp_level 2;   
  • 自动识别是否压缩

    • 有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,可启用vary,以便根据客户端的HTTP头来判断是否需要压缩。
    gzip_vary on;
  • gzip压缩类型

    gzip_types text/plain text/javascript text/css 

注意:不用添加text/html,否则会有警告信息。

8.http>upstream 负载均衡服务器列表

http {
    upstream  myClusterServer1 {
       server 127.0.0.1:8081  weight=5;
       server 127.0.0.1:8082  weight=5;
       server 127.0.0.1:8083  weight=5;
    }

    server {
        listen 80;
        server_name 127.0.0.1;
        charset utf-8;
        location / {
            root html;
            index index.html index.htm index.jsp;
            proxy_pass http://myClusterServer1;
            proxy_redirect defaut;
            proxy_connect_timeout 10;
        }
        error_page 404 /404.html;
        error_page 500 502 503 503 /50x.html;
        location = /50x.html{
            root html;
        }
    }
}
  • server指定服务器

    • 域名或IP:端口号表示服务器地址。
    • weight 参数表示权值,权值越高被分配到的几率越大。
    server 127.0.0.1:8081  weight=5;

9.http>server配置服务节点

http {
    upstream  myClusterServer1 {
       server 127.0.0.1:8081  weight=5;
       server 127.0.0.1:8082  weight=5;
       server 127.0.0.1:8083  weight=5;
    }

    server {
        listen 80;
        server_name 127.0.0.1;
        charset utf-8;
        location / {
            root html;
            index index.html index.htm index.jsp;
            proxy_pass http://myClusterServer1;
            proxy_redirect defaut;
            proxy_connect_timeout 10;
        }
        error_page 404 /404.html;
        error_page 500 502 503 503 /50x.html;
        location = /50x.html{
            root html;
        }
    }
}
  • nginx监听的端口号。
listen       80;
  • 侦听域名可以有多个,用空格隔开。
server_name  localhost 127.0.0.1;
  • 字符编码方式
charset utf-8;
  • 设定本虚拟主机的访问日志。
    • 关闭日志可以减少IO,提高性能。
access_log logs/host.access.log  main;
  • http>server>location默认请求配置
location / {
    root html;
    index index.html index.htm index.jsp;
    proxy_pass http://myClusterServer1;
    proxy_redirect defaut;
    proxy_connect_timeout 10;
}
  • 定义服务器的默认网站根目录位置
root html;
  • 定义首页索引文件的名称
index  index.html index.htmindex.jsp;
  • 请求转向myClusterServer1定义的服务器列表
proxy_pass    http://myClusterServer1;
  • 代理连接超时时间
    根代理服务器连接的超时时间,必须留意这个timeout时间不能超过75秒,当一台服务器当掉时,过10秒转发到另外一台服务器。
proxy_connect_timeout 10;
  • error_page 配置错误重定向地址,

可配置一个错误重定向,如404错误重定向到/404.html 路径:

error_page 404 /404.html;

亦可批量重定向,如50x错误通配符:

error_page   500 502 503 504  /50x.html;
   location = /50x.html {
       root   html;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

名栩

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

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

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

打赏作者

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

抵扣说明:

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

余额充值