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

[经验分享] Nginx-13277431

[复制链接]

尚未签到

发表于 2018-11-10 08:42:43 | 显示全部楼层 |阅读模式
  入门项目:
  集群
  负载均衡
  LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
  企 业 级 电 子 商 务 网 站 大 多 是 是 基 于 LNMP行的网站服务端架构。
  (Linux+Nginx+MySQL+PHP)架构设计的,是目前国际上流LNMP架构具有轻量、跨平台、高性能等特点,能支持高并发请求。
  Nginx作为Web服务器,使用web服务功能,可将请求传递给PHP应用服务,PHP应用服务执行脚本,从后端Mysql取得数据,
  生成响应返回给Nginx,最后由Nginx将响应返回用户。
  /etc 下存放配置文件    /lib 下存放库文件      /bin,/sbin下存放程序   /share下存放文本
  Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是
  由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0
  发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性
  、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
  Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有
  内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx
  网站用户有:百度、京东、新浪、网易、腾讯、淘宝等目前淘宝在nginx做了二次开发:tengine
  跨平台:Nginx 可以在大多数 Unix like OS编译运行,而且也有Windows
  的移植版本。配置异常简单,非常容易上手。配置风格简单,神一般的配
  置易读性
  高并发连接:数据复制时,官方测试能够支撑5万并发连接,在实际生产环
  境中跑到2~3万并发连接数.(这得益于Nginx使用了最新的epoll模型)通信
  机制采用epoll模型,支持更大的并发连接。
  master/worker结构:一个master进程,生成一个或多个worker进程
  功能模块化: nginx的内部结构是由核心部分和一系列的功能模块所组成
  这样划分是为了使得每个模块的功能相对简单,便于开发,同时也便于
  对系统进行功能扩展。
  成本低廉:Nginx可实现负载均衡功能,可以免费使用。而购买F5 BIG-IP
  NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币
  内置的健康检查功能:如果 Nginx Proxy 后端的某台 Web 服务器宕机了,
  不会影响前端访问。
  节省带宽:有缓存模块,支持 GZIP 压缩,可实现浏览器本地缓存的
  Header 头。
  稳定性高:用于反向代理(负载均衡),宕机的概率微乎其微
  Nginx模块主要有4种角色:
  (1) core(核心模块):构建nginx基础服务、管理其他模块。
  (2) handlers(处理模块): 用于处理HTTP请求,然后产生输出。
  (3) load-balancers(负载均衡模块):当有多于一台的后端备选服务器时,选择一台转发HTTP请求。
  (4) filters(过滤模块): 过滤handler产生的输出。
  nginx安装常用两种方式,yum安装和源码包
  nginx的配置:主配置文件:nginx.conf
  扩展相关配置文件:include conf.d/*.conf
  协议配置:fastcgi, uwsgi,scgi等协议相关的配置文件
  类型配置: mime.types:支持的mime
  nginx的主配置文件路径:一般在/etc/nginx/nginx.conf下(yum安装)或者源码安装指定位置的conf目录下,
  如/usr/local/nginx/conf/nginx.conf配置文件主要配置设置:main(全区设置)http(协议配置)upstream(负载均衡服务器设置)
  和server、location(URL匹配特定位置设
  1)全局配置
  #Nginx的worker进程运行用户以及用户组
  user nobody nobody;
  #Nginx开启的进程数
  worker_processes 2;
  worker_processes auto;
  #也可以下参数指定了哪个cpu分配给哪个进程,
  #worker_processes 4 #4核CPU
  #worker_cpu_affinity 0001 0010 0100 1000
  #定义全局错误日志定义类型,[debug|info|notice|warn|crit]
  error_log logs/error.log info;
  #指定进程ID存储文件位置
  pid logs/nginx.pid;
  2)服务配置
  非虚拟主机的配置或公共配置,需要定义在server之外,http之内;
  http
  {directive value;...
  server {
  }
  server {
  }
  ... }}
  必须使用虚拟主机来配置站点;每个虚拟主机使用一个server {}段配置server
  http段参数介绍:
  1.  #文件扩展名与文件类型映射表
  2.  include mime.types;
  3.  #默认文件类型
  4. default_ type application/octet-stream;
  5.#日志相关定义
  6.  #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  7. #  '$status $body_bytes_sent "$http_referer" '
  8. #  '"$http_user_agent" "$http_x_forwarded_for"';
  9.  #定义日志的格式。后面定义要输出的内容。
  10.  #1.$remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址;12.  #2.$remote_user :用来记录客户端用户名称;
  11. #3.$time_local :用来记录访问时间与时区;
  12.  #4.$request :用来记录请求的url与http协议;
  13.  #5.$status :用来记录请求状态;
  14.  #6.$body_bytes_sent :记录发送给客户端文件主体内容大小;
  15.  #7.$http_referer :用来记录从那个页面链接访问过来的;
  16.  #8.$http_user_agent :记录客户端浏览器的相关信息
  17.  #连接日志的路径,指定的日志格式放在最后。
  18. #access_log logs/access.log main;
  19.  #只记录更为严重的错误日志,减少IO压力
  20 error_log logs/error.log crit;http段参数
  21. #默认编码 27. #charset utf-8;
  22. #服务器名字的hash表大小
  23. server_names_hash_bucket_size 128;
  24. #客户端请求单个文件的最大字节数
  25. client_max_body_size 8m;
  26. #指定来自客户端请求头的hearerbuffer大小
  27. client_header_buffer_size 32k;
  28. #指定客户端请求中较大的消息头的缓存最大数量和大小。
  29. large_client_header_buffers 4 64k;
  30. #开启高效传输模式。
  31. sendfile on;
  32. #防止网络阻塞
  33. tcp_nopush on;
  34. tcp_nodelay on;
  35. #客户端连接超时时间,单位是秒
  36. keepalive_timeout 60;
  37. #客户端请求头读取超时时间
  38. client_header_timeout 10;
  39. #设置客户端请求主体读取超时时间
  40. client_body_timeout 10;
  41. #响应客户端超时时间
  42. send_timeout 10;
  43.#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。
  44.  fastcgi_connect_timeout 300;
  45.  fastcgi_send_timeout 300
  46.  fastcgi_read_timeout 300
  47.  fastcgi_buffer_size 64k
  48.  fastcgi_buffers 4 64k
  49.  fastcgi_busy_buffers_size 128k;
  50.  fastcgi_temp_file_write_size 128k;
  51.#gzip模块设置
  52.  #开启gzip压缩输出
  53. gzip on;
  54.  #最小压缩文件大小
  55.  gzip_min_length 1k;
  56.  #压缩缓冲区
  57.  gzip_buffers 4 16k;
  58.  #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
  59.  gzip_http_version 1.0
  60.  #压缩等级 1-9 等级越高,压缩效果越好,节约宽带,但CPU消耗大
  61.  gzip_comp_level 2;
  62.  #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
  63.  gzip_types text/plain application/x-javascript text/css application/xml;
  64.  #前端缓存服务器缓存经过压缩的页面
  65.  gzip_vary on;
  高性能的LNMP企业及应用实战:
  实战项目一:实现基于LNMP的小米电子商务网站平台
  LNMP的代表就是:
  Nginx 是通过fastCGI进行调试
  项目实践:
  模块间接:
  Nginx:Nginx是一个高性能的http和反向代理的服务器(负载均衡)
  也是一个IMAP/pop3/smtp服务器
  Nginx的四种模块: core handlers load-balancers  filters
  Nginx的安装方式: 源码安装和yum安装
  yum install nginx
  systemctl start nginx
  netstart -tunlp |grep 80
  主配置文件:/etc/nginx/nginx.conf
  nginx -t 检查语法是否正确
  cd /usr/share/nginx/html error_page 的存放路径
  配置文件,程序,库,相关文档
  查看CPU的数量:
  # cat /proc/cpuinfo
  Nginx实现路由-URL的重定向: vim /etc/nginx/nginx.conf   server中进行配置
  if判断指令
  常见的全局变量:
  小米实验的过程:rz xiaomi.gizp
  1.  yum install nginx mariadb php-fpm php-mysql
  2.  cd /etc/nginx
  3.  ls
  4.  cp nginx.conf.default  nginx.conf
  5.  systemctl restart php-fpm
  6.  systemctl restart mariadb
  7.  cd /data/web
  8. cd ebak
  9.  mysql -uroot -p   create xiaomi
  10. vim /etc/nginx/nginx.conf
  11.  vim /etc/php-fpm.d/www.conf
  12. vim /etc/php.ini
  13. cd /data/web
  14. ls
  15. ll
  16. chown nobody.nobody . -R
  17. ll
  18. ll -d
  19. systemctl restart nginx
  20. nginx -t
  21. vim /etc/nginx/nginx.conf
  22. systemctl restart nginx
  23. systemctl restart mariadb
  24. systemctl restart php-fpm
  25. iptables -F
  26. cd /data/web
  27. ls
  28. vim /etc/nginx/nginx.conf
  29. systemctl restart nginx
  30. cd /data/web
  31.  ls
  32. cd data
  33. ls
  34. vim config.php
  35.  systemctl restart nginx
  #nginx -V 可查看nginx的相关加载文件路径,和Nginx的参数
  配置status
  vim  /etc/nginx/nginx.conf
  location /status {
  stub_status on;
  }
  nginx -t
  iptables -F
  getenforce
  systemctl start php-fpm
  systemctl start mariadb
  systemctl start nginx
  浏览器访问 :172.17.0.154/status
  计划任务的存放路径:/etc/crontab
  Nginx.org/en/docs Nginx的相关文档
  Nginx企业级性能优化:
  定义操作系统的级别 soft警告 hard 底线
  /etc/sercurity/limits.conf
  ulimit -n 65535当前生效
  在超时时间,缓存上都可进行优化
  buffer 解决速度不匹配的问题 cache容量和速度的问题
  php的优化:
  /etc/php.ini
  /etc/php-fpm.d/www.conf
  php-fpm有两种工作模式:  static(静态) dynameic(动态)
  设置脚本超时时间
  学会运用日志排错
  1.Nginx和apache的区别在哪?
  2.如何优化Nginx参数?
  3.Nginx的日志格式是怎么样的?常见的日志参数有哪些?
  4.在Nginx中,请说明Rewrite模块里break和last的区别?
  5.Nginx的结构是怎么样的?如何工作的?
  6.Nginx中配置location时匹配顺序是怎么样的?
  7.如何用命令实现Nginx日志统计,得到访问ip最多的前10个


运维网声明 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.iyunv.com/thread-633075-1-1.html 上篇帖子: Nginx + keepalived 实现双机热备 下篇帖子: nginx1.14.0源码编译安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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