最近,自己部署了一个all in one的网站,采用了nginx+tomcat做了转发代理。作为一个菜鸟,之前没接触nginx,不是很了解它的机制。
ngin分为正向代理和反向代理。
正向代理是 和跳板机差不多,代理访问外网。内网的客户端发送请求,通过nginx代理,访问外部资源,像一些企业内网等。比如,内网客户端限制不能访问淘宝网,而代理服务器是可以访问淘宝,客户端想要访问淘宝的话,需要先连上代理服务器,让代理服务器去访问淘宝网,拿到淘宝网的资源,然后返回给客户端。客户端需要设置代理服务器的地址和端口。
而反向代理,则相反。反向代理是外网客户端请求,通过nginx代理,可以访问内网的资源。比如,OA系统,在公司内网部署了OA系统,OA的服务器都在内网,(假如IP地址都是192.168系列内网常用IP段),外网通过访问OA域名发起请求,nginx服务器会接收到请求后,会转发请求至内网OA服务器,取得资源,返回给外网客户端。这种反向代理,你是无法感知到的。
我在阿里云上部署了一个网站,使用nginx反向代理,对一级域名,二级域名进行转发至内网其他主机服务器,文件服务器,图片服务器,静态服务器等
server {
listen 80;
autoindex on;
server_name baidu.com www.baidu.com;
access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.jsp index.php;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location = / {
root /product/front/dsm/view;
index index.html;
}
location ~ .*\.html$ {
root /product/front/dsm/view;
index index.html;
}
location / {
proxy_pass http://127.0.0.1:8080/;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
proxy_pass http://127.0.0.1:8080;
expires 30d;
} location ~ .*\.(js|css)?$ {
proxy_pass http://127.0.0.1:8080;
expires 7d;
}
}
此部分配置只是对80端口进行监听,经过该端口的请求,均会通过nginx转发至本机的location 地址。
——个人学习简单记录,如有不正确之处,欢迎指导。