nginx简单介绍

nginx

安装
下载源码包:wget path
安装:
./configure --prefix=安装目录 //安装过程可能报错,一般为缺少包(PCRE、zlib、openssl),根据报错提示安装
make & make install
启动:
./nginx/sbin/nginx

控制命令

#进程号存储在logs/nginx.pid
./nginx //启动nginx
kill -INT pid //快速关闭nginx
kill -QUIT pid //优雅关闭
kill -HUP pid  //重载配置文件,使用新配置运行
kill -USR1 pid //重读日志文件,即切换日志文件
kill -USR2 pid //平滑升级
kill -WINCH pid //平滑关闭旧进程
#控制命令
./nginx -s stop //快速关闭
./nginx -s quit //优雅关闭
./nginx -s reload //重载配置文件,使用新配置运行
./nginx -s reopen //重读日志文件,即切换日志文件
./nginx -t //测试配置文件是否出错

配置文件

worker_processes 1;#一般设置为cpu个数*cpu核心数
events {
    worker_connections  1024;#一个工作进程允许的最大连接数

}
http {
    #配置http服务
    server {
        #虚拟主机配置
    }
}
虚拟主机
server {
        listen       80;#监听的端口

        server_name  hostname.com;#监听的主机名、域名、ip
        location / {
            root html;
            index index.html;
        }
}
日志管理
#可以使用以下脚本管理nginx的日志
date=`date -d yesterday +%Y%m%d` #获取时间
logpath=/usr/local/logs/xxx.log  #日志的目录
bakpath=/data/logs/  #要存放的备份目录
bakname=xxx.log.$date   #备份日志的文件名
bakfilepath=$bakpath/$bakname  #备份日志的完整路径
mv $logpath $bakfilepath  #移动日志到备份目录
touch $logpath   #重新创建源日志文件
/usr/local/nginx -s reopen   #重读日志文件,即切换日志文件

#设置linux定时任务即可
location配置
location = pattern #精准匹配,如果匹配中的如果是目录,则会重新进行匹配
location pattern #普通匹配,匹配度越高,则使用
location ~ pattern #正则匹配
#匹配过程(默认匹配nginx目录下的html)
#精准匹配 > 正则匹配 > 普通匹配,精准匹配命中则不进行继续匹配,如果精准匹配未命中,则进行普通匹配,如果普通匹配有命中,则判断匹配度,以匹配度最高的为准,记忆匹配结果,如果有正则匹配,则以第一个匹配的为准,如果没有匹配则返回记忆结果
rewrite URL重写
if (cond){} #设定条件,在进行重写,if后面需要加空格,判断变量在前,条件在后,如果是文件判断则条件在前,变量在后,重写后重新匹配的url与开始的访问路径一致
set #设置变量
return #返回状态码
break #跳出rewrite,防止循环重定向
rewrite #重写url
#############################
rewrite regex rewriteaddr [break];#正则中如果有{},则需要将所有正则使用双引号包裹
gzip压缩
gzip on|off;#是否开启
gzip_buffers 32 4k|16 8k;#缓存块以及块大小
gzip_comp_level 1-9;#压缩级别
gzip_disable pattern;#不压缩的规则
gzip_min_length 200;#最小压缩长度
gzip_http_version 1.1;#压缩http协议版本
gzip_proxied #如果经过代理,设置缓存;
gzip_types text/plain application/xml;#压缩类型
gzip_vary on|off;#传输压缩标志
expires缓存
#在location和server中
expires 30s;#单位s,m,h,d等
#会在浏览器本地缓存读取已缓存的内容
反向代理
#反向代理到其他服务器
proxy_pass url|upserver_name;
proxy_set_header X-Forwarded-For $remote_addr;
负载均衡
upstream up_name {
    [ip_hash;]#使用ip_hash算法进行负载均衡;
    server address [params];
}
MemCache
set $memcached_key "$uri";#设置memchache的key
memcached_pass mc_addr;#memcache的地址
error_page 404 /callback;#如果发生错误回调的地址
第三方模块的安装
#重新编译
./configure -prefix=path --add-moudle=moudlepath
make & make install
#会生成一个nginx.old的可执行文件
高性能服务器架构
#优化思路
1.减少请求(合并css,js等,合并图片,添加缓存,减少查库,添加cdn)
2.添加服务器(服务器集群加负载均衡)
nginx统计模块使用 --with-http_stub_status_module 参数重新编译
location /status {
    stub_status on;#开启统计模块
    access_log off;#关闭日志
    allow 127.0.0.1;#只允许指定ip访问
    deny all;#禁止其他访问
}
#解决方案
worker_connections  #修改工作进程最大链接数
worker_rlimit_nofile #修改nginx进程允许打开的文件数,全局配置

/proc/sys/net/core/somaxconn  #加大进程最大连接数 
/proc/sys/net/ipv4/tcp_tw_recycle #tcp快速回收 1开启
/proc/sys/net/ipv4/tcp_tw_reuse #tcp重用 1开启
/proc/sys/net/ipv4/tcp_syncookies #tcp洪水抵御 0关闭
ulimit -n 10000 #加大系统允许打开的文件数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值