Nginx

NGINX 配置問題

  • October 1, 2014

我的 nginx 配置有問題。問題是它總是使用代理配置它從不使用 beta.node365-p.se 配置。

我希望如果請求的域是 beta.node365-p.se,伺服器應該在本地處理它,但如果請求是針對其他東西的,它應該將它代理到另一個 apache 伺服器。

server {
   listen 80 default_server;
   listen [::]:80 default_server ipv6only=on;

   root /usr/share/nginx/html;
   index index.php index.html index.htm;

   server_name  beta.node365-p.se;

   location / {
           try_files $uri $uri/ =404;
   }


   error_page 404 /404.html;
   error_page 500 502 503 504 /50x.html;

   location ~ \.php$ {
           try_files $uri =404;
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_pass unix:/var/run/php5-fpm.sock;
           fastcgi_index index.php;
           include fastcgi_params;
   }

}

server {
   listen 80 default_server;
   listen [::]:80 default_server ipv6only=on;

   server_name "";

   location / {
           proxy_buffers 16 4k;
           proxy_buffer_size 2k;
           proxy_set_header Host $host;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_pass http://31.44.238.211:80;
   }
}

僅在第二個虛擬主機中更改server_name "";byserver_name _;和 let選項。default_server

第一個 server_name 情況意味著您匹配沒有 Host 指令的請求(即 HTTP/1.0 請求)。第二個意味著如果考慮到初始請求的 Host 標頭,其他虛擬主機不包含正確的 server_name ,則您匹配作為第二個選項選擇的萬用字元伺服器名稱。

更新

  • 您的 conf 缺少虛擬主機中的監聽指令。
  • 您在代理時沒有傳遞正確的 Host 標頭,更改proxy_set_header Host $host;proxy_set_header Host "beta.node365-p.se";.

引用自:https://serverfault.com/questions/632844