1. 架构说明: nginx + 4个tomcat
nginx作为前端代理,并且肩负负载均衡的作用,多个tomcat可以解决单台服务器高并发的性能问题,至于后端放几个tomcat要看你的服务器有多大内存,我的服务器是4核的CPU,8G内存。
2. nginx安装简单说明:
编译参数:
--prefix=/opt/mysql/ --enable-assembler --with-extra-charsets=complex \
--enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server \
--enable-local-infile --with-plugins=innobase
可以根据自己的环境修改配置
nginx.conf配置:
- user www;
- worker_processes 8;
- error_log /opt/logs/nginx/default/error/log;
- pid logs/nginx.pid;
- worker_rlimit_nofile 51200;
- events {
- use epoll;
- worker_connections 1024; #有的设置到65535
- }
- http {
- include mime.types;
- default_type application/octet-stream;
- server_names_hash_bucket_size 128;
- client_header_buffer_size 128k;
- large_client_header_buffers 8 128k;
- client_max_body_size 200m;
- client_body_buffer_size 128k;
- proxy_connect_timeout 600;
- proxy_read_timeout 600;
- proxy_send_timeout 600;
- proxy_buffer_size 16k;
- proxy_buffers 4 32k;
- proxy_busy_buffers_size 64k;
- log_format main '$remote_addr $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
- access_log /opt/logs/nginx/default/access/log main;
- sendfile on;
- tcp_nopush on;
- tcp_nodelay on;
- keepalive_timeout 65;
- fastcgi_connect_timeout 300;
- fastcgi_send_timeout 300;
- fastcgi_read_timeout 300;
- fastcgi_buffer_size 64k;
- fastcgi_buffers 4 64k;
- fastcgi_busy_buffers_size 128k;
- fastcgi_temp_file_write_size 128k;
- gzip on;
- gzip_min_length 1k;
- gzip_buffers 4 16k;
- gzip_comp_level 8;
- gzip_http_version 1.1;
- gzip_types text/plain application/xml;
- gzip_vary on;
- proxy_temp_path /opt/nginx_cache/proxy_temp_path;
- proxy_cache_path /opt/nginx_cache/proxy_cache_path levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
- upstream testservers {
- server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
- server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
- server 127.0.0.1:8082 weight=1 max_fails=2 fail_timeout=30s;
- server 127.0.0.1:8083 weight=1 max_fails=2 fail_timeout=30s;
- }