Nginx簡單配置(Windows環境)

來源:互聯網
上載者:User

一. 安裝Nginx

將下載後的nginx壓縮包解壓到某個目錄下,比如:D:\program\myplatform\Nginx\nginx-1.10.0,解壓後的目錄結構為:

二. 開始配置

配置目標:能正常運行php指令碼程式

大部分情況下,我們需要修改的設定檔只有一個,那就是nginx.conf,該檔案位於conf目錄下。具體設定項目為:

1. server_tokens off;

出於安全方面的考慮,最好是隱藏nginx版本號碼資訊

2. listen       8088;

8088為監聽連接埠,根據需要可以填寫其它連接埠號碼

3. server_name  localhost;

localhost為伺服器訪問名稱,也就是我們在瀏覽器裡輸入的那個url地址

4. charset utf-8;

字元集編碼

5. 工作目錄

將如下配置

location / {            root  html;            index  index.html index.htm;        }

修改為:

location / {            root   D:/javapro;            index  index.php index.html index.htm;        }

root 定義了工作空間,也就是我們php項目所在的目錄。

加入index.php是為了讓nginx能夠識別php指令碼,否則,在訪問php檔案時,會出現直接下載的情況。

6. 整合php

將location ~ \.php配置部分的注釋全部去掉,最終配置如下:

location ~ \.php$ {            root           D:/javapro;            fastcgi_pass   127.0.0.1:9001;            fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;            include        fastcgi_params;        }

注意這裡面的$document_root變數,它對應的內容就是root參數值,如果我們沒有定義root參數或者把root注釋掉,在訪問php的時候,頁面上就會出現No input file specified.提示。

7. 啟動php-cgi

開啟cmd命令視窗,切換到php的安裝目錄,執行php-cgi -b 127.0.0.1:9000,即可啟動php-cgi,啟動完成後,cmd視窗切勿關閉,否則php-cgi也會被關掉的。

特別提醒:只有在開啟php-cgi的情況下,nginx才能正常訪問php。

8. 重啟nginx

開啟cmd命令視窗,切換到nginx所在目錄,執行nginx -s reload即可重啟nginx。其它相關nginx相關命令如下:

啟動:start nginx

停止:nginx -s stop

退出:nginx -s quit

三. 碰到的問題

1. No log handling enabled - turning on stderr logging

啟動php-cgi過程中,如果報出這個錯誤,請把php.ini設定檔中的extension=php_snmp.dll注釋掉。

2. 連接埠佔用

Cannot bind/listen socket - [2] No such file or directory.

Couldn't create FastCGI listen socket on port 127.0.0.1:9000

啟動php-cgi過程中,如果報類似這種錯誤,就表示9000連接埠被佔用了,此時,我們可以換個連接埠試試。

3. 反向 Proxy404 not found

以反向 Proxy的方式訪問php時,出現404 Not Found錯誤,這種情況,我們需要修改nginx的error_page配置項,如下:

將原來預設的error_page注釋掉

#error_page  404              /404.html;

然後,重新定義error_page,如下:

error_page 404 @proxy;

@proxy對應的內容為:

location @proxy {        proxy_set_header Host $http_host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_pass http://127.0.0.1;    }

儲存後,重啟nginx即可解決404 Not Found錯誤。

友情提醒:以反向 Proxy的方式訪問php時,就不需要配置php-cgi模組了。

四. 擴充

如何讓nginx支援jsp訪問。

nginx本身是不支援jsp等動態指令碼的,但我們可以通過nginx反向 Proxy的方式來支援jsp等動態網頁面的訪問,即把jsp等動態網頁面的請求,轉寄給後端的tomcat伺服器進行處理,具體配置如下:

在http下建立一個server虛擬機器,內容為:

server {        listen       8089;        server_name  localhost;        charset utf-8;        location ~ \.(jsp|action|do)$ {            proxy_pass   http://127.0.0.1:8080;        }        location ~ \.(html|js|css|png|gif)$ {              root D:/program/myplatform/Tomcat/webapps/ROOT;          }            }

重啟nginx後,通過http://localhost:8089/index.jsp即可訪問到tomcat的歡迎頁面。其中,http://127.0.0.1:8080是tomcat伺服器的訪問地址,proxy_pass將jsp等請求轉寄到了tomcat伺服器的8080連接埠上,注意配置中的靜態資源部分:

location ~ \.(html|js|css|png|gif)$ {              root D:/program/myplatform/Tomcat/webapps/ROOT;          }

如果去掉上面這段配置,通過http://localhost:8089/index.jsp將無法訪問到jsp檔案中的靜態資源,從而造成頁面配置錯亂等問題。

同理,也可以通過這種方式來整合php頁面的訪問,但要事先安裝好apache伺服器。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.