Author: haoransun
Wechat: SHR—97
学习来源:极客时间-Nginx核心知识100讲,本人购买课程后依据视频讲解汇总成个人见解。
前言
Nginx是一款轻量级高性能的Web服务器/反向代理服务器,
并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,
中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
1 新方法安装
Nginx是C语言开发,
1 | 1. gcc安装 |
2 老方法安装
安装gcc
rpm -Uvh glibc-2.12-1.209.el6_9.2.x86_64.rpm glibc-common-2.12-1.209.el6_9.2.x86_64.rpm libgcc-4.4.7-18.el6_9.2.x86_64.rpm tzdata-2018e-3.el6.noarch.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm cpp-4.4.7-18.el6_9.2.x86_64.rpm glibc-devel-2.12-1.209.el6_9.2.x86_64.rpm glibc-headers-2.12-1.209.el6_9.2.x86_64.rpm kernel-headers-2.6.32-696.30.1.el6.x86_64.rpm libgomp-4.4.7-18.el6_9.2.x86_64.rpm mpfr-2.4.1-6.el6.x86_64.rpm ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh gcc-4.4.7-18.el6_9.2.x86_64.rpm
安装gcc-c++
rpm -Uvh libstdc++-4.4.7-18.el6_9.2.x86_64.rpm
rpm -ivh libstdc++-devel-4.4.7-18.el6_9.2.x86_64.rpm gcc-c++-4.4.7-18.el6_9.2.x86_64.rpm安装pcre
tar -zxvf pcre-8.40.tar.gz
cd pcre-8.40
./configure
make && make install安装zlib
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure
make && make install安装启动
./configure –prefix=/usr/local/nginx 配置nginx 并且指定nginx的安装目录
make && make install
cd /usr/local/nginx/sbin
netstat -ano | grep 80 //检查80端口是否占用
./nginx -c /usr/local/nginx/conf/nginx.conf
注意:
启动nginx时,服务无法启动,出现./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory的错误,解决方法如下: ln -s /usr/local/lib/libpcre.so.1 /lib64/
Nginx运行和控制
/usr/local/nginx/sbin/nginx 命令
nginx命令参数:
不像许多其他软件系统,Nginx 仅有几个命令行参数,完全通过配置文件来配置。参数如下:
-s reload | reopen | stop 进程相关(重新载入配置文件 | 重启Nginx | 停止Nginx)
-c </path/to/config> 为 Nginx 指定一个配置文件,来代替缺省的。
-t 不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。
-v 显示 nginx 的版本。
-V 显示 nginx 的版本,编译器版本和配置参数。
nginx负载均衡
1.常用的负载均衡策略
a. 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
b. 指定权重
指定轮询几率(权重默认为1),weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
c. IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
完整配置
#添加tomcat列表,真实应用服务器都放在这
upstream tomcat_pool {#server tomcat地址:端口号 weight表示权值,权值越大,被分配的几率越大;
server 192.168.0.223:8080 weight=4 max_fails=2 fail_timeout=30s;
server 192.168.0.224:8080 weight=4 max_fails=2 fail_timeout=30s;
}server{
......
location / {
proxy_pass http://tomcat_pool; #转向tomcat处理
}
......
}