Nginx代理服务器 、 Nginx优化、ab工具

Nginx代理服务器

 

集群要求

 

- 虚拟机1:A
ip 192.168.2.5 192.168.4.5
主机名  proxy

- 虚拟机2:B

ip 192.168.2.100
主机名 web1

- 虚拟机3:C

ip 192.168.2.200
主机名 web2

改名:

 

hostnamectl set-hostname web1
hostnamectl set-hostname web2

web1 web2 安装httpd

 

    
        #gzip  on;
    upstream webserver {
            server 192.168.2.100:80;
            server 192.168.2.200:80;
    }
        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                proxy_pass http://webserver;
                root   html;
                index  index.html index.htm;
            }

nginx自动检测后台服务器是否正常

轮询默认你一次我一次 ;认为设置优先级


    upstream webserver {
            server 192.168.2.100:80 weight=1;
            server 192.168.2.200:80 weight=2;
    }

服务器访问失败的次数 max_fails 最大访问失败次数,列为不可用状态 fail_timeout 到达最大访问失败次数后隔20s再访问


    upstream webserver {
            server 192.168.2.100:80 weight=1 max_fails=2 fail_timeout=20;
            server 192.168.2.200:80 weight=1 max_fails=2 fail_timeout=20;
    }

down 暂时不用

 

    
    upstream webserver {
            server 192.168.2.100:80 weight=1 max_fails=2 fail_timeout=20;
            server 192.168.2.200:80 weight=1 max_fails=2 fail_timeout=20;
            server 192.168.2.10 down;
    }

ip_hash 相同客户端访问相同服务器

 


    upstream webserver {
            ip_hash;
            server 192.168.2.100:80 weight=1 max_fails=2 fail_timeout=20;
            server 192.168.2.200:80 weight=1 max_fails=2 fail_timeout=20;
            server 192.168.2.10 down;
    }

./configure –with-stream

 


    ./configure --with-stream --with-http_stub_status_module  

配置nginx 实现四层代理 ssh服务

 

	
	stream {
	        upstream backend {
	                server 192.168.2.100:22;
	                server 192.168.2.100:22;
	        }
	        server {
	                listen 12345;
	                proxy_pass backend;
	        }
	}
	
	http {
	    include       mime.types;
	    default_type  application/octet-stream;

本机连接ssh

 

	
	ssh 192.168.4.5 -p 12345
	rm -rf ~/.ssh/known_hosts

xshell 连接ssh

 


	ssh 192.168.4.5 12345

nginx 设置拒绝访问

 

	
	    server {
	        listen       80;
	        server_name  localhost;
	
	        #charset koi8-r;
	
	        #access_log  logs/host.access.log  main;
	
	        location / {
	            deny 192.168.2.100;
	            root   html;
	            index  index.html index.htm;
	        }

如何查看服务器状态信息 非常重要

 

	
	  location /status{
	                stub_status on;
	                #allow Ip地址
	                #deny
	        }

http://192.168.4.5/status

	
	Active connections: 1  # 并发访问
	server accepts handled requests
	 7 7 33 
	Reading: 0 Writing: 1 Waiting: 0

Nginx优化

 

高并发修改

 

修改nginx的并发数量

	
	worker_processes  1; # cpu几核改成几  进程数
	
	#user  nobody;
	worker_processes  2;
	
	#error_log  logs/error.log;
	#error_log  logs/error.log  notice;
	#error_log  logs/error.log  info;
	
	#pid        logs/nginx.pid;
	
	
	events {
	# 连接数
	    worker_connections  65535;
	}

修改linux系统的能够处理的文件数量

临时修改

 

	
	ulimit -Hn #访问文件数量的硬件设置,不能超
	
	ulimit -Sn #访问文件数量的软件设置  可以超
	
	[root@proxy nginx]# ulimit -Hn 100000
	[root@proxy nginx]# ulimit -Sn 100000

永久修改 /etc/security/limits.conf

 

	
	* hard nofile  100000
	* soft nofile  100000
	
	用户或组  硬限制或软限制 需要限制的项目  限制的值

优化地址栏长度 防止414错误

client_header_buffer_size 1k;

 

	
	http {
	    include       mime.types;
	    default_type  application/octet-stream;
	    # 请求头长度给1K 如果不够,再分4个4K的给你
	    client_header_buffer_size 1k;
	    large_client_header_buffers 4 4k;
	
	
	    client_header_buffer_size 100k;
	    large_client_header_buffers 4 1000k;

缓存优化

 

	
	 location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
	                expires  30d;
	        }

firefox 查看缓存

about:cache

ab工具

 

	
	yum -y install httpd-tools
	10个人访问10次 也就是1个人访问一次
	ab -c 10 -n 10 http://192.168.2.5/

评论