Nginx复习整理

1.官网下载Nginx
2.在linux下,这里是centos,解压文件,在解压后的文件夹路径下输入./config 如果报错,找到缺失的库进行安装,例如缺少gcc pcre zlib等等,直到编译通过
3.先make 然后make install 提示安装成功,然后进入usr/local查看 安装完成


启动方法
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf  格式 Nginx地址 -c Nginx配置文件地址




停止方法
三种方式
第一种 从容停止
ps -ef|grep nginx 查看进程号 master progress 主进程 6076
kill -QUIT 6076 
第二种 快速停止
ps -ef|grep nginx 查看进程号 master progress 主进程 6450
kill -TERM 6450
kill -INT 6450 也可以,效果相同
第三种 强制停止

pkill -9 nginx




重启方法
验证配置文件是否正确,然后重启
验证配置文件正确与否两种方法
进入可执行文件目录 cd /usr/local/nginx/sbin 
然后./nginx -t 测试是否配置有效
还可以通过/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf 来实现验证


重启方法两种
第一种 
cd /usr/local/nginx/sbin 
./nginx -s reload
第二种
kill -HUP 主进程号


信号控制
常见信号控制命令
HUP 重启
QUIT 从容关闭
TERM 快速关闭
INT 从容关闭
USR1 切割日志文件 
USR2 平滑升级可执行进程
WINCH 从容关闭工作进程


kill -USR1 进程号
kill -USR2 进程号
kill -WINCH 进程号 


Nginx中的work process工作进程,主要是处理请求 如果关闭,则无法处理请求


平滑升级
升级niginx服务器版本
原来的进程继续处理请求,但不会再接受新的请求在这些老进程处理完还在处理的请求后,停止。此平滑升级中,新的进程会被处理,这就是平滑升级




升级方法具体步骤
cd /usr/local/nginx/sbin
./nginx -V 查看当前nginx的版本号


然后下载需要升级的版本,解压,然后./configure  
然后make一下
不要make install安装,因为是升级不是安装


先对老版本的nginx进行备份,进入老版本的可执行文件目录 cp nginx nginx.old
然后将新版本的objs文件夹中的nginx复制到老版本的sbin目录下的nginx
cp -rfp objs/nginx /usr/local/nginx/sbin
然后检查以下 ./nginx -V 是否是新版本
然后将新版本的压缩包和文件夹删除




基本配置 
一般配置文件都在conf文件夹下的nginx.conf文件
user nobody; 这一行是设置用户 一般为了安全考虑, 设为nobody 
workr_processes 1; 这一行是工作衍生进程数 如果cpu的核数是1 就在这里设为1 也可以设置为cpu核数的两倍,这里最合适的值通常是对应的核数或者是cpu核数的两倍
error_log   logs/error.log; 这几行是设置错误文件存放路径
error_log logs/error.log  notice;
error_log logs/error.log info;
pid   logs/nginx.pid; 设置pid存放路径(pid是控制系统中重要文件)
events{ 设置最大连接数
worker_connections 1024;
}


http{ 网页相关的配置




server{} 这里server有很多个
server{}
}
gzip on; 开启gzip压缩 服务器是否支持gzip压缩 gzip压缩可以提高传输速度
charset gb2313; 设置字符集




虚拟主机配置
第一步是配置ip地址
ifconfig eth0 192.168.1.9 netmask 255.255.255.0 //配置ip
ifconfig eth0:1 192.168.1.10 broadcast 192.168.1.255 netmask 255.255.255.0 //配置新的设备1
ifconfig eth0:1 192.168.1.11 broadcast 192.168.1.255 netmask 255.255.255.0 //配置新的设备2


第二步是绑定ip地址和虚拟主机
可以在nginx配置文件中配置虚拟主机 但是这里考虑到安全,建议不要在自带的配置文件中配置 可以在其他的配置文件中配置,以免服务器出现挂掉问题
touch myconfig.conf


server{
listen 192.168.1.85:80;
server_name 192.168.1.85;//虚拟主机名
access_log logs/server1.access.log combined;//日志文件的路径设置 combined表示使用这个日志文件默认的格式
location /
{
index index.html index.htm; //这里设置默认的首页是index 或者index.html 或者index.htm
root html/server1; //设置ip地址绑定到哪个目录下 这里的root指的不是root目录,而是nginx的根目录下 即usr/local/nginx这个目录,这里的路径就是
usr/local/nginx/html/server1 这个目录 以后我们的网页就在这个文件夹下
}
}


