欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Nginx與Apache共用80端口的配置方法

 更新時(shí)間:2016年01月30日 09:52:32   作者:AndyYang  
這篇文章主要介紹了Nginx與Apache共用80端口的配置方法,當(dāng)然如果想Nginx不與Apache搶80端口的話,本文后面也附帶了Nginx的端口修改方法,需要的朋友可以參考下

一個(gè)典型的 Nginx + Apache 應(yīng)用方案可以是Nginx 占用 80 端口,過(guò)濾靜態(tài)請(qǐng)求,然后動(dòng)態(tài)請(qǐng)求即 Proxy 到 Apache 的 8080 端口。Proxy 反向代理的好處是訪問(wèn)的時(shí)候,始終就是 80 端口,來(lái)訪者不會(huì)覺(jué)察到有任何的區(qū)別。

但有的應(yīng)用確非常“聰明”,識(shí)別到 Apache 所位于的端口是 8080 ,就會(huì)把相關(guān)的超鏈接都一并加上 :8080 的后續(xù)。這么就死定了,還能有正常訪問(wèn)麼?!

有個(gè)方法可以解決這事,就是把 apache 也運(yùn)行在80端口上。同一臺(tái)服務(wù)器,有Nginx 也有 Apache,2個(gè)httpd服務(wù),都是80,不會(huì)沖突麼?

下邊就是舉例方法。
Nginx.conf 的配置中

server {
 listen 80;
 server_name www.webyang.net;
}

修改一下。

server {
 listen 192.168.3.3:80;  #指定Nginx只占用某個(gè)IP的80端口。
 listen 192.168.10.3:80;  #如果你服務(wù)器中有多個(gè)IP,還可以指定多個(gè)。
 server_name www.webyang.net;
}

如果你在Nginx有多個(gè)虛擬主機(jī),每一個(gè)都需要這么修改。

然后輪到 apache 的 httpd.conf
把原來(lái)的

Listen 80

改為

Listen 127.0.0.1:80

跟Nginx一樣,指定apache所占用的IP及端口。
保存退出,重啟apache即可生效。
如果你 apache 上也有多個(gè)虛擬主機(jī)。無(wú)需好像Nginx那樣逐一修改,只要都是 80 端口既可。

如:

NameVirtualHost *:80
<VirtualHost *:80>
 ServerAdmin hello@abc.com
 DocumentRoot /data/web_server/admin
 ServerName www.webyang.net
</VirtualHost>

這樣你是不是以為,就已經(jīng)萬(wàn)事大吉了?非也。

這樣的apache只能通過(guò)http://127.0.0.1:80才能訪問(wèn),那么他還占用80端口就沒(méi)有意義了。還不如apache用8080,nginx用80算了。
所以此時(shí)如果你的服務(wù)器有多ip,除了把a(bǔ)pache綁定在 127.0.0.1 還能綁定另外一張網(wǎng)卡的IP,那么問(wèn)題就解決。

可是一般人都是只有一個(gè)獨(dú)立ip的,所以這種方法對(duì)很多人來(lái)講就是海市蜃樓。
修改一種思路,apache還是8080端口,修改其中的一個(gè)nginx的域名的conf文件

location / {
 try_files $uri @apache;
}
 
location @apache {
 internal;
 proxy_pass http://127.0.0.1:8080;
}
 
location ~ .*.(php|php5)?$ {
 proxy_pass http://127.0.0.1:8080;
}

此時(shí),該域名全部動(dòng)作都走Apache了,包括靜態(tài)文件。

也有很多人下面這種寫(xiě)法:

upstream zend {
 server 127.0.0.1:8080;
}
 
location / {
 proxy_pass  http://zend;
 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;
 proxy_set_header   X-Scheme $scheme;
}
 
location ~ .*.(php|php5)?$ {
 proxy_pass  http://zend;
 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;
 proxy_set_header   X-Scheme $scheme;
}

大體類似。

Nginx的端口修改
修改 nginx.conf 文件實(shí)現(xiàn)。在 Linux 上該文件的路徑為 /usr/local/nginx/conf/nginx.conf,Windows 下 安裝目錄\conf\nginx.conf。

server {
 listen  80;
 server_name localhost;
 
 ……
}

改成

server {
 listen  81;
 server_name localhost;
 
 location / {
 root html;
 index index.html index.htm;
 }
 ……
}

當(dāng)然改成 8080,8081 什么的都可以,不一定要 81,但是確保 iptable 要放開(kāi)對(duì)該端口的訪問(wèn)。

注意到 location 的配置:

root html; #根目錄,相對(duì)于安裝目錄 
index index.html index.htm; #默認(rèn)主頁(yè)

默認(rèn),你把文件放在安裝目錄下的 html 文件夾,即可通過(guò) Nginx 訪問(wèn)。

相關(guān)文章

最新評(píng)論