hq8501 发表于 2018-11-11 06:12:58

Nginx + Apache 公用 80 端口的配置方案。

  Nginx 占用 80 端口,过滤静态请求,然后动态请求即 Proxy 到 Apache 的 8080 端口。
  Proxy 反向代理的好处是访问的时候,始终就是 80 端口,来访者不会觉察到有任何的区别。
  但有的应用确非常“聪明”,识别到 Apache 所位于的端口是 8080 ,就会把相关的超链接都一并加上 :8080 的后续。这么就死定了,还能有正常访问麽?!
  有个方法可以解决这事,就是把 apache 也运行在80端口上。
  同一台服务器,有Nginx 也有 Apache,2个httpd服务,都是80,不会冲突麽?
  下边就是举例方法。
  Nginx.conf 的配置中
  server {
  listen 80;
  server_name www.ABC.com;
  }
  修改一下。
  server {
  listen 192.168.3.3:80;       #指定Nginx只占用某个IP的80端口。
  listen 192.168.10.3:80;         #如果你服务器中有多个IP,还可以指定多个。
  server_name www.ABC.com;
  }
  如果你在Nginx有多个虚拟主机,每一个都需要这么修改。
  然后轮到 apache 的 httpd.conf
  把原来的
  Listen 80
  改为
  Listen 127.0.0.1:80
  跟Nginx一样,指定apache所占用的IP及端口。
  保存退出,重启apache即可生效。
  如果你 apache 上也有多个虚拟主机。无需好像Nginx那样逐一修改,只要都是 80 端口既可。
  如:
  NameVirtualHost *:80
  
  ServerAdmin hello@abc.com
  DocumentRoot /data/web_server/admin
  ServerName www.ABC.com
  
  这样,Nginx 跟 Apache 就仅会占用指定IP的80端口,不会冲突。
  只要调整一下 Nginx proxy 的参数。
  “聪明”应用问题就能解决了。

页: [1]
查看完整版本: Nginx + Apache 公用 80 端口的配置方案。