Php
同一台伺服器上的 80 埠上的 Node.js 和 PHP
我有一個 node.js 站點在我的 Linux 伺服器的 8080 埠上執行。在同一個 sarver 上,我還有一個在 80 埠上執行的 PHP 站點(bugzilla)。所以我目前的配置是:
我希望兩個站點都在埠 80 上執行,如下所示:
那可能嗎?
首先,在您的機器上禁用這兩項服務。然後將它們的埠更改為不尋常的東西並重新啟動它們,例如:
- PHP 應用程序
6821
- NodeJS 應用程序
6822
請記得打開它們
127.0.0.1
!你不應該在你的網路介面上打開它們。安裝
nginx
為最常用的Reverse Proxy
. 根據您的發行版,您可以使用以下命令之一安裝它:對於基於 Debian 的發行版:
$ sudo apt install nginx
對於基於 Arch 的發行版:
$ sudo pacman -S nginx
完全取決於你的發行版,這個包可以有自己的分層文件。所以我會給你
nginx.conf
作為主配置文件。只需記住使用您喜歡的任何名稱複製原始配置文件,例如nginx.conf.origin
$ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.origin
現在,打開
/etc/nginx/nginx.conf
,刪除現有配置並將這些配置複製到其中:user nginx; worker_processes 1; events { worker_connections 1024; } http { keepalive_timeout 15; server { listen 80 default_server; server_name example.com; location /mynodejs { proxy_pass http://127.0.0.1:6822; } location /bugzilla { proxy_pass http://127.0.0.1:6821; } } }
注意:請考慮我是用心寫這個配置文件的,因此當你想執行 nginx 時,你可能會遇到一個錯誤。如果是這樣,請在這裡寫評論,所以我會測試它。
現在,只需重新啟動您的 nginx!你會得到你想要的。