nginx 最重要的配置文件nginx.conf:
一般的配置我不做解释,网上到处都是,主要对主要的几点进行注释(如下)
worker_processes 8;
error_log /data/logs/nginx_error.log crit;
worker_rlimit_nofile 655350;
events {
use epoll;
worker_connections 10240;
}
http {
sendfile on;
#tcp_nopush on; //这是不作缓冲数据的设置,对于play framework这种需要宽进快出的web-server construction 需要屏蔽掉
#tcp_nodelay on;//同上
keepalive_timeout 65;//超时时间
types_hash_max_size 2048;
limit_zone one $binary_remote_addr 10m;
client_max_body_size 30m;
include mime.types;
default_type application/octet-stream;
access_log /data/logs/access.log;
//以下是压缩相关配置
gzip on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_types text/plain application/x-javascript text/css application/xml;
upstream web {
server 127.0.0.1:8080;
}
//定义一组服务器
upstream api {
server 127.0.0.1:9000;
server 127.0.0.1:9003;
}
//定义一组服务器
upstream api1 {
server 10.200.57.155:9000;
server 127.0.0.1:9004;
}
//.....
upstream admin {
server 127.0.0.1:9002;
}
.......
//监听端口
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/cacert.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
server_name api.fastooth.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Refer $http_referer;
//根据请求的url进行分流,可以直接进行返回http status
if ( $uri ~* (.*)(location) ) {
return 200;
break;
}
//根据请求的url进行分流,选择不同的服务器
if ( $uri ~* (.*)(dealMessage) ) {
proxy_pass http://api1;
}
if ( $uri ~* (.*)(runLog) ) {
proxy_pass http://api1;
}
proxy_pass http://api;
proxy_pass https://223.4.174.21;
}
}
}