初始Nginx

Nginx(“engine x”)是一款高性能的HTTP和反向代理(指以代理服务器接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端)服务器。它能够支持高达50000个并发连接数的响应,而内存、CPU等系统资源消耗非常低、运行非常稳定。

​ Nginx配置文件主要分为4部分:main(全局配置)、server(虚拟主机配置)、upstream(主要为方向代理、负载均衡相关配置)和location(目录匹配配置)。

​ main部分的指令将影响其他所有部分;server部分的指令主要用于指定虚拟主机域名、IP和端口;location部分用于匹配网页位置(例如,根目录“/”、“/images”等);upstream的指令用于设置反享代理及后端服务器的负载均衡。

​ location部分会继承server部分的指令,而server部分会继承main部分的指令;upstream即不会继承指令也不会影响其他部分。它有自己的特殊指令,不需要在其他地方运用。

#指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍)
worker_processes  4;
#使用的用户和组
user www www;

#指定错误日志存放的路径,错误日志记录级别可选项为:[debug | info | notice | warn | error | crit]
error_log  logs/error.log;
#指定pid存放的路径
pid        logs/nginx.pid;

events {
    #使用的网络I/O模式,Linux系统一般采用epoll模型
    use epoll;
    #允许连接数
    worker_connections  10240;
}

#处理http请求
http {
    server_names_hash_bucket_size 256;
    server_names_hash_max_size 1024;
    include       mime.types;
    default_type  application/octet-stream;
    #设置使用的字符集,如果一个网站有多种字符集,不要随便设置,应在html进行设置
    #charset utf-8
    #设置日志的记录格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent $request_body "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;
    server_tokens off;
    
    #limit_req_zone $binary_remote_addr zone=req_zone:50m rate=3r/s;
    #limit_conn_zone $binary_remote_addr zone=conn_zone:50m;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;

    keepalive_timeout 60;
    fastcgi_intercept_errors on;
    proxy_intercept_errors on;
  
    #设置客户端请求最大单个文件字节数
    client_max_body_size 100M; 
    #缓冲区代理缓冲用户端请求的最大字节数
    client_body_buffer_size 1M;
  
    #跟后端服务器连接的超时时间_发起握手等候响应超时时间
    proxy_connect_timeout 600;
    #连接成功后等候后端服务器响应时间_已经进入后端的排队之中等候处理
    proxy_read_timeout 600;
    #后端服务器数据回传时间_在规定时间之内后端服务器必须传完所有的数据
    proxy_send_timeout 600;
    
    #代理请求缓存区_这个缓存区间会保存用户的头信息以供Nginx进行规则处理_一般保存头部信息即可
    proxy_buffer_size 128k;
    #同上 告诉Nginx保存单个用的几个Buffer最大使用多大空间
    proxy_buffers 4 64k;
    #如果系统很忙的时候可以申请更大的proxy_buffers 官方推荐*2
    proxy_busy_buffers_size 128k;

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 4k;
    fastcgi_buffers 8 4k;

    #开启gzip压缩
    gzip on;
    gzip_disable "msie6";
    gzip_min_length 1k;
    gzip_buffers 16 64k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types *;
    gzip_vary on;
  
   upstream msg_server_pool{
    server 192.168.1.10:80 weight=4 max_fails=2 fail_timeout=30s;
    server 192.168.1.11:80 weight=4 max_fails=2 fail_timeout=30s;
    server 192.168.1.12:80 weight=4 max_fails=2 fail_timeout=30s;
  }

  #表示虚拟主机,可配置多个
    server {
        #监听端口
        listen       80;
        #域名地址或者ip地址
        server_name  localhost;
        #允许对不同的URI进行不同的配置,既可以使用字符串,也可以使用正在表达式。使用正则表达式,必须使用以下前缀:
     #   ~*,表示不区分大小写的匹配
     #  ~,表示区分大小写的匹配
    #在匹配过程中,先匹配字符串,再匹配正则表达式。匹配谁写在前面谁先匹配到,匹配到第一个,会停止搜索   
    #如果匹配正则则使用正则匹配到的结果;如果没有则使用字符串匹配到的结果。
    #可以使用前缀“^~”来禁止匹配到字符串后,再去匹配正则表达式。即字符串匹配到就停止。
    #可以使用“=”来进行精确匹配,如果找到,则停止。
        location / {
            root   html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
  
     server {
        listen       80;
        server_name  www.demo.com;
        #访问http://www.demo.com/msg/***地址,反向代理msg_server_pool这组服务器
        location /msg/ {
           proxy_pass http://msg_server_pool;
           proxy_set_header Host $host;
           proxy_set_header X-Forwarder-For $remote_addr;
        }
    
        access_log /data/logs/msg.demo.com_access.log;
    }
    
    
}

​ 以上是一部分配置,实际配置要根据不同的场景进行相关的配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值