Nginx反向代理转发Apache的配置

发布时间:2021-09-14 10:13:04 作者:chen
来源:亿速云 阅读:270

本篇内容主要讲解“Nginx反向代理转发Apache的配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Nginx反向代理转发Apache的配置”吧!

方案一:

将域名解析指向测试服务器的地址;

开放相关端口访问权限;

方案二:

将域名解析指向内网测试服务器的某一台;(也方便用于测试https证书问题)

由该台服务器转发服务到相应需要的测试服务器;

开发本台测试服务器及转发的测试服务器的端口权限;

最初,我们使用***种方案,但是每次都要麻烦好几组的同事一起处理,才能搞定,因此启用了方案二。开了一台中转服务器,搭建nginx服务,指向了我们当前测试的一台服务器,其间,遇到的问题。运维同事没时间,交给我们自己来搞。好嘛,遇到问题了。

问题1、无法找到相应项目问题?

因为nginx只负责将请求转发到该台机器的80或其他端口上了,并没有仔细配置,因此无法找到对应的项目。 解决:在apache  中添加相应vhost配置,示例如下:

DocumentRoot /www/web/madmin/public_html#ServerName  admin.123.com#ServerAlias 10.8.0.1ServerName 192.168.1.212ErrorDocument  400 /errpage/400.htmlErrorDocument 403 /errpage/403.htmlErrorDocument 404  /errpage/404.html#php_admin_value open_basedir  /www/web/madmin:/tmpDeflateCompressionLevel 7AddOutputFilterByType  DEFLATE text/html text/plain text/xml application/x-httpd-phpAddOutputFilter  DEFLATE css js html htm gif jpg png bmp phpOptions  FollowSymLinksAllowOverride AllOrder allow,denyAllow from all

这样,服务器就能正常解析项目了。

问题2、转发过来后,客户端ip获取不到了,得到的只是一个代理服务器ip。

因为涉及到转发,所有的东西都是可能丢掉的,在这里,就需要将原始IP转发过来,如下:

upstream apache { server 127.0.0.1:80; keepalive 8;}upstream k_api { server  172.17.0.27:8080; keepalive 8;}server { listen 8091; server_name admin.123.com;  location /api { proxy_pass http://k_api; proxy_set_header Host $host; #域名转发  proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; #IP转发  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; }  location / { proxy_pass http://apache/h6/; #转发到服务器后,加相对目录地址 proxy_set_header  Host $host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr;  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; }}

问题3、使用nginx代理后,一直无法登录,经排查为cookie无法保存?

这个问题困扰了我很久,也找了运维同事请教了很久,始终无法解决。最终,花了很多时间去找资料,自己做了许多尝试,终于发现了。  原来是服务器时间差的问题,nginx服务器的时区设置为 EST,apache服务器的时区设置是 CST,其时区相差8小时。

所以cookie无效了。具体原理就是,登录后会在apache所在服务器设置cookie,有效期为1小时内有效,而转到nginx后,时间却往前了8小时,因此服务器(或者是客户认为)会认为该cookie是过期的,因此不会被保存起来了。

解决:更改nginx时区和时间,和apache一致。修改时间时区的命令如下:

#修改时间date -s 12:12:12 # 时间改为了 12:12:12date -s 20170112 # 日期更改为2017/01/12date  -s ”12:12:12 2017-01-00“ # 时间改为了2017-01-00 12:12:12#修改时区tzselect  #根据提示修改成相应时区

问题4、监听端口问题?

根据需要设置监听相应端口,注意端口不能冲突了!

到此,相信大家对“Nginx反向代理转发Apache的配置”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. Nginx 配置反向代理
  2. nginx反向代理conf的配置

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

nginx apache

上一篇:使用modelmapper如何将Model转化成DTO工具

下一篇:微信公众账号开发自定义菜单的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》