Nginx反向代理,Nginx的TCP/UDP调度器以及Nginx常见问题处理
nginx反向代理:
方案
使用4台RHEL7虚拟机,其中一台作为Nginx代理服务器,该服务器需要配置两块网卡,IP地址分别为192.168.4.5和192.168.2.5,两台Web服务器IP地址分别为192.168.2.100和192.168.2.200。客户端测试主机IP地址为192.168.4.100。如图所示。
web1和web2简单的安装httpd开启服务作为后端的Web服务器,两台机需要关闭防火墙(httpd安装过程略)
nginx服务器修改配置文件,添加服务器池,实现反向代理(nginx安装过程略)
1)修改/usr/local/nginx/conf/nginx.conf配置文件
1)修改/usr/local/nginx/conf/nginx.conf配置文件
- [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
- .. ..
- http {
- .. ..
- #使用upstream定义后端服务器集群,集群名称任意(如webserver)
- #使用server定义集群中的具体服务器和端口
- upstream webserver {
- server 192.168.2.100:80; #web1服务器地址
- server 192.168.2.200:80; #web2服务器地址
- }
- .. ..
- server {
- listen 80;
- server_name localhost;
- location / {
- #通过proxy_pass将用户的请求转发给webserver集群
- proxy_pass http://webserver;
- }
- }
重启nginx,client(192.168.4.100)访问nginx代理服务器(192.168.4.5)地址,代理转到后端web服务器(192.168.2.100/192.168.2.200)
[root@client ~]# curl http://192.168.4.5
服务器集群池属性设置
weight可以设置后台服务器的权重,max_fails可以设置后台服务器的失败次数,fail_timeout可以设置后台服务器的失败超时时间。
upstream webserver {
server 192.168.2.100 weight=1 max_fails=1 fail_timeout=30; #weight设置服务器权重值,默认值为1#max_fails设置最大失败次数
server 192.168.2.200 weight=2 max_fails=2 fail_timeout=30; #fail_timeout设置失败超时时间,单位为秒
server 192.168.2.101 down; #down标记服务器已关机,不参与集群调度
}
nginx TCP/UDP调度器
1、部署nginx服务器
编译安装必须要使用–with-stream参数开启4层代理模块。
- [root@proxy ~]# yum –y install gcc pcre-devel openssl-devel //安装依赖包
- [root@proxy ~]# tar -xf nginx-1.12.2.tar.gz
- [root@proxy ~]# cd nginx-1.12.2
- [root@proxy nginx-1.12.2]# ./configure \
- > —with-http_ssl_module //开启SSL加密功能
- > —with-stream //开启4层反向代理功能
- [root@proxy nginx-1.12.2]# make && make install //编译并安装
2、配置Nginx服务器,添加服务器地址池,实现TCP/UDP反向代理功能
1)修改/usr/local/nginx/conf/nginx.conf配置文件
- [root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
- stream {
- upstream backend {
- server 192.168.2.100:22; //后端SSH服务器的IP和端口
- server 192.168.2.200:22;
- }
- server {
- listen 12345; //Nginx监听的端口
- proxy_connect_timeout 1s;
- proxy_timeout 3s;
- proxy_pass backend;
- }
- }
- http {
- .. ..
- }