设为首页 收藏本站
查看: 1098|回复: 0

[经验分享] nginx操作及配置

[复制链接]

尚未签到

发表于 2018-11-16 08:41:38 | 显示全部楼层 |阅读模式
  nginx处理请求过程:在请求收到后定位到配置文件中描述的相应 location,然后由 handler 生成 response,再由 filter 进行处理。所以模块开发,可以是 handler 模块开发,也可以是 filter 模块开发(当然还有其他类型的模块)。
  常用操作:
  启动:./sbin/nginx
  停止:./sbin/nginx -s stop
  ./sbin/nginx -s quit

  重载:./sbin/nginx -s>
  service nginx>  检查配置文件是否正确:./sbin/nginx -t
  配置结构:
...              #全局块  

  
events {         #events块
  
   ...
  
}
  

  
http      #http块
  
{
  
    ...   #http全局块
  
    server        #server块
  
    {
  
        ...       #server全局块
  
        location [PATTERN]   #location块
  
        {
  
            ...
  
        }
  
        location [PATTERN]
  
        {
  
            ...
  
        }
  
    }
  
    server
  
    {
  
      ...
  
    }
  
    ...     #http全局块
  
}
  

  
1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
  
2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
  
3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
  
4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
  
5、location块:配置请求的路由,以及各种页面的处理情况。
  配置事例:
user  
worker_proccess 4;
  
pid /run/nginx.pid;
  

  
events{
  
     worker_connections 768;
  
     multi_accept on;
  
}
  
http{
  
     sendfile on;
  
     tcp_nopush on;
  
     tcp_nodelay on;
  
     keepalive_timeout 65;
  
     types_hash_max_size 2048;
  
     include /etc/nginx/mime.types;
  
     default_type application/octet-stream;
  
     access_log /var/log/nginx/access.log;
  
     error_log /var/log/nginx/error.log;
  
     gzip on;
  
     gzip_disable “msie6”;
  
     include /etc/nginx/conf.d/*.conf
  
     include /etc/nginx/sites-enabled/*;
  
}
  

  
conf.d/*.conf
  
upstream gx.gaokao360.net{//upstream上游,server中的proxy_pass内容指向这里,名称可以自定义
  
     server ip:port weight=5;     //配置多个实现负载均衡
  
     server ip:port max_fails=3 fail_timeout=30s;     //默认weight=1,最大重试次数,默认值为1,重试间隔时间,默认间隔为10s
  
}
  

  
mime.types
  
types{
  
}
  

  
sites-enabled/*
  
server{
  
     listen 80;     //监听80端口
  
     server_name zuohao.online;     //url
  
     error_log /var/log/nginx/zuohao.online.error.log;
  
     access_log /var/log/nginx/zuohao.online.access.log;
  
     location / {
  
          proxy_pass http://zuohao.online.net;
  
     }
  
}
  
server{
  
     listem 80;
  
     server_name img.zuohao.online;
  
     error_log /var/log/nginx/img.zuohao.online.error.log;
  
     access_log /var/log/nginx/img.zuohao.online.access.log;
  
     location ~ .*\.(gif|jpg|jpeg|png|bmp){
  
          root /data/upload/images/;
  
          expires -1;
  
     }
  
}
  location正则表达式
  ~ 使用正则表达式,区分大小写
  ~*使用正则表达式,不区分大小写
  $ 标志结尾
  ^ 标志开头
  \ 转义字符,转义. * ?
  ^~ 优先匹配(完整路径)
  location 匹配的优先级(来自实践总结中)
  (location =) > (location 完整路径 >) >(location ^~ 路径) >(location ~* 正则) >(location 路径)
  1.标识符“=”的location会最先进行匹配,如果请求uri匹配这个location,将对请求使用这个location的配置。
  2.进行字符串匹配,如果匹配到的location有^~这个标识符,匹配停止返回这个location的配置。
  3.按照配置文件中定义的顺序进行正则表达式匹配。最早匹配的location将返回里面的配置。
  4.如果正则表达式能够匹配到请求的uri,将使用这个正则对应的location,如果没有,则使用第二条匹配的结果。
  ps:
  问:为什么location \.do${}会匹配http://www.test.com/index.do?xxx=xxx?
  答:location 后边的参数是url,URL本身是不包含?后边的参数的
  其他:
  502 Bad Gateway
  作为网关或代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
  504 Gateway Timeout
  作为网关或代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或辅助服务器(例如DNS)收到响应
  正向代理服务器用来让局域网客户机接入外网以访问外网资源,反向代理服务器用来让外网的客户端接入局域网中的站点以访问站点中的资源。
  正向代理服务器中,我们的角色是客户端,目的是访问外网的资源
  反向代理服务器中,我们的角色是站点,目的是把站点的资源发布出去让其他客户端能够访问。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-635586-1-1.html 上篇帖子: Nginx安装与优化 下篇帖子: Nginx 随笔
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表