背景说明
什么是正向代理:只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的。
什么是反向代理:是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
应用场景
我们都知道,tomcat一般是做动态解析才会用得到,支持jsp的解析,需要配置JDK支持,而nginx,则一般是做静态,本身不具备动态解析功能,需要配置其他插件或通过其他软件协同才具备动态功能,比如php,tomcat,或者proxypass到win2008的iis服务器做ASP的动态链接等,但nginx在静态上的功能非常强大,也可做访问控制,而且可以做成各种协议负载服务器,包括流媒体的也可以做,遇到高并发需求时候,可以使用Nginx做负载均衡。
下载和安装
下载
windows:
http://nginx.org/download/nginx-1.11.3.zip
Linux:
http://nginx.org/download/nginx-1.11.3.tar.gz
安装
windows平台安装:
- 解压zip包到一目录下(自定义)如:C:\nginx-1.11.3<br/>
Linux平台安装:
- 安装依赖环境:确保安装了这些软件库,它们包括:gcc,openssl,zlib,**pcre**
- 解压: tar -zxvf nginx-1.5.9.tar.gz
- 设置配置信息:./configure --prefix=/usr/local/nginx(可跳过,直接使用默认配置)
- 编译:make
- 安装:make install
- 验证:①cd /usr/local/nginx/sbin ②./nginx -t
Nginx常用操作
启动: start nginx(不建议使用nginx.exe这种方式,该方式会使你的cmd窗口一直处于执行中,不能进行其他命令操作)
停止: nginx.exe -s stop
重启: nginx.exe -s reload(修改配置项后重启生效)
导入自定义配置: nginx -c conf\your.conf
配置(windows为例)
**配置文件:**nginx安装路径\conf\nginx.conf (也可以添加一个conf,优先级高于nginx.conf,使用nginx -c conf\your.conf导入)
常用配置:
简单的内部端口外网映射配置
#功能:将内部搜索平台接口映射到外网
#我们在10.10.2.202服务器上部署Nginx,外网地址为:111.204.219.223
#下面配置项完成了将搜索平台接口地址:10.10.2.235:8083 映射到外网可访问的接口:111.204.219.223:8029
server{
listen 8029;
server_name localhost;
location / {
#反向代理的地址
proxy_pass http://10.10.2.235:8083;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
#功能:将内网长连接的接口映射到外网
#我们在10.10.2.202服务器上部署Nginx,外网地址为:111.204.219.223
#下面的配置项完成了将内部长连接接口地址:10.10.2.236:8080 映射到外网可用的长连接接口地址:111.204.219.223:8026
server{
listen 8026;
server_name localhost;
location / {
root html;
#反向代理的地址
proxy_pass http://10.10.2.236:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
配合Tomcat等做负载均衡
#如果我们有三台资源服务器同时提供服务。分别为:10.10.2.141 \ 10.10.2.142 \ 10.10.2.143
#我们在10.10.2.202服务器上部署Nginx,外网地址为:111.204.219.223
#当收到http请求:http://111.204.219.223/your/url 时候,将请求按时间顺序逐一分配到不同的后端服务器
#10.10.2.141 \ 10.10.2.142 \ 10.10.2.143,如果其中有服务器宕机,能自动剔除,从其他服务器寻找资源
upstream backend {
#tomcat server list;
server 10.10.2.141;
server 10.10.2.142;
server 10.10.2.143;
}
server {
listen 80;
server_name localhost;
location / {
#反向代理的地址
proxy_pass http://backend;
}
}