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

前一段时间 我告诉你有关这一系列教程的信息,有关如何安装和配置用于高要求托管的服务器。 本文将介绍有关安装和配置Nginx的信息:

Nginx:

我们已经在文章前面介绍了Nginx Nginx:Apache的有趣替代品,我们告诉过你,它是一个类似于 Apache、LightHttpd 或 Cherokee 的 Web 服务器,但与 Apache 相比,它因其性能和低硬件消耗而脱颖而出,这正是许多大型网站(例如 Facebook、MyOpera.com、DropBox 甚至 WordPress)的原因.com 使用 Nginx 而不是 Apache。在Linux的世界里 DesdeLinux 它不是唯一使用 Nginx 的,据我所知,emsLinux 和 MuyLinux 也使用它:)

我在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或某些衍生产品),则必须输入以下内容并按 输入 :

aptitude install nginx

在Ubuntu中默认情况下不安装aptitude,但是我建议您安装它并使用它而不是apt-get,因为aptitude在某些情况下可以更好地管理依赖项

如果您在服务器上使用其他发行版,例如CentOS,Red Hat,Fedora,则只需安装软件包:官方存储库中的nginx

就我个人而言,我不推荐Debian的任何衍生产品,甚至不推荐Ubuntu用于服务器,多年来,我的经验并不完全令人满意。 我选择服务器操作系统的首选是Debian,然后想到了CentOS,最后想到了BSD

2.配置:

我们已经安装了 Nginx,但显然我们需要配置它。我在 FTP 上准备了一个压缩文件,其中包含服务器上使用的所有配置。 DesdeLinux,都适用于 PHP、Nginx 等。让我们下载并解压缩该文件:

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(第 5 行):该文件夹中托管的 URL、域,例如,如果它是论坛 DesdeLinux 它将是:论坛服务器名称。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站点,希望您对此感兴趣。

我会澄清,是的,仍然有一些最佳实践可以使用,但是让我们等待完成本系列教程,然后我们将评估工作的最终结果😉

问候


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  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-pin。 〜_〜

        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

      感谢您阅读🙂
      如果您有任何问题或疑虑,您知道,我们随时为您提供帮助,这里有论坛。desdelinux.net 我们将共同努力为您提供最佳解决方案

      问候

      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

      带来的提示实际上是优化 PHP 处理、站点缓存,我可以给出我们在中使用的配置示例 DesdeLinux 对于 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),我花了很多时间才能使它们工作,但我遇到的问题是,要启动的Web页面在这种情况下需要域提供者配置,所以目前我不知道如何继续。

  13.   Ricardo

    您能不能与我共享配置文件,因为我无法下载它们