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

[经验分享] nginx 基础配置和常用模块

[复制链接]

尚未签到

发表于 2018-11-16 11:17:20 | 显示全部楼层 |阅读模式
  这两天在看nginx的东西,下面是学习过程中学习到东西,贴了出来若有哪里不对请大家给予指正。
  一:nginx安装:
  ./configure --prefix=/usr/local/nginx/
  make && make install
  采用 nginx -V 可以查看nginx版本和所安装的模块等信息。
  二:nginx http基本配置
  worker_processes  1; /* 配置nginx启动的进程数量 一般和cpu的核数相同 */
  events {         /* 配置nginx的工作模式和连接限制 */
  worker_connections  1024;  /* 配置nginx每个进程的最大连接数 */
  }
  http {
  include       mime.types;    /* nginx 包含其它的配置文件 如单独的虚拟主机配置文件可防止配置文件太过复杂 */
  default_type  application/octet-stream;  /*默认的nginx的相应文件类型为二进制流*/
  sendfile        on;                 /* 开启高效的文件系统*/
  keepalive_timeout  65;             /*客户端连接空闲超时时间*/
  server {                     /*虚拟主机的配置*/
  listen       80;             /*虚拟主机监听的ip地址和端口*/
  server_name  localhost;          /*虚拟主机的域名*/
  location / {                 /*匹配域名根*/
  root   html;             /*网站文件所在的根目录*/
  index  index.html index.htm;     /*虚拟主机的默认文档*/
  }
  error_page   500 502 503 504  /50x.html; /*发生5**错误时候重定向到指定的页面*/
  location = /50x.html {             /*匹配5**错误时候到哪里去寻找错误页面*/
  root   html;             /*错误页面所在位置*/
  }
  }
  }
  经过上述简单配置nginx就可以工作了,检查一下配置文件的正确性执行下述命令:
  [root@oracle sbin]# ./nginx -t
  nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
  nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
  可以看到上面已经检查配置文件是正确的,下面启动nginx
  [root@oracle sbin]# ./nginx
  看到无任何输出表示已经启动成功,打开浏览器输入http://serverip/ 即可看到nginx的初始页面
  三:nginx一般常用的功能和模块主要有
  ngx_http_gzip_static_module、upstream 、虚拟主机、php-fastcgi、url重写、ngx_http_ssl_module这几个功能和模块。
  3.1 ngx_http_gzip_static_module这个模块主要用来对请求的文件进行压缩 然后传送至客户端可以节省网络带快加快传输速度,但是经过服务器处理压缩需要消耗一定cpu资源,常用的配置如下
  gzip on;        /*开启gzip压缩*/
  gzip_buffers 4 16k;    /*分配多少内存用来存储压缩过的数据*/
  gzip_min_length 1k;    /*最小压缩文件、当文件小于1k时不进行压缩因为有可能越压缩越大*/
  gzip_comp_level 2;      /*进行压缩的比列级别 1-9 分别是从低到高的压缩比例*/
  gzip_types 类型 ;    /*进行压缩的文件类型,默认情况下text/html 都进行压缩*/
  gzip_http_version 1.1;  /*指定那个协议版本进行压缩*/
  3.2 upstream 模块主要用来做负载均衡,常用配置如下:
  upstream Test{        /*指定指定负载均衡组的名称*/
  ip_hash;    /*设置服务器用客户端的ip地址进行hash计算将来自同一ip地址的请求分配到同一后端真实服务器预防session的丢失,另外还有其它的一些算法如fair、url_hash*/
  server 172.16.1.2:80 weight=1 max_fails=1 fail_timeout=20s;    /*设置后端真实服务器的参数包括服务器ip:端口、权重(权重越大分配的请求越多)、最大连接失效数(默认是一次)、到达最大连接失效数后服务停止时间      还有其它的一些参数如backup(在所有服务器都失效时启用此服务器)、down (当服务故障维护时将服务器标记为down不用从配置文件删除或注释掉)*/
  server 172.16.1.3:80 weight=1 max_fails=1 fail_timeout=20s;
  }
  注:经过反向代理后,后端的真实服务器无法获取访问者的真实ip可以在nginx上更改http请求头部信息来实现,详见后续
  3.3 一台服务器上需要跑多个站点的话需要采取这种技术,常见有两种分别是基于域名的虚拟主机和基于ip的虚拟主机,基本配置如下:
  基于域名的虚拟主机:
  server {        /*主机或虚拟主机的配置开头*/
  listen 172.16.3.80:80;         /*设置虚拟主机的监听的ip地址和端口*/
  server_name www.extest.com;    /*设置本虚拟主机匹配的域名,可配置多域名,多个域名之间用空格隔开*/
  access_log /var/www/log/;    /*设定访问日志的路径*/
  location / {                /*虚拟主机的的匹配目录*/
  root /var/www/html;
  index index.html;
  }
  }
  基于ip的虚拟主机(前提是服务器上有多块网卡或者当网卡配置多个ip):
  server {        /*主机或虚拟主机的配置开头*/
  listen 172.16.3.80:80;         /*设置虚拟主机的监听的ip地址和端口*/
  server_name 172.16.3.80;    /*设置本虚拟主机匹配的主机名称*/
  location / {                /*虚拟主机的的匹配目录*/
  root /var/www/html;
  index index.html;
  }
  }
  3.4 nginx使用fastcgi解析nginx配置如下:
  location ~\.php$ {        /*设置当请求的文件时.php时用下列的配置进行解析*/
  root    html;        /*文档目录位置*/
  fastcgi_pass    127.0.0.1:9000;        /*php文件通过通过fastcgi解析的ip和端口*/
  fastcgi_index   index.php;        /*请求的php主文档*/
  fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html/$fastcgi_script_name;   /*配置哪个目录下的php文件用fastcgi解析*/
  include        fastcgi_params;        /*包括其它fastcgi配置文件*/
  }
  fastcgi的一些优化,在http块增加如下的一些配置:
  fastcgi_read_timeout 300;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_buffer_size 64k;
  fastcgi_buffers 4 64k;
  fastcgi_busy_buffers_size 128k;
  fastcgi_temp_file_write_size 128k;
  未完....待续


运维网声明 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-635748-1-1.html 上篇帖子: yum安装nginx 下篇帖子: nginx配置安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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