nginx 配置反向代理

为什么需要反向代理

示例

  • 我使用了两台ubuntu的虚拟机来完成今天这测试
  • 示例内容:利用nginx将请求转发到apache服务器
  • 示例简介:

首先A代表的我的nginx的服务器,用来做反向代理,另一台服务器使用apache搭建的服务,我利用nginx服务器将请求转发到另一台服务器

  • 本机先给A服务器做一个虚拟域名,在/etc/hosts,里面添加域名  ip ,然后用本机去ping你做的虚拟域名,保证这个能互相连通,再去进行其他操作。

配置nginx服务器

  • 安装一个nginx服务器

sudo  apt-get install nginx

不使用default的网站配置

/etc/nginx配置那  sites-available
cp default文件改名为你自己想要配置的名称,将default里面监听的端口注释掉

sites-enabled做一下软连接,将该文件链接进来
ln -s /etc/nginx/sites-available/xxx /etc/nginx/sites-enabled/xxx

然后nginx -s reload 重启一下服务器  之后去使用本级去访问一下配置的域名 访问成功即可

配置apache服务器

  • 使用ubuntu一键安装lamp环境
sudo apt-get install tasksel 先安装这个工具   之后再去安装lamp
sudo tasksel install lamp-server   脑残式安装  
sudo tasksel remove lamp-server   这是卸载  不想要就卸载掉了

访问80端口试试
Apache2 Ubuntu Default Page 页面说明你的环境搭建成功了

每台服务器都设置一个域名访问  该域名就是你在本机 的虚拟域名  都用域名去访问一下   能看到自己设定的内容就算成功

最后去配置一下nginx服务配置文件就可以了   访问出现你的自定义内容   成功

nginx.conf 里面的location 里面添加


proxy_set_header X-Real-IP $remote_addr;   设置使用用户真实ip转发到apache 不设置的话apache日志存的访问都是nginx的ip  都是使用nginx转发过去的
proxy_set_header Host $http_host;  不设置个域名转发的话   转发到的都是你服务器的ip地址 如果你另一台服务器上配置了虚拟主机就需要了

proxy_pass http://192.168.31.211:80;  需要转发的地址 也就是apache服务器
client_max_body_size 35m;        
proxy_http_version 1.1; 

// 如果要使用长连接  需要配置这个  我们这里就不配置了                    
# proxy_set header Upgrade $http upgrade;
# proxy_set header Connection "upgrade";
·

本文为作者原创,手码不易,允许转载,转载后请以链接形式说明文章出处。

您的支持是对我最大的鼓励!

发表于: 作者:憧憬。
关注互联网以及分享全栈工作经验的原创个人博客和技术博客,热爱编程,极客精神
Github 新浪微博 SegmentFault 掘金专栏