纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。
Linux技术交流QQ群:2636170(七月份最新!!)
1、nginx安装
安装openssl、zlib、pcre包,命令:yum -y install openssl openssl-devel zlib zlib-devel pcre pcre-devel
安装c++包,命令:yum install -y gcc gcc-c++
解压nginx包,命令:tar -zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure
make
make install
验证是否安装成功:cd /usr/local/nginx/,执行./nginx -t,如下图:
2、nginx开机自启
vi /etc/init.d/nginx (输入下面的代码)
#!/bin/sh
#
# nginx - this starts and stops the nginx daemon
#
# chkconfig: - 85 15
# deion: Nginx is an HTTP(S) server, HTTP(S) reverse
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
killall -9 nginx
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
设置文件的访问权限
chmod a+x /etc/init.d/nginx (a+x ==> all user can execute 所有用户可执行)
vi /etc/rc.local
加入一行 /etc/init.d/nginx start 保存并退出,下次重启会生效。
3、一台机器多tomcat部署
下载tomcat
修改server.xml配置文件
第一处:
第二处:
第三处:
分别修改bin下的启动文件(startup.sh)
3、nginx负载均衡集群配置
修改nginx.conf配置文件
配置服务器组,在http{}节点之间添加upstream配置。(注意不要写localhost,不然访问速度会很慢)
修改nginx监听的端口号80,改为8080
在location{}中,利用proxy_pass配置反向代理地址;此处“https://”不能少,后面的地址要和第一步upstream定义的名称保持一致
访问url:https://nginxip:8080/nginxdemo
4、补充nginx负载均衡策略
1、轮询(默认)
每个web请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream nginxDemo { server 127.0.0.1:8081; server 127.0.0.1:8082;
}
2、最少链接
web请求会被转发到连接数最少的服务器上。
upstream nginxDemo {
least_conn;
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
3、weight 权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况,weight默认是1。
#服务器A和服务器B的访问比例为:2-1;比如有3个请求,前两个会访问A,三个访问B,其它规则和轮询一样。
upstream nginxDemo { server 127.0.0.1:8081 weight=2; #服务器A
server 127.0.0.1:8082; #服务器B
}
4、ip_hash
每个请求按访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一服务器进行处理,可以解决session的问题。当后台服务器宕机时,会自动跳转到其它服务器。
upstream nginxDemo {
ip_hash;
server 127.0.0.1:8081 weight=2; #服务器A
server 127.0.0.1:8082; #服务器B
}
基于weight的负载均衡和基于ip_hash的负载均衡可以组合在一起使用。
5、url_hash(第三方)
url_hash是nginx的第三方模块,nginx本身不支持,需要打补丁。
nginx按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存服务器、文件服务器、静态服务器时比较有效。缺点是当后端服务器宕机的时候,url_hash不会自动跳转的其他缓存服务器,而是返回给用户一个503错误。
upstream nginxDemo { server 127.0.0.1:8081; #服务器A
server 127.0.0.1:8082; #服务器B
hash $request_url;
}
6、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream nginxDemo {
server 127.0.0.1:8081; #服务器A
server 127.0.0.1:8082; #服务器B
fair;
}
原文来自: https://my.oschina.net/jzgycq/blog/877342
让您学习到的每一节课都有所收获
《Linux就该这么学》是由资深运维专家刘遄及全国多名红帽架构师(RHCA)基于最新RHEL7系统共同编写的高质量Linux技术自学教程,极其适合用于Linux技术入门教程或讲课辅助教材。
? 刘遄老师QQ:5604241 微信:gnu_chuan
? 学员助教QQ:5604674
?Linux技术交流A群(满):560843
? Linux技术交流B群:340829
? Linux技术交流C群:463590
? Linux技术交流D群:915246
? Linux技术交流E群:1663106
? Linux技术交流F群:1653851
? Linux技术交流G群:2632018(新群,火热加群中……)
? 官方站点:www.linuxprobe.com
? 电脑在线阅读效果更佳:
https://www.linuxprobe.com/chapter-00.html
按住图片3秒,即可自动关注。