前言:
目前咱们对“nginxgterm”都比较珍视,各位老铁们都想要了解一些“nginxgterm”的相关内容。那么小编同时在网上收集了一些有关“nginxgterm””的相关资讯,希望朋友们能喜欢,小伙伴们快快来了解一下吧!在正式介绍Nginx之前先简单说明下什么是正向代理和反向代理,Nginx实现负载均衡功能正是基于其反向代理功能实现的。
正向代理类似一个跳板机,代理访问外部资源。正向代理 是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
反向代理的代理对象是服务端,客户端不需要做任何配置。反向代理实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的其它服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
一、Nginx安装
1)下载Nginx及相关组件
[root@localhost src]# wget
[root@localhost src]# wget
[root@localhost src]# wget
[root@localhost src]# wget
安装c++编译环境,如已安装可略过
[root@localhost src]# yum install gcc-c++
2)安装Nginx及相关组件
openssl安装
[root@localhost mnt]# tar zxvf openssl-fips-2.0.10.tar.gz
[root@localhost mnt]# cd openssl-fips-2.0.10
[root@localhost openssl-fips-2.0.10]# ./config && make && make install
pcre安装
[root@localhost mnt]# tar zxvf pcre-8.40.tar.gz
[root@localhost mnt]# cd pcre-8.40
[root@localhost pcre-8.40]# ./configure && make && make install
zlib安装
[root@localhost mnt]# tar zxvf zlib-1.2.11.tar.gz
[root@localhost mnt]# cd zlib-1.2.11
[root@localhost zlib-1.2.11]# ./configure && make && make install
nginx安装
默认安装到/usr/local/nginx,也可以指定安装目录./configure --prefix=/mnt/nginx
[root@localhost mnt]# tar zxvf nginx-1.13.6.tar.gz
[root@localhost mnt]# cd nginx-1.13.6
[root@localhost nginx-1.13.6]# ./configure && make && make install
3)启动停止Nginx
[root@localhost mnt]# cd /usr/local/nginx/sbin
启动nginx,-c表示指定nginx.conf的文件。如果不指定,默认为NGINX_HOME/conf/nginx.conf
[root@localhost sbin]# ./nginx -c /usr/local/nginx/conf/nginx.conf
发送信号到nginx进程后,nginx进程会等待处理完毕当前请求,同时将不会接受新请求
[root@localhost sbin]# kill -QUIT 进程号
立即停止当前正在处理的请求
[root@localhost sbin]# kil -TERM 进程号
停止nginx
[root@localhost sbin]# ./nginx -s stop
退出nginx
[root@localhost sbin]# ./nginx -s quit
重新加载nginx.conf
[root@localhost sbin]# ./nginx -s reload
启动成功,在浏览器访问,如果出现如下Nginx欢迎页面则表示Nginx安装成功。
二、Nginx负载均衡配置
Nginx核心配置文件为/usr/local/nginx/conf/nginx.conf,其默认配置如下,反向代理默认端口是80,服务器名称localhost,这也就是为什么上文提到的浏览器中直接访问可以看到欢迎页面的原因。
worker_processes 1;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
Nginx反向代理配置说明:
1)listen 80;代表监听80端口
2)server_name xxx.xxx.com;代表外网访问的域名
3)location / {};代表一个过滤器,/匹配所有请求,还可以根据自己的情况定义不同的过滤,比如对静态文件js、css、image制定专属过滤
4)root html;代表站点根目录
5)index index.html;代表默认主页
负载均衡功能往往在接收到某个请求后分配到后端的多台服务器上,如果要借助Nginx实现负载均衡就需要upstream{}块来配合使用。配置示例如下:
http { ......此处省略 upstream { ip_hash; server 139.129.196.11 weight=2; server 139.129.196.12 weight=1; } server { listen 80; server_name ; location / { proxy_pass ; } } }
1)upstream xxx.xxx.com{};upstream模块是命名一个后端服务器组,组名必须为后端服务器站点域名,内部可以写多台服务器ip和port,还可以设置跳转规则及权重等等。
ip_hash;代表使用ip地址方式分配跳转后端服务器,同一ip请求每次都会访问同一台后端服务器。
server;代表后端服务器地址,服务器状态包括:down(表示单前的server暂时不参与负载)、weight(默认为1.weight越大,负载的权重就越大)、max_fails(允许请求失败的次数默认为1.当超过最大次数时返回失败)、fail_timeout(max_fails 次失败后,暂停的时间)、backup(其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻)。
2)server{};server模块依然是接收外部请求的部分。
server_name;代表外网访问域名。
location / {};同样代表过滤器,用于制定不同请求的不同操作。
proxy_pass;代表后端服务器组名,此组名必须为后端服务器站点域名。
server_name和upstream{}的组名可以不一致,server_name是外网访问接收请求的域名,upstream{}的组名是跳转后端服务器时站点访问的域名。
另外还需要在本机配置一个域名映射,即C:\Windows\System32\drivers\etc中条件一行139.129.196.11 。自此一个简单的基于Nginx的负载均衡已经配置完毕,直接在浏览器中访问,可以看到实际显示的为域名的内容。事实上Nginx已经把用户请求采用ip_hash方式分发到的多个服务器上。
标签: #nginxgterm