nginx
```
yum -y install openssl openssl-devel
wget nginx.org/download/nginx-1.14.0.tar.gz
tar -zxf nginx-1.14.0.tar.gz
cd nginx-1.14.0
#3.复制Nginx默认提供的vim语法插件
mkdir ~/.vim
cp -r contrib/vim/* ~/.vim/
./configure --prefix=/home/Learn_Nginx/nginx/ --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio
make && make install
#检查Prefix指定的安装目录
#[root@chaogelinux nginx-1.14.0]# ls /home/Learn_Nginx/
#nginx nginx-1.14.0 nginx-1.14.0.tar.gz
ln -s /home/Learn_Nginx/nginx/sbin/nginx /usr/bin/
#创建nginx的环境变量文件,修改如下,创建/etc/profile.d/nginx.sh脚本文件便于以后维护
[root@chaogelinux ~]# cat /etc/profile.d/nginx.sh
export PATH=/home/Learn_Nginx/nginx/sbin:$PATH
#去配置文件目录
cd /home/Learn_Nginx/nginx/conf
cat > `pwd`/file-18080.conf <<EOF
server {
access_log /data02/nginx_logs/version_file_access.log;#配置访问日志存放地址
listen 18080; #文件服务器端口根据实际配置
charset utf-8;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
location / {
root /mnt/serverfile;#文件服务器中存放文件的目录, 请根据实际配置
}
}
EOF
将自定义配置文件 include到nginx.conf中
在nginx.conf配置文件中增加引用
include /home/Learn_Nginx/nginx/conf/file-*.conf;
mkdir -p /mnt/serverfile /data02/nginx_logs/
nginx -s reload
```
### nginx做负载均衡用到哪些模块
```
upstream 定义负载节点池。
location 模块 进行URL匹配。
proxy模块 发送请求给upstream定义的节点池。
```
### 负载均衡有哪些实现方式
```
硬件负载
HTTP重定向负载均衡
DNS负载均衡
反向代理负载均衡
IP层负载均衡
数据链路层负载均衡
```

### nginx如何实现四层负载?
```
四层负载分为动态和静态负载
Nginx的四层静态负载均衡需要启用ngx_stream_core_module模块
默认情况下,ngx_stream_core_module是没有启用的,需要在安装Nginx时,添加--with-stream配置参数启用
配置HTTP负载均衡时,都是配置在http指令下,配置四层负载均衡,则是在stream指令下,结构如下所示.
```
```config
stream {
upstream mysql_backend {
server 192.168.175.100:3306 max_fails=2 fail_timeout=10s weight=1;
least_conn; #将请求转发至当前连接数最少的后端服务器,从而达到负载均衡的效果。
}
server {
listen 3307; #监听端口,默认使用的是tcp协议,如果需要UDP协议,则配置成listen 3307 udp;
proxy_next_upstream on; #失败重试
proxy_next_upstream_timeout 0; #超时配置
proxy_next_upstream_tries 0; #配置与上游服务器连接超时时间,默认60s
proxy_connect_timeout 1s; #配置与客户端上游服务器连接的两次成功读/写操作的超时时间,如果超时,将自动断开连接
proxy_timeout 1m; #即连接存活时间,通过它可以释放不活跃的连接,默认10分钟
#限速配置
proxy_upload_rate 0; #从客户端读数据的速率,单位为每秒字节数,默认为0,不限速
proxy_download_rate 0; #从上游服务器读数据的速率,单位为每秒字节数,默认为0,不限速
proxy_pass mysql_backend; #上游服务器
}
}
```
```
使用Nginx的四层动态负载均衡有两种方案:使用商业版的Nginx和使用开源的nginx-stream-upsyncmodule模块。
注意:四层动态负载均衡可以使用nginx-stream-upsync-module模块,七层动态负载均
衡可以使用nginx-upsync-module模块。
```