同一个端口是不能同时有两个程序监听的。所以换个思路解决同一台服务器下某些网站运行在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; } }
The above is the detailed content of How to realize the coexistence of Nginx and Apache under Linux server. For more information, please follow other related articles on the PHP Chinese website!