Nginx 反向代理到 apache 起作用了嗎?

Nginx 反向代理到 apache 起作用了嗎?

我已將 nginx 設定為我的主伺服器,並使用它在連接埠 8080 上反向代理到 apache 這是我的 apache.example.io 的 nginx 設定文件

#
# apache.example.io
# Testing apache + nginx
#

server {
        listen 80; 

        root /var/www/apache-example-io; 
        index index.php index.html index.htm;

        server_name apache.example.io www.apache.example.io; 

        location / {
            try_files $uri $uri/ /index.php;
        }   

        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;
        }
}

這是我的 apache 虛擬主機文件

<VirtualHost 127.0.0.1:8080>
    ServerName apache.example.io
    ServerAlias www.apache.example.io
    ErrorLog /var/www/apache-example-io/errror.log
    DocumentRoot /var/www/apache-example-io/public_html
    <Directory "/var/www/apache-example-io/public_html">
       # Order allow,deny
       # Allow from all
       # New directive needed in Apache 2.4.3: 
       # Require all granted
       AllowOverride All
    </Directory>
</VirtualHost>

如果我去的話這些工作正常http://apache.example.io/index 但是如果我訪問,我會收到 403 nginx 錯誤http://apache.example.io/ 我不知道如何解決這個問題,nginx 的錯誤日誌如下所示:

2018/03/14 21:25:24 [錯誤] 24730#0:6 禁止「/var/www/」目錄索引,客戶端:211。,伺服器:apache.example.io,請求:“GET / HTTP/1.1”,主機:“apache.example.io”

谷歌搜尋並嘗試修復已證明沒有成果:(

答案1

事實證明,因為我只是將某些網域重新路由到我的伺服器,所以我沒有設定預設路由。

我打開了

/etc/nginx/conf.d/default.conf

並將其添加到:

server {
  listen 80 default_server; 
  return 404;
}

這將強制任何未指定的通配符域等簡單地轉發到 404。於PHP 內容服務的apache 虛擬主機。 :)

相關內容