如何使用Nginx + MySQL + PHP5 + APC + Spawn_FastCGI安裝Web服務器[第二部分:Nginx]

前一段時間 我告訴你有關這一系列教程的信息,介紹如何安裝和配置用於高要求託管的服務器。 本文將介紹有關安裝和配置Nginx的信息:

Nginx的:

我們之前已經在文章中告訴過您有關Nginx的信息 Nginx:Apache的有趣替代品, ahí les comentamos que es un servidor web como Apache, LightHttpd o Cherokee, pero que comparado con Apache destaca por su rendimiento y bajo consumo de hardware, precisamente por eso es que muchos sitios grandes como Facebook, MyOpera.com, DropBox o inclusive WordPress.com usan Nginx en vez de Apache. En el mundillo de Linux DesdeLinux no es el único que usa Nginx, hasta donde sé, emsLinux y MuyLinux también lo usan 🙂

我在Nginx上的親身經歷可以追溯到幾年前,當時我出於必要而開始尋找Apache的輕量級替代品。 當時Nginx打算使用0.6版,並且它與用PHP製作的高需求站點的兼容性不是最佳的,但是從現在的0.9版開始(Debian Stable提供v1.2.1,ArchLinux提供v1.4.2)有了很大的改進,以至於通過適當的配置和Nginx + PHP的結合,一切都將像魅力一樣。

在本教程系列中 我將使用Nginx版本1.2.1-2.2,可在Debian Stable repos(Wheezy)中找到。

本教程僅涉及Nginx,不涉及Nginx + PHP,Nginx + PHP的結合以及其優化或必要的配置將在本教程中介紹。 下一個教程

1.安裝:

我們將從第一件事開始,從我們的存儲庫安裝Nginx。

所有將要執行的命令都具有root權限,可以通過在每行的開頭放置sudo或以root用戶身份登錄來執行。

如果在服務器上使用終端中的發行版(例如Debian,Ubuntu或某些衍生產品),則必須輸入以下內容並按 Enter :

aptitude install nginx

在Ubuntu中默認情況下不安裝aptitude,但是我建議您安裝它並使用它而不是apt-get,因為aptitude在某些情況下可以更好地管理依賴項

如果您在服務器上使用其他發行版,例如CentOS,Red Hat,Fedora,只需安裝軟件包:官方存儲庫中的nginx

我個人不推薦Debian的任何衍生產品,甚至服務器也不推薦使用Ubuntu,多年來,我的經驗一直不令人滿意。 對於服務器操作系統,我的首選是Debian,然後我想到了CentOS,最後想到了BSD。

2.配置:

Ya tenemos instalado Nginx, pero necesitamos obviamente configurarlo. Les he preparado un archivo comprimido en el FTP el cual contiene todas las configuraciones que se usan en los servidores de DesdeLinux, tanto para PHP, Nginx, etc. Vamos a descargar y descomprimir ese archivo:

cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

這將創建一個名為nginx-spawn-fastcgi的文件夾,從中我們將需要兩個文件用於純Nginx(即,不將其鏈接到PHP):

  • nginx.conf-»主要的Nginx配置文件(我們稍後將討論其內容)
  • index.html-»一個簡單的html文件,我們將使用它查看Nginx是否以其最基本的形式對我們真正起作用
  • mywebsite.net-»簡單網站的配置文件,一個VHost(虛擬主機),它將配置對前一個html的訪問

我們首先移至Nginx設置文件夾:

cd /etc/nginx/

然後,讓我們刪除其默認配置並放入我們自己的:

mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./

正如我所說的,這是主要的Nginx配置文件,在其中我已經定義了以下內容:

用戶www-data; worker_processes 4; pid /var/run/nginx.pid;

用戶對文件系統的訪問(nginx將使用該文件系統在任何地方訪問),要使用的進程數以及PID(nginx進程ID)。

我們還有一個稱為事件(事件的設置)的小塊,其中包含一行指示每個事件允許的最大連接數。 下面是稱為http的塊。

這個http塊幾乎包含與託管相關的所有內容,至少包含您感興趣的許多內容。 例如,最長生存時間或等待時間(超時),即我們的常規日誌為(access.log和error.log),使用gzip進行數據壓縮以及其他將來可能有用的規則。

