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

[经验分享] 细说Nginx配置文件

[复制链接]

尚未签到

发表于 2018-11-11 11:02:39 | 显示全部楼层 |阅读模式
  【注意】nginx的配置中不支持if条件的逻辑与&& 逻辑或|| 运算 ,而且不支持if的嵌套语法,否则会报下面的错误:nginx: [emerg] invalid condition。
  #vim nginx.conf之后,就会有这样的内容。
  [root@ChrisChan conf]# vim nginx.conf
  user nobody nobody;     #用户名,无所谓随便写
  worker_processes auto;  #worker进程数量,这个是依据cpu内核和负载量等等一些值而定的,不是越大越好,有些默认是4
  error_log  /home/wwwlogs/nginx_error.log  crit;     #错误日志的存放路径
  pid        /usr/local/nginx/logs/nginx.pid;     #master pid就在这个路径里,如果要写sh停止nginx,不用ps -ef再切块,直接cat这里就行
  #Specifies the value for maximum file descriptors that can be opened by this process.
  worker_rlimit_nofile 51200;
  #工作模式及连接数上限
  #下面的event和http是可以自己开发模块往里面填充,让nginx越来越灵活。
  events
  {
  use epoll;    #epoll是多路复用IO(IO multiplexing)中的一种,适用于linux2.6内核以上,可以大大提升nginx性能      
  worker_connections 51200;        #worker可以同时打开的连接数,这也是nginx引以为傲的地方。
  multi_accept on;       #保持开启,nginx在接受新的请求的时候,会尽可能的接受链接。
  }
  http    #当接收到http的请求时,这个模块是主力军
  default_type  application/octet-stream;
  server_names_hash_bucket_size 128;
  client_header_buffer_size 32k;
  large_client_header_buffers 4 32k;
  client_max_body_size 50m;
  sendfile   on;  #sendfile函数保持开启,这样磁盘和tcp端口之间可以复制数据
  tcp_nopush on; #nginx在一个包中发送全部的头文件,而不是一次一个一次一个那种挤牙膏式
  keepalive_timeout 60;
  #客户端的有效链接时间,如果超过60秒没有反应,服务器就会关闭这个链接,这个数字可以调小,15or30,不要让服务器总等
  tcp_nodelay on;     #nginx不要缓存数据,而是把小数据尽快的发出去
  fastcgi_connect_timeout 300;    #fastcgi链接超时的时间
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 256k;
  gzip on;        #开启数据压缩,这样会减少要发送数据的量
  gzip_min_length  1k;
  gzip_buffers     4 16k;
  gzip_http_version 1.1;
  gzip_comp_level 2;      
          #设置压缩等级,从1~9,9就压缩速度最慢的但是压缩最彻底的等级
  gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
  #具体的压缩方法
  gzip_vary on;   #检测客户端是否也可以gzip
  gzip_proxied   expired no-cache no-store private auth;  #准许或禁止基于请求、相应的压缩
  gzip_disable   "MSIE [1-6]\.";  #为指定的客户端关闭数据压缩,过来多少数据就传多少
  #limit_conn_zone $binary_remote_addr zone=perip:10m;
  ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.
  server_tokens off;
  #log format       #日志的格式
  log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" $http_x_forwarded_for';
  access_log on;    #开启日志服务
  server
  {
  listen 80 default_server;       #在本地所有IP上监听80端口,若写成192.168.1.7:80,就是只监听192.168.1.7的80端口
  #listen [::]:80 default_server ipv6only=on;
  server_name www.lnmp.org;       #域名
  index index.html index.htm index.php;   #首页第一选择是index.html,其次是index.htm...
  autoindex on;   #自动列域名打开,注意,这个平时请关闭!
  root  /usr/local/nginx/html;    #指定网页的路径
  #error_page   404   /404.html;    #指定错误页面,也可以指定502,501等等
  include enable-php.conf;
  location /{
  auth_basic "your password?";    #提示在访问/的时候需要密码
  auth_basic_user_file /usr/local/nginx/conf/passwd;    #密码存放的文件路径
  index index2.html;    #访问/的时候会出现index2.html的界面
  root /usr/local/nginx/html;
  }
  location /nginx_status    #可以通过/nginx_status来查看当前连接数等信息
  {
  stub_status on;
  access_log   on;
  }
  location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  {
  expires      30d;    #缓存gif/jpg等等文件要30天
  }
  location ~ .*\.(js|css)?$
  {
  expires      12h;    #缓存js/css文件要12个小时
  }
  location ~ /\.
  {
  deny all;
  }
  access_log  /home/wwwlogs/access.log  access;    #这个是http的access_log
  }
  server
  {
  listen 80;
  server_name chrischan;
  root   /usr/local/nginx/html/server1;
  index index.html;
  }
  include vhost/*.conf;
  }
  #mail {
  #       # auth_http localhost/auth.php;
  #       # pop3_capabilities "TOP" "USER";
  #       # imap_capabilities "IMAP4revi" "UIDPLUS";
  #       #server {
  #       listen  localhost:110;
  #       protocol        pop3;
  #       proxy   on;
  #       }
  #       #server {
  #       listen localhost:143;
  #       protocol        imap;
  #       proxy   on;
  #       }
  #}
  如果服务器的cpu比较给力,内核比较新,推荐use epoll,处理高并发面不改色。但是kquene要差一点。
  补充
  --without-mail_pop3_module 禁用pop3协议(POP3即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。是因特网电子邮件的第一个离线协议标 准,POP3协议允许用户从服务器上把邮件存储到本地主机上,同时根据客户端的操作删除或保存在邮件服务器上的邮件。POP3协议是TCP/IP协议族中的一员,主要用于 支持使用客户端远程管理在服务器上的电子邮件)
  --without-mail_imap_module 禁用imap协议(一种邮件获取协议。它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。IMAP协议运行在TCP/IP协议之上, 使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。)
  --without-mail_smtp_module 禁用smtp协议(SMTP即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。)
  --without-http_rewrite_module 禁用ngx_http_rewrite_module支持(该模块允许使用正则表达式改变URI,并且根据变量来转向以及选择配置。如果在server级别设置该选项,那么他们将在 location之前生效。如果在location还有更进一步的重写规则,location部分的规则依然会被执行。如果这个URI重写是因为location部分的规则造成的,那么 location部分会再次被执行作为新的URI。 这个循环会执行10次,然后Nginx会返回一个500错误。)


运维网声明 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-633631-1-1.html 上篇帖子: nginx—sendfile 下篇帖子: 12.6 Nginx安装;12.7 Nginx默认虚拟主机;12.8 Nginx用户认证;12.9
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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