`

nginx的简介,安装和简单配置

阅读更多
nginx的简介,安装和简单配置


转载请注明原文链接:http://blog.csdn.net/omohe/archive/2009/07/09/4335763.aspx

0. nginx在实际中使用:
之前我们介绍了使用nginx可以完全作为web app server来使用,代替Apache;
另外也可以单单使用nginx作为反向代理服务器来实现Server Cluster。


1. nginx的基础知识:
参考http://en.wikipedia.org/wiki/Nginx
http://wiki.nginx.org/Main
http://www.nginx.org/
简单来说,精华在于:HTTPServer或者reverse proxy
另 外需要注意它和ApacheServer的不同,Unlike traditional servers, Nginx doesn't rely on threads to handle requests. Instead it uses a much more scalable event-driven (asynchronous) architecture. This architecture uses small, but most importantly, predictable amounts of memory under load.
Nginx scales in all directions: from the smallest VPS all the way up to clusters of servers.
另外,更多的功能可以通过模块进行扩展。

2. nginx的安装:
具体可以参考:http://wiki.nginx.org/Main( 支持Windows和Linux等多种OS)
1) 源代码安装很简单:可以按照默认的./configure,然后make和make install
输入./configure --help可以配置需要编译的各种模块,

如果日后需要加入某个模块的话,需要重新编译,具体:
make clean,然后./configure+新的配置选项, make, make install。

难点是如何理解nginx服务器的配置,位于安装目录的nginx.conf文件。
总之需要知道的是:具体如何配置决定于准备使用nginx实现什么功能,例如最简单的单单是个反向代理服务器,或者作为一个http server来使用。各种具体应用和配置可以参看一下:
    "Typical Configurations Overview For Nginx HTTP(S) Reverse Proxy/Web Server":
    http://blog.kovyrin.net/2006/04/17/typical-nginx-configurations/
更多详情参看关于如何配置的教程:
    http://wiki.nginx.org/NginxConfiguration

默认安装到/usr/local/nginx,具体启动的时候需要到bin目录下执行sudo ./nginx;
要终止nginx可以查看位于logs目录下的pid,然后kill pid即可;
   
2) 如果是二进制包安装的话:
首先搜搜看apt-cache search nginx
然后安装sudo apt-get install nginx
Ubuntu下查看默认安装的位置,可以使用whereis nginx
nginx和Apache类似都是通过module方式对各种功能进行扩展,关于nginx更多信息可以参看如上的链接。

3) Windows下的二进制安装非常简单:
直接下载,解压缩到C:/根目录下即可.
具体参看:http://wiki.nginx.org/NginxInstall
nginx -s [ stop | quit | reopen | reload ]

3. nginx的配置:
上面介绍了,首先nginx和Apache类似通过各种模块module可以对服务器的功能进行丰富的扩展。同样也是类似通过nginx.conf文件可以对进行核心配置或者针对各种模块的配置。
http://wiki.nginx.org/NginxModules
具体如何配置通常还是取决于,准备使用nginx来做什么,几个很好的关于配置的参考资料:
http://blog.kovyrin.net/2006/04/17/typical-nginx-configurations/
http://wiki.nginx.org/NginxConfiguration

0) 首先我们展示一下默认的nginx.conf文件中各个部分:
nginx.conf配置文件中,针对不同的模块使用大括号包括起来,很方便地进行配置;
一个非常好的教程可以参看:
http://wiki.nginx.org/NginxModules

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       8080;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #这里表示设置该server的root根目录是nginx安装目录的html目录,当然可以设置绝对路径
        location / {
            root   html;
            autoindex    on; #开启自动列出目录文件功能,如果找不到index页面的话。
            index  index.html index.htm; #设置默认的首页
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        #这里是一个很好的nginx作为反向代理服务的设置,表示遇到php结尾的,会自动pass给后台侦听的apache或者别的服务器;
        #proxy the PHP scripts to Apache listening on 127.0.0.1:80
        location ~ \.php$ {
            proxy_pass   http://127.0.0.1 ;
        }
       
        #如果安装了FastCGI,则将其pass给FastCGI,这个说明了nginx本身不包裹FastCGI处理器,而是仅仅通过如下的方式pass给预先安装的FastCGI server,具体PHP的FastCGI如何安装,可以参看相关教程。
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000 ;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }

    #nginx的虚拟主机情况支持多种类型name-based(多个网站ip相同,域名不同),ip-based(多个网站ip不同)
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

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

    #提供SSL认证的server配置
    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  localhost;

    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_timeout  5m;

    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    #    ssl_prefer_server_ciphers   on;

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

}

下面我们来简单介绍各种使用nginx的情况:
可以参考http://blog.kovyrin.net/2006/04/17/typical-nginx-configurations/
1)默认安装的nginx配置文件中listen       80;
表示侦听80端口的HTTP请求,如果预先安装了Apache的话,就会占用该端口,从而使得Apache无法使用。
默认的配置提供对各种静态文件的访问;
2)nginx作为反向代理服务器使用
如上面的配置,
        #proxy the PHP scripts to Apache listening on 127.0.0.1:80
        location ~ \.php$ {
            proxy_pass   http://127.0.0.1 ;
        }
我们可以设置所有对php script脚本的请求,都proxy_pass到后台侦听的web server服务器(例如apache)等。
nginx还提供了一些模块例如Memcached,或者结合Squid等可以实现pass到后台web server相应之后,对返回的数据进行cache,从而提供性能。

这个相当于使用nginx作为apache的前端,可以看看这个教程:
http://sameerparwani.com/posts/nginx-as-a-front-end-to-apache/
常见的情况是,使用nginx直接处理静态的请求响应;对于动态的才pass给服务器,而且对服务器的响应结果进行缓存。

3)nginx做为多台server的负载均衡作用:
http://sameerparwani.com/posts/load-balancing-with-nginx/

4)另外一个常见的应用就是直接使用nginx代替了Apache,使用Linux+Nginx+MyQL+PHP的stack。
这个时候首先需要以FastCGI的方式安装PHP(需要一个FastCGI的process server),然后配置nginx支持PHP。
具体参考相关的专题介绍。

5)更多的配置介绍参看
http://wiki.nginx.org/NginxModules
各个模块的配置和configure教程。
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Nginx服务器的安装与配置

    ### Nginx服务器的安装与配置 #### 一、Nginx简介 Nginx是一款高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务。它以其稳定性、丰富的功能集、简单的配置文件和低资源消耗而闻名。Nginx是由Igor...

    nginx-1.12.2和安装配置文档.zip

    总结,Nginx 1.12.2 的安装和配置涉及到多个层面,从基础的系统环境准备到具体的负载均衡策略,每个环节都需要细致入微的调整和测试。理解并熟练掌握这些知识点,对于构建高效、稳定的 Web 服务至关重要。

    Nginx Docker安装配置

    使用Docker技术安装Nginx及配置简单的负载均衡。 将nginx的配置文件从容器中拷贝到宿主目录 $ mkdir -p /colorfulfrog/nginx/config --先在宿主机创建config目录 $ mkdir -p /colorfulfrog/nginx/html --先在宿主机...

    内网nginx全套安装环境

    【内网Nginx全套安装环境详解】 在搭建内网Nginx服务器的过程中,我们需要...正确配置和管理Nginx,可以为内网提供高效、安全的Web服务。在实际操作中,应根据具体需求进行调整,确保Nginx与内部网络架构的无缝集成。

    nginx自动安装

    5. 编译安装:执行`make`和`make install`来编译和安装Nginx。 6. 启动服务:最后,需要设置Nginx服务启动脚本并启动服务。 这个过程繁琐且容易出错,尤其对于不熟悉Linux系统的用户来说。 三、自动化安装脚本 ...

    Ubuntu下nginx1.6和sticky1.1安装配置资料 包

    在“nginx执行make命令编译成功之后的界面.png”和“nginx执行make install安装完成之后界面.png”中,你应该能看到编译和安装过程的截图。 安装完成后,创建或修改Nginx的配置文件(如`nginx.conf`),在http或...

    nginx安装和配置指南配置文件示例教程

    - **http块**:包含服务器配置和代理配置等,影响HTTP/HTTPS的处理。 ##### 3.2 示例配置文件 下面是一个简单的Nginx配置文件示例: ```nginx user www-data; worker_processes auto; pid /run/nginx.pid; ...

    FastDFS分布式存储服务器安装及nginx的安装配置

    《FastDFS分布式存储服务器与Nginx安装配置详解》 ...通过合理的配置和优化,可以满足不同规模业务的需求。在实际应用中,我们还应注意监控系统性能,定期备份数据,以确保数据的安全性和可用性。

    nginx安装和配置

    它以其稳定性、丰富的功能集、简单的配置文件和低资源消耗而闻名。本文将详细介绍如何在Linux环境下安装Nginx,并进行基本的配置。 #### 二、环境准备 本次安装使用的是openSUSE操作系统。在开始安装之前,我们需要...

    nginx离线安装教程及安装包和依赖包

    nginx是非常常用的轻量级代理工具,本教程是nginx离线安装教程,并且附带了离线安装所需要的依赖包和安装包。 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 [13],同时也提供了IMAP/POP3/SMTP服务。...

    nginx和PHP配置

    5. **验证配置**: 创建一个简单的HTML文件(如1.html),放置于设置的静态文件目录下,并在浏览器中访问`http://localhost/1.html`,若能正常显示,则表明Nginx已正确配置。 #### PHP配置步骤 **二、安装与配置PHP...

    Nginx源码安装手册

    总结来说,本Nginx源码安装手册详细介绍了在生产环境下安装Nginx的完整过程,包括环境准备、下载源码、编译配置、模块选择和自启动脚本的配置。对于希望部署稳定且可控的Nginx服务器的用户,特别是那些对软件的安全...

    nginx.conf nginx的反向代理的简单配置文件

    本资源是专门针对本博文的, nginx的反向代理的简单配置文件,给大家使用时做参考,拿走不谢,怎么一定要50字呢?

    nginx php 安装与配置

    本教程将详细阐述如何在Linux系统上安装和配置Nginx以及PHP,以实现一个能够处理PHP脚本的Web服务器。 **Nginx简介** Nginx是一款高性能的HTTP和反向代理服务器,以其高并发、低内存占用和稳定性的特点而备受青睐。...

    nginx服务器安装及配置文件详解.pdf

    Nginx安装及配置是保证其稳定运行和功能实现的关键环节,下面详细解析nginx服务器的安装及配置文件。 **1. Nginx的安装** 首先,在安装Nginx之前,需要确保系统已经安装了必要的依赖包。以CentOS 6.2 x86_64系统为...

    windows下 php+nginx配置详解

    安装完Nginx后,我们需要配置它的配置文件`nginx.conf`。这个文件通常位于`nginx`安装目录下的`conf`子目录中。在这个文件中,我们需要定义服务器块来监听HTTP请求,并指定PHP处理器的位置。例如: ```nginx server...

    Nginx安装和配置手册

    **Nginx安装和配置手册** Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,广泛应用于互联网领域,尤其在处理高并发连接方面表现出色。本手册将详细讲解Nginx的安装过程以及基本配置,帮助你更好地理解和...

    nginx简介+linux下的安装配置过程

    以下是在 Linux 系统下(以 CentOS 为例)安装和配置 Nginx 的详细步骤: #### 1. 安装依赖 在安装 Nginx 之前,需要确保已经安装了一些必要的依赖包,包括 GCC 编译器、PCRE 库、Zlib 库和 OpenSSL 库等。这些...

    在windows中对nginx的安装、配置和使用

    ### 在Windows中对Nginx的安装、配置和使用 #### 一、Nginx简介与特点 Nginx是一款高性能的HTTP服务器和反向代理服务器,它以其稳定性、丰富的功能集、简单的配置文件和较低的内存消耗而闻名。与传统的Web服务器...

Global site tag (gtag.js) - Google Analytics