前言
Nginx是一款轻量级的web服务器/反向代理服务器及电子邮件代理服务器,其特点是占有内存少,并发能力强可以反向代理和负载均衡等等,总之功能强大
linux下环境搭建
不多说,实践是检验真理的唯一标准。
1.上传文件到服务器(我用的是nginx-1.6.2.tar。gz)
2解压到特定文件下,tar -zxvf nginx-1.6.2.tar.gz -C /usr/local
3.下载需要的依赖库文件
安装gcc g++的依赖库
apt-get install build-essential
apt-get install libtool
安装 pcre依赖库
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
安装 zlib依赖库
apt-get install zlib1g-dev
安装 ssl依赖库
apt-get install openssl
4在解压后的nginx目录下进行configure配置 ./configure –prefix=/usr/local/nginx-1.13.0(此处如果报错,可能是缺少依赖库)
5编译与安装 make&&make install
6.启动nginx,在nignx目录下主要有四个文件
conf配置文件、html网页文件、logs日志文件、sbin主要二进制程序
启动命令:在sbin目录下 ./nginx
关闭命令 ./nginx -s stop 重启 ./nginx -s reload
7测试 输入你的服务器ip地址,如果出现欢迎页面表示安装成功
nginx配置文件简单说明
基本上完玩nginx就是在玩配置,首先得先了解一下配置中的一些说明,主要在conf目录下的ngnx.conf里
日志配置
access_log logs/zwl.com.access.log main;
其中第二个是日志路径相对于conf的,可以自定义,第三个是日志格式与下面对应
#日志文件输出格式 这个位置相于全局设置
log_format main ‘$remote_addr - $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘“$http_user_agent” “$http_x_forwarded_for”‘;
反向代理
通俗的讲就是我们访问代理服务器,然后代理服务器为我们选择访问哪台服务器
而正向代理就是我们访问另一台服务器,但是过程是通过访问另一台代理服务器,代理服务器访问目标服务器,然后把结果返回给源服务器
这里有一个问题,就是如果不设置的话,返还给tomcat的就是代理服务器的ip,所以需要设置
#设置客户端真实ip地址
proxy_set_header X-real-ip $remote_addr;
通过<%=request.getHeader(“X-real-ip”) %>得到真实服务器ip地址
简单的代理就是在location中通过关键字配置
location / { root html; index index.html index.htm; }
location /test {
proxy_pass http://111.230.246.xx:8080/libra/;
}
其中 location后面的配置可以使用正则表达式进行配置,这里含义是http://111.230.246.xx/与http://111.230.246.xx/test代理到不同的网址
负载均衡
通俗的讲就是访问量大了,分担给其它服务器。nginx的负载均衡也是配置一下
#设定负载均衡的服务器列表
#upstream myproject { #weigth参数表示权值,权值越高被分配到的几率越大 #max_fails 当有#max_fails个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查 #fail_timeout 在以后的#fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器 #} #webapp #upstream myapp { # server 192.168.1.171:8080 weight=1 max_fails=2 fail_timeout=30s; # server 192.168.1.172:8080 weight=1 max_fails=2 fail_timeout=30s; #}
其中第二参数是带负载的服务器,其他参数的策略不止这些,这里只是简单的策略
总结
nginx的功能远不止这些,它是一个高性能的服务器架设
对于高性能网站 ,请求量大,可以通过nginx的一下方法支撑
1动静分离,在nginx里建立一个静态资源站点
2: 利用浏览器缓存等,减少查询.
3.对于不可避免的请求—-服务器集群+负载均衡来支撑.