这两天在看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;

未完....待续

转载于:https://blog.51cto.com/285956/1252020

nginx 基础配置和常用模块相关推荐

  1. Python基础语法(五)—常用模块和模块的安装和导入

    Python基础语法(五)-常用模块的使用和模块的安装和导入,本文介绍的Python模块有:os.sys.time.datetime.random.pickle.json.hashlib.shutil ...

  2. Fedora 28 系统基础配置以及常用软件安装方式

    实验说明: 很多人说Linux很难用,很难上手,其实不然,倘若不玩游戏,其实很多发行版Linux都可以成为主力系统,就比如本章要讲的 Fedora 28.本章会从镜像来源.系统安装.基础配置和常用软件 ...

  3. nginx 安装配置+清缓存模块安装

    nginx 安装配置+清缓存模块安装 下载软件包 编译安装 内核参数优化 配置范例站点站点 修改nginx配置文件 Nginx 启动关闭 测试 经过一段时间的使用,发现 nginx 在并发与负载能力方 ...

  4. ansible安装部署和配置、常用模块整理

    今天心情不错~~~~第25个生日了,又遇昨晚百年难得一见的蓝月亮,所以昨晚连夜整理了文档, 会分为两部分发出去,ansible批量化部署在工作中是非常实用,建议呢 整理大量常用模块去练习 1.1.1  ...

  5. Nginx伪静态配置和常用Rewrite伪静态规则集锦

    伪静态是一种可以把文件后缀改成任何可能的一种方法,如果我想把php文件伪静态成html文件,这种相当简单的,下面我来介绍nginx 伪静态配置方法 nginx里使用伪静态是直接在nginx.conf ...

  6. Nginx基础配置和相关知识

    配置使用nginx 1.nginx虚拟主机         server{             listen             server_name             root    ...

  7. Nginx安装配置和常用使用(反向代理与负载均衡)

    文章目录 1.Ubuntu服务器中的nginx 2.Mac中使用nginx 3.配置不同的域名访问项目不需要输入端口方式 4.ssl配置 5.nginx 禁止 ip 允许和阻止访问 6.自定义403等 ...

  8. Nginx基础配置实例需求分析

    前面我们已经对Nginx服务器默认配置文件的结构和涉及的基本指令做了详细的阐述.通过这些指令的合理配置,我们就可以让一台Nginx服务器正常工作,并且提供基本的web服务器功能. 接下来我们将通过一个 ...

  9. Python学习-基础篇5 常用模块+类与对象(1)

     #random模块 1 import random2 3 print(random.random())#(0,1)----float 大于0且小于1之间的小数4 5 print(random.ran ...

最新文章

  1. 推荐几个Linux命令行下性能监控小工具
  2. 计算机科学与技术专家报告内容,计算机科学与技术专业设计报告大学内容.docx...
  3. 牛客网-数据结构笔试题目(五)-动态规划问题求解
  4. centos查找linux大文件,centos中查找出大文件命令汇总
  5. Java 并发编程之同步工具类栅栏 CyclicBarrier
  6. python基础编程语法-1.Python基础语法
  7. c语言单链表原地转置,不带头结点的单链表的插入,删除,原地转置,判断空,清空,统计节点数目等操作...
  8. Unity应用架构设计(4)——设计可复用的SubView和SubViewModel(Part 2)
  9. 一小时学会用Python Socket 开发可并发的FTP服务器
  10. Android View框架总结(四)View布局流程之Measure
  11. Unity3D学习笔记(二十七):MVC框架下的背包系统(2)
  12. 十分钟理解Redux中间件
  13. 详细介绍ADMM交替方向乘子法
  14. 计算机中心pdca,信息中心日常运维工作PDCA持续改进.docx
  15. The Porter Stemming Algorithm
  16. 【备忘】大数据最火爆技术spark之王家林2016最新高清视频教程
  17. php银行卡的验证规则,php验证银行卡号码的正确性、规范性
  18. 打造高速浏览器,逐鹿搜索市场,搜狗高速浏览器2.0值得期待
  19. C++中的unordered_map用法详解
  20. linux中一切皆文件, 一切文件皆二进制

热门文章

  1. 对Document library中修改文档的Author之实现修改在list(三)
  2. Unity -- 材质-Material和预设体-Prefabs
  3. 【图解】最流行的7个JavaScript 框架各自的优点
  4. 使用expect 打通到其他服务器无密码访问
  5. BeautifulSoup安装及其应用
  6. Linux解压WINRAR文件
  7. Windows Azure 解决方案系列:组合拍卖供应商以云服务快速拓展,并节省成本
  8. 软件公司因女员工怀二胎拒绝与其续约
  9. web布局最实用的12条css技巧
  10. 文件服务器:共享文件夹的移动和权限设置备份2012-04-28