如何使用apache来提供PHP并将nginx用于静态页面

时间:2015-04-18 16:16:52

标签: php linux webserver

我买了VPS,我想配置它。我在某处读到: 你可以将它们混合在一起。使用Apache服务PHP并将nginx用于静态页面

我的操作系统是linux-ubuntu。现在我想知道我该怎么做?

怎么说我的动态代码使用Apache Web服务器和静态代码使用Nginx Web服务器。有人可以帮帮我吗?

此致

1 个答案:

答案 0 :(得分:1)

你需要做的是让其中一个成为侦听端口80的前端,另一个是监听其他端口(例如8080),因为不可能有多个进程听同一个端口。然后必须设置侦听端口80的那个以将流量转发到侦听备用端口的流量。

在这种情况下,让服务静态页面(nginx)的人进行端口转发是最自然的。为此,请在nginx.conf的html部分中输入这样的服务器定义:

server{
   listen 80;
   server_name example.com;

   access_log /var/log/nginx/access.log;
   error_log /var/log/nginx/error.log;

   location /php {
       proxy_pass http://0.0.0.0:8080/;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

这会将以/ php /开头的所有URL转发到在端口8080上运行的apache服务器的根目录(如果您想要另一次更改proxy_pass设置)。

那就是说,为了简单起见,我宁愿只运行一台服务器,坚持使用apache或nginx。两台服务器都可以同时担任这两种角色。

您可能要么禁用默认配置,要么修改它以包含上面的配置,否则会收到端口冲突。