nginx主要配置

用户流量经过nginx端的分流到多个tomcat实例上,下面介绍一下nginx常用的配置文件nginx.conf
 
//运行worker进程的用户
user  xxx;
//启动的进程数量,通常设置为和cpu核数一致
worker_processes  8;
//worker进程的最大打开文件数限制,需要设置的高,否则文件描述符会不够用。
worker_rlimit_nofile 102400;

//错误日志
error_log  /var/logs/error.log;
//pid文件
pid        /var/logs/nginx.pid;

//events模块包含nginx中关于连接的部分
events {
    //一个worker进程可以同时打开的最大连接数目,这个数目需要和worker_rlimit_nofile协调。socket占用一个文件描述符
    worker_connections  1024;
    //采用epoll方式处理高并发连接,不写的话会默认选择最好的方式。
    user epoll;
}


http {
    //include 作用就是复制文件内容到所在位置
    //文件扩展名与文件类型映射表,nginx根据映射关系,设置http请求响应头的content-type值,在映射表中找不到的时候使用default_type
    include       mime.types;
    default_type  application/octet-stream;

    //log格式
    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  welove  '$remote_addr [$time_local] $host $request $status $body_bytes_sent request_time: $request_time   upstream_response_time: $upstream_response_time $http_accept_language';

    #access_log  logs/access.log  main;
    access_log   off;

    //linux sendfile api可以减少内核和用户层面的拷贝次数,加快效率。
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    gzip_min_length 1k;
    gzip_types text/plain application/x-javascript text/css application/xml application/json;

    //server_tag字段用于设置response里面的Server字段,可以用来隐藏服务器的一些信息
    server_tag UGuess;
    
    deny 11.11.11.11;

    #fastcgi_intercept_errors on;

    upstream welove520 {
        server 127.0.0.1:8080 weight=10;
        server 192.168.1.1:8080 weight=10;
    }

    //定义了虚拟主机
    server {
        //监听的端口
        listen       80;
        //监听的域名
        //nginx基于域名和IP来混合进行定位,当不匹配的时候或者只有一个server的时候默认采用第一个server
        //这里用localhost是不对的(对于我们服务来说),但是由于是默认的server所以没有问题。
        //http://tengine.taobao.org/nginx_docs/cn/docs/http/request_processing.html
        server_name  localhost;
        access_log off;
        //location用于匹配URI
        location / {
                proxy_pass  http://welove520; //请求转发给welove520指定的服务器列表

                //设置一些header,后端tomcat工程可以获取这些值
                proxy_set_header   Host             $host;//
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
                //限制客户端上传数据的大小,如果需要上传大文件一定要注意用到这个参数,否则数据会被丢弃
                client_max_body_size       15m;
                proxy_connect_timeout      150;
                proxy_send_timeout         150;
                proxy_read_timeout         150;
                proxy_next_upstream        error timeout invalid_header http_500;
                proxy_buffer_size          32k;
                proxy_buffers              32 64k;
                proxy_busy_buffers_size    128k;
        }
    }
}
在nginx中将流量通过upstream模块导到后端tomcat服务器上,然后在服务器上处理用户请求并返回。

参考资料:http://tengine.taobao.org/nginx_docs/cn/docs/http/request_processing.html

原文地址:https://www.cnblogs.com/hpf311/p/5069380.html