[vc_row][vc_column width=”1/1″][vc_column_text]Original: http://www.simonzhang.net/?p=2105[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column width=”1/1″][vc_tour][vc_tab title=”HAProxy” tab_id=”1389928016-1-95″][vc_column_text]Install HAProxy
Dowanload address:
http://www.haproxy.org/download/1.4/src/haproxy-1.4.24.tar.gz
Install
make TARGET=linux26 ARCH=arm PREFIX=/program/haproxy
make install PREFIX=/program/haproxy
Configured as follows:
global log 192.168.1.132 local0 #log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 chroot /program/haproxy uid 0 #User's UID gid 0 #User's group daemon nbproc 1 pidfile /program/haproxy/run/haproxy.pid #debug #quiet defaults log global log 192.168.1.132 local3 #Log file output mode http #Processing category option httplog #Log category option httpclose option dontlognull option forwardfor option redispatch retries 2 #set multiple concurrent processes to improve performance maxconn 2000 balance roundrobin #Load balancing algorithm stats uri /haproxy-stats #The haproxy monitor page address # Vist by http://localhost:1080/haproxy-stats contimeout 5000 clitimeout 50000 srvtimeout 50000 listen localhost 0.0.0.0:1080 #Port and host name of the running mode http option httpchk GET / server s1 192.168.1.132:9900 weight 3 check server s2 192.168.1.80:8880 weight 3 check
Simply test as follows:
Start Service:
# /program/haproxy/sbin/haproxy -f /program/haproxy/haproxy.cfg
Reboot Service:
# /program/haproxy/sbin/haproxy -f /program/haproxy/haproxy.cfg -st `cat /program/haproxy/logs/haproxy.pid`
Stop Service:
# killall haproxy
#./haproxy -h explanation
-v Shield Version
-vv Compile Options
-V Version
-d Reception, debug mode
-db Shielded background mode
-D Startup daemon mode
-q Quiet mode
-c Check Syntax of the configuration files
-s Display statistics
-l Display detailed statistics
-ds Do not use speculative epoll
-de Do not use epoll
-dp Do not use poll
-sf FINISH signal will be sent to pidlist in the process after the program starts.Put this parametric at the end of command line.
-st TERMINATE signal will be sent to pidlist in the process after the program starts.Put this parametric at the end of command line.
[/vc_column_text][/vc_tab][vc_tab title=”Hginx” tab_id=”1389928016-2-58″][vc_column_text]Install nginx
Download address
http://nginx.org/download/nginx-1.5.6.tar.gz
Install pcre first.
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz
Then, configure, make, make install.
At the end, make a soft link.
ln -s /usr/local/lib/libpcre.so.1 /usr/lib/
Starting install nginx, compile the parameters as follows:
./configure –prefix=/program/nginx –user=root –group=root –with-pcre –with-select_module –with-poll_module –with-http_stub_status_module –with-http_ssl_module –with-http_realip_module –with-http_gzip_static_module
Configuration is as follows:
user root root; worker_processes 1; pid logs/nginx.pid; events { use epoll; worker_connections 5120; } http { include mime.types; default_type application/octet-stream; server_tokens off; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" "$request_time" ' '"$upstream_cache_status"'; access_log logs/access.log main ; sendfile on; keepalive_timeout 120; tcp_nodelay on; tcp_nopush on; client_header_buffer_size 128k; large_client_header_buffers 4 64k; reset_timedout_connection on; proxy_ignore_client_abort on; ###################################### upstream deploy_tool { server 192.168.1.132:9900; } server { listen 80; server_name 192.168.1.132; location / { proxy_pass_header Server; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; client_max_body_size 150m; proxy_connect_timeout 2000; proxy_send_timeout 2000; proxy_read_timeout 300; access_log off; proxy_pass http://deploy_tool; } location /status { stub_status on; access_log off; auth_basic_user_file /lnmp/nginx/conf/htpasswd; } } }
[/vc_column_text][/vc_tab][vc_tab title=”Summary” tab_id=”1389937217937-2-5″][vc_column_text]WEB project using my deployment tools, just connect to the home page. python use 2.7. Pressure tool is to write multi-threaded access to the page code with urllib2, concurrent 150. Test results are as follows:
Conclusion:
If you simply reverse connection, both have the same efficiency. HAProxy back end detection works well, for handling long connection is also very good. Can load mysql and other servers. nginx has a more powerful modules, such as cache, uwsgi together with other functions, nginx on a lot of convenience. WEB services uses nginx, others need loads can use HAProxy.[/vc_column_text][/vc_tab][/vc_tour][/vc_column][/vc_row]
Leave a Reply
You must be logged in to post a comment.