//運行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;
}
}
}