SSM视频教程第4-2节:使用 Nginx 访问 FastDSF 文件服务器
Nginx可以做什么呢?
Nginx可以做HTTP服务器
可以利用它来做一些静态资源的访问服务器,例如我们系统用到的图片,可以用Nginx服务器来专门访问我们的图片系统。
例如,有一个电商的网站,当有商品在系统中上架时,可以将上架的商品图片存放到我们的图片服务器,当我们需要这个商品的详情的时候,就可以通过Nginx去访问相应的图片。nginx比apache占用的cpu资源少,在高并发的情况下能保持低资源低消耗高性能。
Nginx可以做虚拟主机
可以在同一台服务器上运行多个网站,而且呢,这些不同网站是不会互相干扰的,在区分不同的网站我们可以通过不同的IP
,不同的端口
和不同的域名
三种方式区分,但是一般使用的最多的就是使用域名来区分。例如通过www.a.com 来访问a网站,通过www.b.com 来访问b网站,并且a.com和b.com是基于同一个ip地址的。
虚拟主机的配置可以在nginx的conf文件中进行配置,在配置文件中每个server节点就代表一个虚拟主机。例如我想要配置www.a.com 来访问a网站,通过 www.b.com 来访问b网站就可以这样子:
server {
listen 80;
server_name www.a.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root a/html; //指向a.com的网站
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.b.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root b/html; //指向b.com的网站
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
配置好文件我们保存然后将Nginx reload一下之后,我们这时候访问 www.a.com 时Nginx就会去请求a网站给我们,同样访问 www.b.com 就会去请求b的网站,他们之间互不影响,且又绑定在同一个ip上。这种对于一些多个小的网站,绑定在同一个ip上是很好的实现方式。
Nginx可以进行负载均衡的反向代理
反向代理就是当你的网站因为并发量太大,部署在了多个服务器上,那么当用户去访问你的网站的时候,不知道去访问哪个服务器,这时候Nginx就是来帮忙进行反向代理请求的,也就是用户访问Nginx,然后Nginx帮用户去请求某一个Nginx认为该访问的服务器。
负载均衡反向代理的使用也是通过Nginx的文件进行配置的:
在conf中通过upstream来配置要代理的服务器:
upstream tomcatserver1{
server 192.168.88.61;
server 192.168.88.62;
}
其中还可以定义这些服务器的负载权重,是否参与负载等,可以在ip地址后面添加定义:
down 表示单前的server暂时不参与负载
weight 默认为1,weight越大,负载的权重就越大
backup 其它所有的非backup机器down或者忙的时候,就会请求backup机器。所以这台机器压力会是最轻的。
max_fails 允许请求失败的次数默认为1.当超过最大次时,返回proxy_next_upstream 模块定义的错误
fail_timeout: max_fails次失败后,暂停的时间。
比如 server 192.168.88.61 weight=2; 就代表192.168.88.61这个服务器会被访问的权重更多。
在server中配置域名和端口号,然后用proxy_pass去访问我们刚刚定义的upstream:
server {
listen 80;
server_name wistbean.server1.com;
location / {
proxy_pass http://tomcatserver1;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
Nginx在Linux上安装
首先需要安装Nginx的依赖环境:
yum install -y openssl openssl-devel
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y zlib zlib-devel
多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip
yum install -y pcre pcre-devel
nginx的http模块使用pcre来解析正则表达式
yum install gcc-c++
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境
下载Nginx
http://nginx.org/en/download.html ,例如下载1.8.1版本可以
wget http://nginx.org/download/nginx-1.8.1.tar.gz
解压Nginx
tar -zxvf nginx-1.8.1.tar.gz
参数配置
1 | cd nginx-1.8.1 |
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/src/fastdfs-nginx-module/src/ \
--with-http_ssl_module
将以上复制到Linux执行一遍。然后需要到**/var/temp/**中创建nginx目录。
mkdir nginx
编译安装
make
make install
启动
进入nginx的sbin目录:
cd /usr/local/nginx/sbin
./nginx
开始启动了…
关闭
./nginx -s stop
重新加载配置文件
./nginx -s reload