配置在东西就手写了,直接copy了,嘿嘿!!
这些配置都在主目录的conf文件夹下的nginx.xml中配置.
- worker_processes auto; 表示工作进程的数量,一般设置为cpu的核数, 设置为auto 则表示自动检测.
- worker_rlimit_nofile 100000; 更改 worker 进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。这样 nginx 就不会有“too many open files”问题了
events {
worker_connections 1024;
multi_accept on;
use epoll;
}
- events 模块中包含 nginx 中所有处理连接的设置 其中worker_connections 表示每个工作进程的最大连接数
- multi_accept 告诉 nginx 收到一个新连接通知后接受尽可能多的连接 use 设置用于复用客户端线程的轮询方法。如果你使用
Linux 2.6+,你应该使用 epoll。如果你使用*BSD,你应该使用 kqueue。
http{
server_tokens off;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
gzip on;
}
HTTP 模块控制着 nginx http 处理的所有核心特性。
- server_tokens 并不会让 nginx 执行的速度更快,但它可以关闭在错误页面中的 ngin
版本数字,这样对于安全性是有好处的。 - sendfile 可以让 sendfile()发挥作用。sendfile()可以在磁盘和 TCP socket之间互相拷贝数据(或任意两个文件描述符)。Pre-sendfile 是传送数据之前在用户空间申请数据缓冲区。之后用read()将数据从文件拷贝到这个缓冲区,write()将缓冲区数据写入网络。sendfile()是立即将数据从磁盘读到 OS缓存。因为这种拷贝是在内核完成的,sendfile()要比组合 read()和write()以及打开关闭丢弃缓冲更加有效(更多有关于sendfile) tcpnopush 告诉 nginx 在一个数据包里发送所有头文件,而不一个接一个的发送
server{
listen 80;
server_name www.fancheng.com;
location / {
root html;
index index.html index.htm;
}
}
- Server 块定义了虚拟主机
- listen 配置监听的端口号
- server_name 监听域名 www.fancheng.com == http://192.168.1.109
- proxy_pass 指定跳转的 tomcat 服务器
- location{}是用来为匹配的 URI 进行配置,URI 即语法中的“/uri/”。location / { }匹
配任何查询,因为所有请求都以 / 开头 - root 指定对应 uri 的资源查找路径,这里 html 为相对路径
- index 指定首页 index 文件的名称,可以配置多个,以空格分开。如有多个,按配 置顺序查找。
upstream myserver{
#weigth参数表示权值,权值越高被分配到的几率越大
server 192.168.1.109:8080 weight=1;
server 192.168.1.109:8081 weight=2;
}
#设置负载均衡的服务器列表
#设置正则表达式,配置拦截后跳转指向
location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {
root G:\\ZHG\\server\\nginx-1.8.2\\static\\WebRoot;
}
location ~* \.(jsp|action){
proxy_pass http://nginx_tomcat;
}