nginx伺服器支援配置多站點,我們可以透過配置子網域讓你的一個網域下放置多個項目。
那麼如何實現這個過程呢?
網路上的許多方案,有些寫的過於繁雜,有些則是配置有誤,或者說,有些配置項是要根據自己的主機實際環境來配置的。
一.假設你的專案路徑是放在 /home/wwwroot/路徑下,nginx的安裝路徑是 /usr/local/nginx/ 目錄下
二.安裝好nginx都會有預設的設定檔。檔案路徑為/usr/local/nginx/conf/nginx.conf
三.現在你需要將你的項目映射到多個網域下。首先查看nginx.conf檔案最後一行,它表示include了目前vhost目錄下的所有.conf檔。此時,如果沒有vhost檔案我們可以建立這個資料夾。
<span> access_log /home/wwwlogs/<span>access.log access; } include vhost/*.conf;</span></span>
四.然後在vhost目錄下新建一個你需要新增的網域設定文件,命名自訂。然後我們可以往裡面添加內容。下面可以來講解一下幾個具體的配置項目(簡單的略過)。
1.index index.html index.php 表示默认的定位的文件,假如直接访问域名,会定位到index.html或者index.php文件<br>2.fastcgi_pass 这个命令是指定将http代理到哪个fastcgi服务端接口<br>3.fastcgi_index 该指令设置的文件会被附加到URI的后面并保存在变量$fastcgi_script_name中<br>4.fastcgi_param SCRIPT_FILENAME 脚本文件请求的路径 <br>5.include fastcgi_params; 包含fastcgi_params中的所有参数
<span>server{ listen 80<span>; server_name www.news.com; root /home/wwwroot/news/<span>; location /<span>{ index index.html index.php; <span> } location ~<span> \.php$ { fastcgi_pass 127.0.0.1:9000<span>;<br> #fastcgi_pass unix:/tmp/fastcgi.socket; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include <span>fastcgi_params; } }</span></span></span></span></span></span></span></span>
五.假如我們是在本機測試,設定了虛擬網域之後,我們如何在自己的linux主機上存取呢?
1.我們可以透過修改/etc/hosts來讓網域名稱對應到自己的主機上。例如我之前定義的www.news.com
2.我們打開hosts文件,在後面增加 127.0.0.1 www.news.com
3.假如修改hosts檔案還是無法存取。那說明還需要修改network檔案。開啟/etc/sysconfig/network文件,修改為 NETWORKING=yes,然後service network restart,重新啟動network