搭建nginx反向代理用做内网域名转发

上传人:枫** 文档编号:486462628 上传时间:2023-06-06 格式:DOCX 页数:7 大小:43.66KB
返回 下载 相关 举报
搭建nginx反向代理用做内网域名转发_第1页
第1页 / 共7页
搭建nginx反向代理用做内网域名转发_第2页
第2页 / 共7页
搭建nginx反向代理用做内网域名转发_第3页
第3页 / 共7页
搭建nginx反向代理用做内网域名转发_第4页
第4页 / 共7页
搭建nginx反向代理用做内网域名转发_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《搭建nginx反向代理用做内网域名转发》由会员分享,可在线阅读,更多相关《搭建nginx反向代理用做内网域名转发(7页珍藏版)》请在金锄头文库上搜索。

1、| 搭建nginx反向代理用做内网域名转发 |I情景由于公司内网有多台服务器的http服务要映射到公司外网静态ip,如果用路由的端 口映射来做,就只能一台内网服务器的80端口映射到外网80端口,其他服务器的 80端口只能映射到外网的非80端口。非80端口的映射在访问的时候要域名加上端 口,比较麻烦。并且公司入口路由最多只能做20个端口映射。肯定以后不够用。 然后k兄就提议可以在内网搭建个nginx反向代理服务器,将nginx反向代理服务器 的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到 nginx反向代理服务器,利用nginx反向代理将不同域名的请求转发给内网

2、不同机器 的端口,就起到了“根据域名自动转发到相应服务器的特定端口”的效果,而路由器 的端口映射做到的只是“根据不同端口自动转发到相应服务器的特定端口”,真是喜 大普奔啊。涉及的知识:nginx编译安装,nginx反向代理基本配置,路由端口映射知识,还有 网络域名等常识。本次实验目标是做到:在浏览器中输入xxx123.tk能访问到内网机器192.168.10.38 的3000端口,输入xxx456.tk能访问到内网机器192.168.10.40的80端口。|配置步骤服务器 ubuntu 12.04#更新仓库1 apt-get update -y2 apt-get install wget -y

3、#下载 nginx 和相关软件包pcre是为了编译rewrite模块,zlib是为了支持gzip功能。额,这里nginx版本有点 旧,因为我还要做升级nginx的实验用。大家可以装新版本。1 cd /usr/local/src2 wget ftp:/ftp.csx.cam.ac.uk/pub/software4 /programming/pcre/pcre-8.33.tar.gz5 wget http:/ wget http:/nginx.org/download/nginx-1.4.2.tar.gztar xf pcre-8.33.tar.gz1112341123456tar xf zlib

4、-1.2.8.tar.gz#安装编译环境apt-get install build-essential libtool -y#创建 nginx 用户所谓的 unprivileged useruseradd -s /bin/false -r -M -d /nonexistent www#开始编译安装/configure -with-pcre=/usr/local/src/pcre-8.33 -with-zlib=/usr/local/src/zlib-1.2.8 -user=www -group=www -with-http_stub_status_module -with-http_ssl_m

5、odule -with-http_realip_modulemakemake install#给文件夹授权chown -R www:www /usr/local/nginx#修改配置文件vim nginx.confC_Juser www www;worker_processes 1;error_log logs/error.log;pid logs/nginx.pid;worker_rlimit_nofile 65535;events 789101112131415161718192021222324252627282930313233343536373839404142use epoll;w

6、orker_connections 65535;http include mime.types;default_type application/octet-stream;include /usr/local/nginx/conf/reverse-proxy.conf;sendfile on;keepalive_timeout 65;gzip on;client_max_body_size 50m; #缓冲区代理缓冲用户端请求的最大字节数,可以理解为保存到本地再传给用户 client_body_buffer_size 256k;client_header_timeout 3m;client_b

7、ody_timeout 3m;send_timeout 3m;proxy_connect_timeout 300s; #nginx跟后端服务器连接超时时间(代理连接超时)proxy_read_timeout 300s; #连接成功后,后端服务器响应时间(代理接收超时)proxy_send_timeout 300s;proxy_buffer_size 64k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置proxy_busy_buffers_size 64k; # 高负荷下

8、缓冲大小(proxy_buffers*2)proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传递请求,而不 缓冲到磁盘proxy_ignore_client_abort on; #不允许代理端主动关闭连接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;编辑反向代理

9、服务器配置文件:vim /usr/local/nginx/conf/reverse-proxy.conf12345678910111213141516171819202122232425262712345678server listen 80;server_name xxx123.tk;location / proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_fo

10、r;proxy_pass http:/192.168.10.38:3000;access_log logs/xxx123.tk_access.log;serverlisten 80;server_name xxx456.tk;location / proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http:/192.168.10.4

11、0:80;access_log logs/xxx456.tk_access.log;然后重新加载nginx配置文件,使之修改生效,再把xxx123.tk域名指向公司静态IP, 这样就成功的做到了在浏览器中输入xxx123.tk的时候访问的内网服务器 192.168.10.38 的 3000 端口,输入 xxx456.tk 访问 192.168.10.40 的 80 端口的作用。如果想对后端机器做负载均衡,像下面这配置就可以把对nagios.xxx123.tk的请求分 发给内网的131和132这两台机器做负载均衡了。upstream monitor_server server 192.168.0

12、.131:80;server 192.168.0.132:80; serverlisten 80;server_name nagios.xxx123.tk;91011121314151617181234512345location / proxy_redirect off;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http:/monitor_server;acc

13、ess_log logs/nagios.xxx123.tk_access.log;额,关于负载均衡和缓存就不多说了,这里只是要起到一个简单的“域名转发”功能。 另外,由于http请求最后都是由反向代理服务器传递给后段的机器,所以后端的机 器原来的访问日志记录的访问IP都是反向代理服务器的IP。要想能记录真实IP,需要修改后端机器的日志格式,这里假设后端也是一台nginx: 在后端配置文件里面加入这一段即可:log_format access $HTTP_X_REAL_IP - $remote_user $time_local $request $status $body_bytes_sent

14、$http_referer$http_user_agent $HTTP_X_Forwarded_For;access_log logs/access.log access;再看看原来日志的格式长什么样:#log_format main $remote_addr - $remote_user $time_local $request# $status $body_bytes_sent $http_referer# $http_user_agent $http_x_forwarded_for;#access_log logs/access.log main;看出区别了吧遇到的问题之前没配置下面这段,访问时候偶尔会出现504 gateway timeout

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号