同一个端口是不能同时有两个程序监听的。所以换个思路解决同一台服务器下某些网站运行在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;
}
}
以上就是Linux服务器下Nginx与Apache共存如何实现的详细内容。

