配置 Nginx 反向代理 Apache 服務器

本篇博客系轉載,有刪改,原文章:前nginx後Apache+Node反向代理

場景

有三個網站:

  1. localhost:8080
  2. localhost:9000
  3. localhost:8000

使用 nginx 設置,都使用80端口,通過不同的二級域名進行訪問:

  1. 當訪問 xxx.domain.com 的時候代理到 localhost:8080
  2. 當訪問 yyy.domain.com 的時候代理到 localhost:9000
  3. 當訪問 zzz.domain.com 的時候代理到 localhost:8000

Apache 配置各站點

注:這一步,由於我真實環境中只有一個使用 Apache 作爲服務器的站點,因此配置僅僅修改了 /etc/httpd/conf/httpd.conf 文件,監聽 4000 端口,並修改字段了 AllowOverrideAll

修改 httpd.conf 文件

我在centos服務器上使用 yum 包管理工具安裝的 Apache 配置位於

/etc/httpd/conf/httpd.conf

設置三個虛擬主機,修改配置文件,去掉加載虛擬主機配置的註釋 #

Include /private/etc/apache2/extra/httpd-vhosts.conf

監聽對應的端口(不要監聽80了,一會兒交給nginx)

Listen 8000
Listen 8080
Listen 9000

修改httpd-vhosts.conf

虛擬主機的配置文件在

/etc/apache2/extra/httpd-vhosts.conf

添加虛擬主機節點,類似這樣來三個

 <VirtualHost *:8080>
          DocumentRoot "/path"
          ServerName xxx
          <Directory "/path">
          Options Indexes FollowSymLinks
          AllowOverride All
          Order deny,allow
          Allow from all
          </Directory>
 </VirtualHost>

修改 hosts 文件

如果服務器在本地,我們還需要把域名配置到localhost,hosts的配置文件在

/etc/hosts

簡單添加一下我們的三個主機

localhost xxx.domain.com yyy.domain.com zzz.domain.com

修改 nginx 配置文件

新建單獨配置文件於 /etc/nginx/conf.d/new_file.conf

配置虛擬主機 × 3:

server {
        listen 80;
        listen [::]:80;
        server_name xxx.domain.com;
        location / {
            proxy_pass http://0.0.0.0:8080;
            proxy_set_header Host $host;
        }
}

proxy_set_header Host $host 可以使url始終保持配置的 xxx.domain.com 等。

最後重啓 Nginx 和 Apache 即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章