Php

同一台伺服器上的 80 埠上的 Node.js 和 PHP

  • June 11, 2019

我有一個 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!你會得到你想要的。

引用自:https://unix.stackexchange.com/questions/522981