一旦主配置文件到位,讓我們將文件從VHost複製到sites-available文件夾

cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/

此外,我們必須從該文件到啟用了站點的文件夾建立符號鏈接。

ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/

我將說明啟用站點和站點可用的有用性。

他們會發現必須準備好幾個虛擬主機文件並進行配置的時刻,因為它們將在該服務器上聯機(例如5個站點)。 但是,碰巧還不是時候啟用這2個虛擬主機中的5個,但是它們必須已準備好文件,以便在必要時可以在最短的時間內使它們聯機。 您可以在站點可用(sites-available)中放置任意數量的虛擬主機,因為Nginx讀取的虛擬主機僅是啟用站點(啟用站點)的虛擬主機,它也可以在相反的方向上工作,如果您要使網站(例如暫時)處於脫機狀態,則無需從服務器中刪除文件(我們有時需要的文件),我們只需刪除啟用了站點的符號鏈接即可。 具有符號鏈接而不是簡單地將文件從一個文件夾複製到另一個文件夾的實用程序是,當我們要編輯虛擬主機時,是否編輯位於啟用或可用中的虛擬主機並不重要,最後還是一樣
存檔。

如我之前所說,文件mywebsite.net是一個虛擬主機,也就是說,我們必須修改mywebsite.net並建立我們的配置。

我們必須更改以下內容:

  • access_log(第3行):這將是此站點的訪問日誌文件的路徑
  • error_log(第4行):這將是錯誤日誌文件到此站點的路徑
  • server_name (línea 5): La URL, dominio que está hosteado en esa carpeta, por ejemplo, si se tratase del foro de DesdeLinux sería: server_name foro.desdelinux淨
  • 根目錄(第6行):html文件所在的文件夾的路徑,我們將其保留在/ var / www /中,因為這只是一個測試
顯然,他們必須在託管提供者的DNS記錄中(使用CPanel或其他工具)指出server_name中聲明的域或子域位於他們正在配置的該服務器的IP上。 也就是說,在他們為其域創建子域的DNS中,他們必須聲明在第5行中放置的域或子域在此服務器上(此服務器=該服務器的IP地址)

現在,我們只需要將html文件複製到我們在VHost文件中定義的文件夾/ var / www /:

mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/

然後,我們重新啟動Nginx就是這樣:

service nginx restart

瞧,這樣的事情會出現:

nginx-純測試站點-html

我提醒您,我們首先使用Nginx for HTML,而沒有PHP支持,此安裝PHP並將其鏈接到Nginx將成為下一個教程的內容(我保證,幾天之內)。

無論如何,這是Nginx的安裝和配置教程,因此它可以純工作,即HTML站點,希望您對此感興趣。

我會澄清,是的,仍然有一些最佳實踐可以使用,但是讓我們等待完成本系列教程,然後我們將評估工作的最終結果😉

問候


