nginx基本配置,参数说明和启动,停止,重启

1:序言

Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的。从2004年发布至今,凭借开源的力量,已经接近成熟与完善。

Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。

Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。

牛逼吹的差不多啦,如果你还不过瘾,你可以百度百科或者一些书上找到这样的夸耀,比比皆是。

2:Nginx常用功能

1:Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理

这里我给来2张图,对正向代理与反响代理做个诠释,具体细节,大家可以翻阅下资料。


Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案,你就可以随心所欲的玩。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。

2:负载均衡

Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。

上3个图,理解这三种负载均衡算法的实现

Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。

3:web缓存

Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。

4:Nginx相关地址

源码:https://trac.nginx.org/nginx/browser

官网:http://www.nginx.org/

3:Nginx配置文件结构

如果你下载好啦,你的安装文件,不妨打开conf文件夹的nginx.conf文件,Nginx服务器的基础配置,默认的配置也存放在此。

在nginx.conf的注释符号位#

nginx文件的结构,这个对刚入门的同学,可以多看两眼。

默认的config

########### 每个指令必须有分号结束。#################
#user administrator administrators;  #配置用户或者组,默认为nobody nobody。
#worker_processes 2;  #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid;   #指定nginx进程运行文件存放地址
error_log log/error.log debug;  #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg

#工作模式及连接数上限

events { 
    #epoll是多路复用IO(I/O Multiplexing)中的一种方式, 
    #仅用于linux2.6以上内核,可以大大提高nginx的性能 
    use epoll;#事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport 
    #单个后台worker process进程的最大并发链接数 
    worker_connections 1024;

    accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off


    # 并发总数是 worker_processes 和 worker_connections 的乘积 
    # 即 max_clients = worker_processes * worker_connections 
    # 在设置了反向代理的情况下,max_clients = worker_processes * worker_connections / 4 
    # 为什么上面反向代理要除以4,应该说是一个经验值 
    # 根据以上条件,正常情况下的Nginx Server可以应付的最大连接数为:4 * 8000 = 32000 
    # worker_connections 值的设置跟物理内存大小有关 
    # 因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数 
    # 而系统可以打开的最大文件数和内存大小成正比,一般1GB内存的机器上可以打开的文件数大约是10万左右 
    # 我们来看看360M内存的VPS可以打开的文件句柄数是多少: 
    # $ cat /proc/sys/fs/file-max # 输出 34336 # 32000 < 34336,
    # 即并发连接总数小于系统可以打开的文件句柄总数,这样就在操作系统可以承受的范围之内 
    # 所以,worker_connections 的值需根据 worker_processes 
    # 进程数目和系统可以打开的最大文件总数进行适当地进行设置 
    # 使得并发总数小于操作系统可以打开的最大文件数目 
    # 其实质也就是根据主机的物理CPU和内存进行配置 
    # 当然,理论上的并发总数可能会和实际有所偏差,因为主机还有其他的工作进程需要消耗系统资源。 
    # ulimit -SHn 65535}
    http { 
      #设定mime类型,类型由mime.type文件定义 
      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 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件, 
     #对于普通应用,必须设为 on, 
     #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off, 
     #以平衡磁盘与网络I/O处理速度,降低系统的uptime. 
     sendfile on; 
     #tcp_nopush on; 
     #连接超时时间 
     #keepalive_timeout 0; 
     keepalive_timeout 65; 
     tcp_nodelay on; 
     #开启gzip压缩 gzip on; 
     gzip_disable "MSIE [1-6]."; 
     #设定请求缓冲 
     client_header_buffer_size 128k; 
     large_client_header_buffers 4 128k;

    upstream mysvr {   
      server 127.0.0.1:7878;
      server 192.168.10.121:3333 backup;  #热备
    }
    error_page 404 https://www.baidu.com; #错误页

    #设定虚拟主机配置 
     server {

        keepalive_requests 120; #单连接请求上限次数。

        #侦听80端口 
        listen 80; 
        #定义使用 www.nginx.cn访问 
        server_name www.nginx.cn; 
        #定义服务器的默认网站根目录位置 
        root html; 
        #设定本虚拟主机的访问日志 
        access_log logs/nginx.access.log main; 
        #默认请求 
        location / { 
          #定义首页索引文件的名称 
          index index.php index.html index.htm; 
        } 
        # 定义错误提示页面 
        error_page 500 502 503 504 /50x.html; 
        location = /50x.html { 

        } 
        #静态文件,nginx自己处理 
        location ~ ^/(images|javascript|js|css|flash|media|static)/ { 
           #过期30天,静态文件不怎么更新,过期可以设大一点, 
           #如果频繁更新,则可以设置得小一点。 
           expires 30d; 
        } 
        #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置. 
        location ~ .php$ { 
           fastcgi_pass 127.0.0.1:9000; 
           fastcgi_index index.php; 
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
           include fastcgi_params; 
        }

        location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
           #root path;  #根目录
           #index vv.txt;  #设置默认页
           proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表
           deny 127.0.0.1;  #拒绝的ip
           allow 172.18.5.54; #允许的ip           
        }

        #禁止访问 .htxxx 文件 
        location ~ /.ht { 
             deny all; 
        } 
    }
}


上面是nginx的基本配置,需要注意的有以下几点:

1、

1.$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址;

2.$remote_user :用来记录客户端用户名称;

3.$time_local : 用来记录访问时间与时区;

4.$request : 用来记录请求的url与http协议;

5.$status : 用来记录请求状态;成功是200,

6.$body_bytes_s ent :记录发送给客户端文件主体内容大小;

7.$http_referer :用来记录从那个页面链接访问过来的;

8.$http_user_agent :记录客户端浏览器的相关信息;

2、惊群现象:一个网路连接到来,多个睡眠的进程被同事叫醒,但只有一个进程能获得链接,这样会影响系统性能。

3、每个指令必须有分号结束。

附加 Nginx的启动/停止/重启

1:启动

启动代码格式:nginx安装目录地址 -c nginx配置文件地址

例如:

[root@LinuxServer sbin]#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

2:停止

nginx的停止有三种方式:

1、查看进程号

[root@LinuxServer ~]#ps -ef|grep nginx

2、杀死进程

[root@LinuxServer ~]#kill -QUIT 2072

3:重启

1、验证nginx配置文件是否正确

方法一:进入nginx安装目录sbin下,输入命令./nginx -t

看到如下显示nginx.conf syntax is ok

nginx.conf test is successful

说明配置文件正确!

方法二:在启动命令-c前加-t

[root@LinuxServer sbin]#/usr/local/nginx/sbin/nginx-t -c/usr/local/nginx/conf/nginx.conf

2、重启Nginx服务

方法一:进入nginx可执行目录sbin下,输入命令./nginx -s reload即可

方法二:查找当前nginx进程号,然后输入命令:kill -HUP 进程号 实现重启nginx服务



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值