`

Nginx 初探

阅读更多

Nginx 初探

engine x. 高性能http和反向代理服务器。也是一个IMAP,POP3,SMTP代理服务器。

 

编译安装:

解压: tar -zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2/
./configure --prefix=/usr/local/nginx

./configure: error: C compiler cc is not found

# yum install gcc gcc-c++ ncurses-devel perl

 

./configure: error: the HTTP rewrite module requires the PCRE library.

#yum install -y pcre pcre-devel

 

./configure: error: the HTTP gzip module requires the zlib library.
# yum install -y zlib-devel
make && make install

启动 ./sbin/nginx

 

启动过程中,如果报错:

nginx:[emerg] bind() to 0.0.0.0:80 failer (98: Address alreay in use)

表示80端口已被占用,把占用的80端口的服务或者软件关闭即可

查看端口及运行程序:

netstat -antp(表示程序)

杀掉进程:kill -9 pid ;如果还杀不掉 就pkill -9 pid

 

信号控制&进程管理



 

TERM | INT 快速关闭(不要轻易用)

kill -INT pid

 

QUIT 优雅的关闭,请求结束后在关闭

 kill -QUIT pid 等价于 ./sbin/nginx -s stop

 

HUP 开启新的子进程,然后配置文件改变,读新的配置文件,然后优雅关闭旧的子进程,所以Nginx 改完配置不必重启主进程就能使得新改的配置文件生效

kill -HUP pid  等价于 ./sbin/nginx -s reload

 

USER1: 备份日志文件使用的较多,比如备份以前的日志文件,然后重新建立新的文件,需要使得这个新的文件生效

kill -USER1 pid('cat /logs/nginx.pid') 等价于 ./sbin/nginx -s reopen

./sbin/nginx -t 检测日志文件是否有问题

 

NGINX 配置:

//全局区域:

worker process 1: 只有一个工作进程。一般设置cpu数*核数 4*8=32

 

events {

//一般配置nginx的连接的特性,如一个worker可以产生多少连接
    worker_connections  1024;//一个子进程最大允许1024个连接
}

/**配置http服务器的区域*/

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;

//基于域名
   server1{//虚拟主机区域

listen:80

server_name nicky.com

       Location{

           定位。把特殊的路径和文件再次定位,如image目录单独处理

          php 单独处理等

         root /html/ //可以是相对和绝对路径

         index index.html

      }

   }

 

//基于端口

   server1{

      listen 1988;

      server_name nicky.com;

       location{

          root /html/nicky //可以是相对和绝对路径

           index nicky.html

      }

   }

//基于ip

   server1{

      listen 80;

      server_name 192.168.1.133

       location{

          root /html/ip //可以是相对和绝对路径

           index nicky.html

      }

   }


    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index nicky.html 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;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # 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允许针对不同的server 做不同的log

1 日志格式 指那些记录选项

默认的日志格式:main

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

即 :

用户访问ip-远程用户[访问时间] 请求方法 请求body 长度 refer 来源信息

$http_referer:上一个页面自来哪里

http-yser-agent:用户代理 蜘蛛被转发的请求的原始ip

http_x_forwarded_for: 在经过代理时,代理把你的本来的ip加在刺头的信息中传输你原始的IP

 


 #access_log  logs/access.log  main;
该主机 access_log 文件位于logs/access.log 使用的格式是 main 格式

除了main格式 你可以自定义其他格式

 

 

  • 大小: 6.7 KB
分享到:
评论

相关推荐

    Nginx作为动静分离、缓存与负载均衡初探1

    【Nginx 作为动静分离、缓存与负载均衡初探1】 在现代Web服务架构中,Nginx因其高效、稳定以及丰富的功能而被广泛用作反向代理服务器、负载均衡器和静态内容服务器。本篇文章将探讨如何利用Nginx实现动静分离、缓存...

    Nginx服务器中的模块编写及相关内核源码初探

    Nginx的模块化设计是其一大特点,它允许开发者通过编写特定的模块来扩展Nginx的功能。 在Nginx中,模块是一种特殊的代码结构,可以通过预编译的方式集成到Nginx服务器中。与Apache不同的是,Nginx的模块不能动态...

    Nginx开发从入门到精通

    ##### Nginx平台初探 - **初探nginx架构**: - **模块化设计**:Nginx采用了高度模块化的架构,允许用户通过加载不同的模块来扩展其功能。 - **事件驱动模型**:Nginx的核心是基于事件驱动模型构建的,能够高效...

    Nginx 应用技术指南

    **15.8 Nginx代码分析之(一)——初探** 初步探索Nginx的源代码结构和组织方式。 **15.9 Nginx代码分析之(二)——EmptyGif是如何工作的** 深入分析Nginx中用于生成透明GIF图片的代码实现。 **15.10 Nginx连接...

    Nginx从入门到精通

    - **初探Nginx架构**:Nginx采用了一个异步事件驱动的架构模型,该模型使得Nginx能够高效地处理大量的并发连接。 - **Nginx基础概念**: - **Master-Worker模式**:一个主进程负责监听客户端连接请求,并创建多个...

    nginx入门指南

    Nginx代码分析之(一)——初探** - 开始探索Nginx源代码的基础结构。 **9. Nginx代码分析之(二)——EmptyGif是如何工作的** - 分析Nginx中处理空GIF图像的代码。 **10. Nginx连接处理** - 描述Nginx如何...

    Nginx源码初探之数据结构 – 基数树数据结构

     Nginx中基数树的实现是一种二叉查找树,具备二叉查找树的所有优点,同时避免了红黑树增删数据是需要通过自身旋转来维持平衡,因此他具有更快的插入、删除速度和更高的内存空间利用率。基数树的key兼顾唯一标识和树...

    Nginx开发从入门到精通.pdf.docx

    #### 三、Nginx平台初探 1. **架构概览**: - Nginx的核心架构基于一个主进程和多个工作进程。 - 主进程负责读取和评估配置文件,启动工作进程;而工作进程则负责处理客户端请求。 - 这种架构设计使得Nginx在...

    nginx设置资源缓存实战详解

    初探 首先我在 nginx 的根目录下新建了一个 index.html 文件以及 index.js 文件。此时 nginx 的配置文件是长这个样子的: server { listen 8080; server_name localhost; location / { root /Volumes/m

    大型、高负载网站架构和应用初探

    ### 大型、高负载网站架构和应用初探 #### 引言 随着互联网技术的飞速发展,大型、高负载网站的需求日益增加。这些网站不仅要处理海量数据,还需要为成千上万甚至数百万用户提供稳定、高效的服务。在本文中,我们将...

    CMS模块化开发和演讲稿-大型、高负载网站架构和应用初探(ppt)

    【CMS模块化开发与大型、高负载网站架构和应用初探】 在当今互联网时代,大型、高负载的网站已经成为企业及组织在线业务的核心。CMS(Content Management System,内容管理系统)的模块化开发是构建此类网站的关键...

    基于5G与大数据技术的物联网智慧工地平台初探.pdf

    为了应对高并发访问,接口服务网关一般采用Nginx负载均衡集群的设计。这样的设计能够在高流量情况下合理分配资源,确保系统的稳定性和高可用性。 在数据库设计方面,为满足业务负载的要求,系统采用主从模式以应对...

Global site tag (gtag.js) - Google Analytics