26條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   Nelson 他說:

    謝謝,非常有幫助!

    1.    KZKG ^ Gaara 他說:

      謝謝你的評論

  2.   獵人 他說:

    在backport中有nginx 1.4 ..

    1.    KZKG ^ Gaara 他說:

      是的,但是在生產中的服務器上,我不使用任何一個😀

      1.    獵人 他說:

        “那”是指nginx發布的最新穩定和經過測試的版本,聽起來像是sid的apt-pining。 〜_〜

        1.    KZKG ^ Gaara 他說:

          哦,拜託,是...在我從未喜歡過的服務器上使用其他存儲庫,反向移植或類似的東西🙂

      2.    拉斐爾·卡斯特羅(Rafael Castro) 他說:

        我一直在服務器上保持穩定,幾年前就知道了。

        1.    獵人 他說:

          Nginx 1.4自去年1.4.1月以來一直穩定,在反向移植中為3-XNUMX。

          2013-04-24

          nginx-1.4.0穩定版已發布,其中包含在1.3.x分支中開發的許多新功能-支持WebSocket連接代理,OCSP裝訂,SPDY模塊,gunzip過濾器等。

          http://nginx.org/en/CHANGES-1.4

          1.    拉斐爾·卡斯特羅(Rafael Castro) 他說:

            你說的對,我的帽子沒了。

  3.   欽諾洛科 他說:

    感謝您的分享,我目前正在將您最早的帖子付諸實踐。
    我要向您提問XD

    1.    KZKG ^ Gaara 他說:

      感謝您閱讀🙂
      Cualquier duda o pregunta ya sabes, estamos para ayudar, ahí tienes el foro.desdelinux.net donde entre todos te intentaremos dar la mejor solución

      問候

      1.    Gibran巴雷拉 他說:

        我有一個問題,我的服務器上運行的LAMP(Linux(Debian Wheezy),Apache,PHP和MySQL)適用於WordPress和Owncloud,如何遷移到Ngnix,另一個問題是Ngnix和Lighttpd有什麼區別。

        1.    KZKG ^ Gaara 他說:

          從Apache遷移到Nginx的最大麻煩或困難是每個站點的配置,即您所使用的.htaccess。

          當切換到Nginx時,.htaccess是最複雜的,因為它們是您必須在Nginx VHost中放置的不同配置。

          關於LightHTTPd和Nginx ...我不知道,很多年前我只使用過一次LightHTTPd,目前我還不知道它的發展如何,特別是使用PHP。

  4.   埃利奧時間3000 他說:

    與Apache相比,NGINX看起來非常簡單。 等待下一個情節能夠用PHP進行補充

  5.   他說:

    我正在等待提示,以便對nginx進行更多優化

    順便說一下,Gaara可以在您的下一個教程中介紹如何實現SSL支持。

    問候。

    1.    KZKG ^ Gaara 他說:

      Los tips que vienen son en realidad para optimizar el procesamiento PHP, caché a sitios, puedo poner el ejemplo de la configuración que usamos en DesdeLinux para Nginx+Wordpress+W3_Total_Cache 🙂

  6.   凱澤 他說:

    謝謝您的貢獻。

  7.   Apr4xas 他說:

    以及什麼時候用於archlinux的指南? xD

    1.    KZKG ^ Gaara 他說:

      在Arch中,它非常相似,只改變了軟件包的名稱,但是... conf幾乎相同

      但是誰擁有帶有Arch的生產服務器? 😀

  8.   Apr4xas 他說:

    你好,

    還是我xD ...

    我正在按照您的步驟在使用archlinux的計算機上應用它們,但遇到以下問題:

    [abr4xas@Genius www]$ systemctl status nginx.service
    nginx.service - A high performance web server and a reverse proxy server
    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
    Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
    Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)

    有什麼建議😀

  9.   他說:

    Jo…xox,我只想要一個內部服務器,也就是說,我只想替換xampp,我應該做所有這一切嗎?

    1.    KZKG ^ Gaara 他說:

      如果您願意,您可以實現這一點(我重複一遍,這是DL的工作方式),實際上,我的虛擬服務器(我用於開發和測試)已經用我解釋的相同方法完成了。

      也就是說,您可以刪除XAMPP並放入此變體,它會正常工作,或者如果您想離開XAMPP ...,它仍然可以為您工作。

      我所展示的使用它的積極點在於,與Apache相比,硬件的消耗非常低,但是,在您的個人計算機上,它並不是一個高要求的託管服務器,而與之相距甚遠……如果XAMPP對您有效,那麼我不會看看為什麼要刪除它🙂

  10.   艾薩克 他說:

    我已經在運行Linux服務器(Debian,Nginx,MySQL和PHP),因為我習慣了簡單的Apache Web服務器,所以很難使PHP與Nginx一起使用。

    我的問題是:是否有人知道如何將我購買的測試域指向服務器? 我想嘗試.com域以了解其工作原理,但是我絲毫不知道如何進行操作,因為我一直使用NOIP地址通過noip DUC訪問它。

    希望有人能幫助我,謝謝!

  11.   亞伯拉罕 他說:

    當嘗試連接到您的ftp時出現此錯誤:

    cd〜&& wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

    HTTP請求已發送,正在等待響應…找不到404
    2015-11-23 17:46:30錯誤404:找不到。

  12.   瑞安 他說:

    我的服務器在CentOS上運行(Gunicorn,Nginx,PHP),這使我花了很多時間才能使它們工作,但是我遇到的問題是我要啟動的網頁需要在此配置域提供程序案例Go Daddy,所以目前我不知道該如何繼續。

  13.   里卡多 他說:

    您能不能與我共享配置文件,因為我無法下載它們