server{
listen 192.168.1.86:80;
server_name 192.168.1.86;
access_log logs/server2.access.log combined;//这里的日志文件区别于其他的虚拟主机方便查看 格式必须要正确 access_log 固定 后面是日志的配置路径
location /
{
index index.html index.htm; //这里设置默认的首页是index.html 或者index.htm 第一个index是索引固定写法
root html/server2; //设置ip地址绑定到哪个目录下 这里的root指的不是root目录,而是nginx的根目录下 即usr/local/nginx这个目录,这里的路径就是
usr/local/nginx/html/server1 这个目录 以后我们的网页就在这个文件夹下
}
}


然后开启nginx 这里的命令要改变配置文件的文件名,指定为需要加载的
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/myconfig.conf 
测试通过则可以正常访问




Nginx日志文件
格式的配置
可以使用log_format指令来进行设置记录格式
这个配置,是在http这个大括号里面 
如果不配置log日志记录,则需要设置
access_log off;
切割
可以按时间
手动和自动切割
手动的方法
首先给老的日志文件改名,备份
mv server1.access.log 20180213.log 
然后 kill -USR1 主进程号 
操作后,就会新生成一个log文件,就进行了切割操作 
自动切割
crontab 定时控制
首先创建一个sh脚本,
D:$(date +%Y%m%d)
mv /server1.access.log ${D}.log
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)


保存后
然后 crontab -e  编辑任务


23 59 *** /bin/bash /cutlog.sh


保存退出 
定时切割的操作已经完成
提示 输入N
修改当前系统时区的方法
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime -R 将上海时区拷贝至/etc下。
或者输入tzselect命令可以选择




缓存配置
压缩功能配置
nginx配置文件进行修改
在server里面配置,添加一个location
location ~*\.(jpg|png|swf|gif)$
{//只要是以括号内这些后缀结尾的
expires 30d; //缓存有效期设置为30天
}
location ~*\.(css|js)$
{//只要是以括号内这些后缀结尾的
expires 1h; //缓存有效期设置为1小时
}


gzip压缩 可以减少至原文件的30% 从而提高访问速度
配置 在http里面配置
gzip on;
gzip_min_lenth 1k; 对于小于1k的文件 不需要压缩
gzip_buffers 4 16k;     内存大小配置 4个16k的数据流
gzip_http_version 1.1;  识别的版本是HTTP1.1 如果不是不支持gzip压缩
gzip_vary on;    判断客户端浏览器是否支持gzip压缩,如果不支持则不使用gzip压缩


自动列目录配置
实现自动列目录需要两个条件
1.访问的文件夹下不存在index之类的默认首页文件
2.服务器配置了自动列目录功能
在对应的server下的location下配置
location / {
root html;
index index.html index.htm;
autoindex on;  //自动列目录的配置,开启即可
}


配置后,进入主页后,会将所有目录列出








与php的结合
首先需要配置php-fpm
找到php的安装路径,找到php-fpm.conf 配置


然后在nginx中配置


单独写一个conf 然后用include在主配置文件中包含这个配置文件


location ~.*\.(php|php5)?$
        {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi.conf;
        }
这个文件通常在安装nginx中自带有的,可以直接饮用


开机自启动设置都在  etc/rc.local这个文件中设置




反向代理与负载均衡
正向代理:明确的知道服务器是哪一个 例如通过ip代理实现访问 
反向代理:访问的真实服务器不明,通过访问代理服务器来访问服务器集群实现,具体调用哪个交给代理服务器
负载均衡 分担服务器压力


负载均衡的实现


user nobody;
worker_processes 4;
events{
        worker_connections 1024;
}
http{
        upstream myproject {
ip_hash;
                server 140.211.11.105 weight=1;
                server 111.13.100.92;
                server 192.168.1.27:8888;
        }


        server {
                listen 8080;
                location / {
                        proxy_pass http://myproject;
                }
        }
}


ip_hash 配置在upstream中设置
ip_hash 的作用,就是保证一个用户登录到一个服务器后,重复登录,不会跳转到其他的服务器中


weight 权重,可以在upstream中设置,表示对某个服务器访问的概率会增加,默认的不设置默认为weight=1
默认负载均衡方式为轮询方式




配置公网的方法


这里自己测试,简单测试下,申请的花生壳的域名测试 这里将8080端口通过内网映射绑定到花生壳上即可用公网域名访问
user nobody;
worker_processes 4;
events{
        worker_connections 1024;
}
http{
        upstream myproject {
ip_hash;
server 192.168.1.27:8989;
                server 192.168.1.27:8888;
        }


        server {
                listen 8080;
                location / {
                        proxy_pass http://myproject;
                }
        }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值