#定义Nginx运行的用户和用户组
user www www;
#启动进程,通常设置成和cpu的数量相等
worker_processes 8;
#全局错误日志及PID文件
#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log error.log;
pid nginx.pid;
#工作模式及连接数上限
events {
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
worker_connections 1024;#单个后台worker process进程的最大并发链接数
# multi_accept on;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
#设定mime类型,类型由mime.type文件定义
include mime.types;
default_type application/octet-stream;
#设定日志格式
#log_format main '$remote_addr - $remote_user [$time_local] $request '
# '"$status" $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
#必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
sendfile on;
#tcp_nopush on;
#连接超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
#开启gzip压缩
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
#设定请求缓冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#设定负载均衡的服务器列表
upstream myService {
#weigth参数表示权值,权值越高被分配到的几率越大
server 192.168.10.1:8080 weight=5;
server 192.168.10.2:8080 weight=1;
server 192.168.10.3:8080 weight=6;
}
server {
#侦听80端口 域名可以有多个,用空格隔开
listen 80;
#定义使用www.xx.com访问
server_name www.xx.com xxx.com;
#设定本虚拟主机的访问日志
access_log logs/www.xx.com.access.log main;
#默认请求 ,当做http服务器使用,处理静态文件
location / {
root /root; #定义服务器的默认网站根目录位置
index index.html index.htm; #定义首页索引文件的名称
}
#配合上面的 upstream myService使用 做负载均衡
location / {
proxy_pass http://myService;
#如果不加 下面的一段nginx是不会去判断真正的客户端ip的,而是直接把路由的地址作为请求ip
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#nginx 反向代理到 tomcat的8080端口 配置如下
location / {
proxy_pass http://192.168.10.1:8080;
#rewrite
}
location /test {
proxy_pass http://192.168.10.1:8080;
}
#rewrite 和 proxy_pass
# 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root;
}
#静态文件,nginx自己处理,不经过tomcat
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /var/www/virtual/htdocs;
#过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
expires 30d;
}
#禁止访问 .htxxx 文件
location ~ /\.ht {
deny all;
}
}
user www www;
#启动进程,通常设置成和cpu的数量相等
worker_processes 8;
#全局错误日志及PID文件
#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log error.log;
pid nginx.pid;
#工作模式及连接数上限
events {
use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
worker_connections 1024;#单个后台worker process进程的最大并发链接数
# multi_accept on;
}
#设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
#设定mime类型,类型由mime.type文件定义
include mime.types;
default_type application/octet-stream;
#设定日志格式
#log_format main '$remote_addr - $remote_user [$time_local] $request '
# '"$status" $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;
#sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,
#必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
sendfile on;
#tcp_nopush on;
#连接超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
#开启gzip压缩
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
#设定请求缓冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
#设定负载均衡的服务器列表
upstream myService {
#weigth参数表示权值,权值越高被分配到的几率越大
server 192.168.10.1:8080 weight=5;
server 192.168.10.2:8080 weight=1;
server 192.168.10.3:8080 weight=6;
}
server {
#侦听80端口 域名可以有多个,用空格隔开
listen 80;
#定义使用www.xx.com访问
server_name www.xx.com xxx.com;
#设定本虚拟主机的访问日志
access_log logs/www.xx.com.access.log main;
#默认请求 ,当做http服务器使用,处理静态文件
location / {
root /root; #定义服务器的默认网站根目录位置
index index.html index.htm; #定义首页索引文件的名称
}
#配合上面的 upstream myService使用 做负载均衡
location / {
proxy_pass http://myService;
#如果不加 下面的一段nginx是不会去判断真正的客户端ip的,而是直接把路由的地址作为请求ip
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#nginx 反向代理到 tomcat的8080端口 配置如下
location / {
proxy_pass http://192.168.10.1:8080;
#rewrite
}
location /test {
proxy_pass http://192.168.10.1:8080;
}
#rewrite 和 proxy_pass
# 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root;
}
#静态文件,nginx自己处理,不经过tomcat
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
root /var/www/virtual/htdocs;
#过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
expires 30d;
}
#禁止访问 .htxxx 文件
location ~ /\.ht {
deny all;
}
}
}
============================================================================
修改nginx.conf之后测试一下配置文件是否正确
./nginx -t
nginx 启动
./nginx
nginx 重启
./nginx -s reload