Nginx详解

梦想的初衷 提交于 2021-02-14 08:37:13

Nginx详解

一、Nginx介绍

nginx:开源的,高性能的。高并发的www服务器和代理服务
   对静态资源处理能力强,占用资源极少,
   高并发状态下容易造成崩溃
同类型web服务:apache、tomacat、resin、weblogic
反向代理:lvs、haproxy
前端缓存:squid、vanish

二、Nginx重要特性

①支持高并发    ②资源消耗少

三、Nginx三大功能

①web服务  ②前端缓存  ③反向代理

Nginx使用的是epoll模型
Apache使用的是select模型(初始模型,性能差)
Apache在处理动态资源的时候比Nginx强
什么是epoll:异步I/O网络非阻塞模型
什么是select:同步I/O网络阻塞模型

四、Nginx安装

安装Nginx的支持包:pcre-devel openssl-devel
解压nginx包到/usr/local
进入nginx解压后的包进行编译:

./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module && make && make install

做软连接或环境变量==>echo "PATH=$PATH:/usr/local/nginx/sbin" >> /etc/profile

五、Nginx的使用

——打开nginx配置文件:vim /usr/local/nginx/conf/nginx.conf

将没用的清空,去#注释内容留如下图所示:

work_processes==>工作的进程数,跟cpu核数相对应
worker_connections  1024;==>进程里的线程数,默认1024,工作中写成20倍—20480
http下面的大函数里面跟wed服务器有关
  include  mime.types;==>导入函数mime装的所有函数,相对路径
  sendfile  on;==>默认开启nginx文件的高效传输功能
  keepalive_timeout  65;==>默认开启连接保持65秒(连接保持状态可以免tcp三次握手,提高效率)
  server  函数:代表一个网站
  listen  80;==>默认监听socket端口;http默认80端口
  server_name  localhost;==>server_name做域名
  location  / ==>搜索网址时,后面会有/符号
    root  html;==>默认网页根目录路径开始
    index  index.html  index.htm;==>首页

 include  相对路径==>可以在另一个文件写配置文件然后导入

 location五个优先级

location / —>默认匹配
location =/ —>精确匹配
location =/images/ —>精确匹配,后面什么都不能有
location /documents/ —>前缀型字符串匹配,必须从根开始,后面任意
location ^~ —>前缀型正则匹配,特殊正则,必须以正则开头
location ~*.(gif|jpg|jpeg)$ —>正则匹配,不需要从头开始,只要含有以.gif|.jpg|.jpeg结尾就行
———>精确匹配>特殊正则(^~)>普通正则(~*)>字符串前缀匹配(/images/)>默认匹配

启动Nginx服务==>/usr/local/nginx/sbin/nginx

检验Nginx配置文件是否正确==>/usr/local/nginx/sbin/nginx -t

重启Nginx服务==>/usr/local/nginx/sbin/nginx -s reload(每次修改配置文件都需重启服务)

 六、Nginx rewrite(重写)

写法:rewrite regex(正则) replacement(匹配到的内容进行重写) 【flag】(结尾);
例:rewrite ^/(.*) http://www.baidu.com/$1 permanent;

flag四种标记:last-本条规则匹配完成之后,继续向下匹配新的location URI规则
      break-本条规则匹配完成即终止,不再匹配后面任何规则
      redirect-返回302临时重定向
      permanent-返回301永久重定向
———————————————————————
if ( $http_host ~* "^(.*)\.yunjisuan\.com$" ) {
set $domain $1;==>set赋值,将$1赋值给$domain
rewrite ^(.*) http://www.yunjisuan.com/$domain break;
}

if语句:如果if匹配到一任意开头.yunjisuan以 .com结尾,则使用rewrite转化成www.yunjisuan.com/

如下图所示:

将benet1.yunjisuan.com跳转到www.yunjisuan.com/benet1/index.html

七、Nginx访问认证(可以设密码)

需要htpasswd,如果没有需要装http:

yum -y install httpd

生成密码:

htpasswd -bc /usr/local/nginx/conf/htpasswd yunjisuan 123123

查看一下密码文件:

cat /usr/local/nginx/conf/htpasswd==>是加密的密码

在虚拟主机里加配置==>vim /usr/local/nginx/conf/nginx.conf
location里index index.html index.htm下添加
  auth_basic  "welcome to my home";==>标题随便写
  auth_basic_user_file  /usr/local/nginx/conf/htpasswd;==>密码文件路径
如下图所示:

——————配置完成

登录www.yunjisuan.com时会出现认证:

八、Nginx日志切割脚本

 

 

 



 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!