我在想如何設置nginx
在同一臺服務器上同時運行apache(lamp)和node.js。如何配置nginx,在同一臺機器上運行apache和節點js?
我不是一個服務器愛好者的傢伙,但最近2周我學到了很多東西。
我看到了,我可以做的內容交換機HAProxy
如下:因爲我已經使用nginx
我認爲這將是更好地使用它wordpress and node.js
但是。
任何教程?或小費?
我在想如何設置nginx
在同一臺服務器上同時運行apache(lamp)和node.js。如何配置nginx,在同一臺機器上運行apache和節點js?
我不是一個服務器愛好者的傢伙,但最近2周我學到了很多東西。
我看到了,我可以做的內容交換機HAProxy
如下:因爲我已經使用nginx
我認爲這將是更好地使用它wordpress and node.js
但是。
任何教程?或小費?
如果您在PHP上編寫了單個站點,並且您希望啓用socket.io,則可以綁定80端口(默認HTTP端口)上的nginx,8080上的Apache和3000上的Node.js服務器(Apache和節點可能有其他)。
下面是nginx的配置:
http {
#... some directives ...
map $http_upgrade $connection_upgrade { #required for websockets
default upgrade;
'' close;
}
#... some more directives ...
}
server {
listen 80;
server_name your-wordpress-site.com;
root /path/to/site/root;
index index.php index.html index.htm;
location/{
try_files $uri $uri/ /index.php;
}
location /socket.io {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; #these two headers are ...
proxy_set_header Connection $connection_upgrade; #...required for websockets
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location ~ /\.ht {
deny all;
}
}
因此,你只需要代理時請求的URI與/socket.io
開始節點。
我從來沒有使用WordPress,所以我可以100%確定它將在PHP端沒有任何問題的情況下工作。但我配置nginx與socket.io 100K次,它始終完美。
編輯
如果此配置不工作,你可以嘗試改變這種方式:
location/{
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location /socket.io {
#paste here socket.io section from first example
}
location ~ \.(js|css|png|jpe?g|gif)$ {
root /path/to/site/root;
}
在過去location
的正則表達式,你應該列出所有靜態文件「的擴展,你想由nginx提供服務。
nginx,apache和node.js都是他們自己獨立的服務器。它們是完全獨立於彼此的原子實體。
在apache或nginx作爲node.js服務器前的代理服務器存在(很常見)的情況。所以你將有兩臺服務器在同一臺機器上同時運行。需要注意的是,它們將在不同的端口上運行。
很可能讓nginx,apache和node.js同時在同一臺機器上運行,但它們必須在不同的端口上運行。
但是你的問題「我如何設置nginx在同一臺服務器上同時運行apache(lamp)和node.js」並沒有什麼意義,因爲nginx並不運行apache或node.js.
你[不需要Apache和nginx](http://www.wikivs.com/wiki/apache_vs_nginx)。只需使用nginx。 –