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层负载均衡 数据链路层负载均衡 ``` ![image.png](https://sjwx.easydoc.xyz/97954506/files/l1etxn09.png) ### 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模块。 ```