首页 > 文章列表 > Linux服务器下Nginx与Apache共存如何实现

Linux服务器下Nginx与Apache共存如何实现

linux nginx Apache
373 2023-05-15

Linux服务器下Nginx与Apache共存如何实现

同一个端口是不能同时有两个程序监听的。所以换个思路解决同一台服务器下某些网站运行在nginx下,某些网站运行在apache下共存。

解决思路:

将nginx作为代理服务器和web服务器使用,nginx监听80端口,apache监听除80以外的端口,我这暂时使用8080端口。

解决方案:

  • 在linux 一经搭建好环境 先后安装了nginx 和apache 由于 默认端口都是:80

  • 一般客户请求的服务器端口默认为80 所以nginx作为静态页端口设置:80;apache设置端口为:8080(在httpd.conf 文件中修改listen:8080)

apache下的网站:

在nginx.conf中 添加

server {

   listen  80;

   server_name www.one.ityangs.cn one.ityangs.cn;

location / {

   proxy_pass    http://127.0.0.1:8080;

   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;

   }

}

在httpd.conf中 添加

<virtualhost *:8080>

servername www.one.ityangs.cn

serveralias www.one.ityangs.cn one.ityangs.cn

documentroot /www/one

directoryindex index.php index.html

<directory /www/one>

options +includes +followsymlinks -indexes

allowoverride all

order deny,allow

allow from all

</directory>

</virtualhost>

nginx下的网站:

在nginx.conf中 添加

 server {

  listen  80;

  server_name two.ityangs.cn www.two.ityangs.cn;

  root /www/two;

  location /{

   index index.html index.htm index.php;

    if (!-e $request_filename) {

    rewrite ^(.*)$ /index.php?s=$1 last;

    break;

   }

   error_page 404 /var/www/html/404.html;

  }

  location ~ \.php(.*)$ {

    fastcgi_pass 127.0.0.1:9000;

    fastcgi_index index.php;

    fastcgi_split_path_info ^((?u).+\.php)(/?.+)$;

    fastcgi_param script_filename $document_root$fastcgi_script_name;

    fastcgi_param path_info $fastcgi_path_info;

    fastcgi_param path_translated $document_root$fastcgi_path_info;

    include  fastcgi_params;

  }

}