在nginx主配置文件nginx.conf的http模块下引入配置文件夹(注意路径的正确性)

1、nginx主配置文件备份后编辑(nginx配置存放位置:/usr/local/nginx/conf/):

cd /usr/local/nginx/conf/ && mv nginx.conf nginx.conf-bak && vim nginx.conf

贴入内容如下:

user  www www; #运行用户

worker_processes 1;
#nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的倍数

#worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
#为每个进程分配cpu,上例中将8个进程分配到8个cpu,当然可以写多个或者将一个进程分配到多个cpu,根据自己环境来配。

error_log /usr/local/nginx/logs/nginx_err.log crit; #错误日志位置和日志级别

pid  /usr/local/nginx/nginx.pid;
#目录和安装位置一致才行,按教程安装的不用改目录

worker_rlimit_nofile 65535;
#当一个nginx进程打开的最多文件描述符数目,理论值应该是系统的最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。

events
{
 use epoll;
 #使用epoll的I/O模型,用这个模型来高效处理异步事件
 worker_connections 65535;
 #每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。
}

http

  include /usr/local/nginx/conf/conf.d/*.conf;
  #这里就是引入的子配置文件夹

server_tokens off;
 #隐藏响应头中的有关操作系统和web server(Nginx)版本号的信息,这样对于安全性是有好处的。

include    mime.types;
 default_type  application/octet-stream;

charset  utf-8; #字符集编码格式

server_names_hash_bucket_size 128;
 client_header_buffer_size 2k;
 #客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。

large_client_header_buffers 4 4k;
 client_max_body_size 8m;

sendfile on;
 #可以让sendfile()发挥作用。sendfile()可以在磁盘和TCP socket之间互相拷贝数据(或任意两个文件描述符)。Pre-sendfile是传送数据之前在用户空间申请数据缓冲区。之后用read()将数据从文件拷贝到这个缓冲区,write()将缓冲区数据写入网络。sendfile()是立即将数据从磁盘读到OS缓存。因为这种拷贝是在内核完成的,sendfile()要比组合read()和write()以及打开关闭丢弃缓冲更加有效(更多有关于sendfile)。

tcp_nopush on;
 #告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值

tcp_nodelay on;
 #告诉nginx不要缓存数据,而是一段一段的发送--当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值。

keepalive_timeout 60;
 #http连接超时时间,默认是60s,功能是使客户端到服务器端的连接在设定的时间内持续有效,当出现对服务器的后继请求时,该功能避免了建立或者重新建立连接。切记这个参数也不能设置过大!否则会导致许多无效的http连接占据着nginx的连接数,终nginx崩溃。

fastcgi_connect_timeout 300;
 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 128k;

#open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如果有一个文件在inactive时间内一次没被使用,它将被移除。

open_file_cache max=65535 inactive=20s;
 #这个参数将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存
 
 open_file_cache_min_uses 1;
 open_file_cache_valid 30s; #多长时间检查一次缓存的有效信息
 
 gzip on;
 gzip_min_length  1k;
 gzip_buffers   4 16k;
 gzip_http_version 1.0;
 gzip_comp_level 2;
 gzip_types    text/plain application/x-javascript text/css application/xml;
 gzip_vary on;

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  /usr/local/nginx/logs/nginx_out.log  access; #访问日志存放位置

autoindex off; #不允许列出整个目录
autoindex_exact_size off; #显示出文件的大概大小,而非确切大小,单位是kB或者MB或者GB
autoindex_localtime off; #显示的文件时间为GMT时间

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/s;
#限速模块——限制单个IP(或者其他的key)发送请求的速率,超出指定速率后,Nginx将直接拒绝更多的请求;定义了一个名为mylimit大小为10MB的共享内存区域(zone),用来存放限速相关的统计信息,限速的key值为二进制的IP地址($binary_remote_addr),限速上限(rate)为5r/s,每秒5请求;

}

2、在引入的配置文件夹中添加个基础的独立配置文件html.conf,

复制用快捷指令:mkdir /usr/local/nginx/conf/conf.d/ && cd /usr/local/nginx/conf/conf.d/ && vim html.conf

贴入下方绿色文字配置:

server
 {
  listen    80; #监听端口
  server_name localhost; #域名
  index index.html index.htm index.php; #配置增加支持php文件解析
  root  /var/html/; #站点目录,目录要存在

#limit_conn zone=mylimit 5; #限制在记录状态的每个IP只能发起的并发连接数量
#limit_rate 1000k; #对每个连接限速多少,这里是对连接限速,而不是对IP限速。如果一个IP允许三个并发连接,那么这个IP就是限速为limit_rate×3,在设置的时候要根据自己的需要做设置调整,要不然会达不到自己希望的目的。
#limit_rate_after 50000k; #在下载这个数值后开始限速。

location / { 
    #limit_req zone=mylimit burst=10; #限速模块——每个key(此处是每个IP)最多允许10个突发请求的到来,与下方规则二选一
    limit_req zone=mylimit burst=10 nodelay; #限速模块——nodelay参数允许请求在排队的时候就立即被处理,与上方规则二选一
  }

location ~ .*\.(php|php5)?$
  {
    fastcgi_pass 127.0.0.1:9000; #遇到php这类动态解析文件丢给9000端口的程序处理
    fastcgi_index index.php; #配置支持php文件解析
    #include test.conf;
  }

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css)$
  {
   expires 15d; #浏览器缓存时间1小时
  }

#安全设置
  location ~* ^/(class|controller|db|data|functions|templates)/.*.(db3|php|php5|sql)$ {
    return 403;
  }
  location ~* ^/(data)/.*.(html)$ {
        deny all;
  }
  location /db {
        deny all;
  }

#伪静态
  rewrite ^/click/(.*) /index.php?c=click&id=$1 break;
  rewrite ^/api/(.*)?(.*) /index.php?c=api&method=$1&$2 break;
  rewrite /login /index.php?c=login break;

}

3、配置检查

cd /usr/local/nginx/sbin && ./nginx -t

4、启动nginx

cd /usr/local/nginx/sbin && ./nginx

nginx运行状态查看

查看80端口占用情况:
netstat -tunlp | grep 80

# 查看进程是否运行
ps -A | grep nginx

# 强制关闭nginx
pkill nginx

nginx配置文件单独创建和管理的更多相关文章

  1. IDEA一步步创建Maven管理的Spring入门程序

    目前,做Java开发的很多人都在使用IDEA了,而有些人也选择用Eclipse,我这里介绍一下IDEA一步步创建Maven项目的步骤,并创建一个Spring的入门程序(Java项目,非Web项目),讲 ...

  2. Etcd+Confd实现Nginx配置文件自动管理

    一.需求 我们使用Nginx做七层负载均衡,后端是Tomcat.项目采用灰度发布方式,每次项目升级,都要手动先从Nginx下摘掉一组,然后再升级这组,当项目快速迭代时,手动做这些操作显然会增加部署时间 ...

  3. Ansible 使用 Playbook 管理 Nginx 配置文件

    前面我们已经安装完 Nginx,但是在日常维护中经常需要修改配置文件,并重新加载配置文件,因此来写一个管理 Nginx 配置文件的 Playbook: [root@localhost ~]$ mkdi ...

  4. Nginx+Tomcat关于Session的管理

    前言 Nginx+Tomcat对Session的管理一直有了解,但是一直没有实际操作一遍,本文从最简单的安装启动开始,通过实例的方式循序渐进的介绍了几种管理session的方式. nginx安装配置 ...

  5. Hyper-V1:创建和管理虚拟机

    Hyper-V是微软的管理虚拟机(Virtual Machine)的服务,在安装Hyper-V功能之后,系统自动安装可视化的虚拟机管理工具:Hyper-V Manager.在同一台物理机上,能够使用H ...

  6. 005.nginx配置文件

    1.替换nginx主配置文件 通过前面的配置,LNMP的环境已经搭建完成,现在我们替换nginx配置文件: [root@huh ~]# cd /usr/local/nginx/conf/[root@h ...

  7. linux 用户创建、管理、权限分配

    (1)su与sudo su:通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证: sudo: sudo扮 ...

  8. 利用Delphi的File Of Type创建并管理属于你自己的数据库

    http://www.360doc.com/content/16/1128/19/28222077_610249962.shtml 利用Delphi的File Of Type创建并管理属于你自己的数据 ...

  9. 了解linux下RAID(磁盘阵列)创建和管理

    现在的操作系统,不论是windows 还是linux都具有raid的功能,RAID 分为硬件 RAID 和软件 RAID, 硬件 RAID 是通过 RAID 卡来实现的,软件RAID是通过软件实现的, ...

  10. 【Nginx笔记】nginx配置文件具体解释

    本文主要对nginx的配置做重点说明,关于nginx的其他基本概念.建议參考官网描写叙述.这里推荐Nginx Beginner's Guide这篇文档.对刚開始学习的人高速认识nginx非常有帮助. ...

随机推荐

  1. 【学习笔记】Vins-Mono论文阅读笔记(二)

    估计器初始化简述 单目紧耦合VIO是一个高度非线性的系统,需要在一开始就进行准确的初始化估计.通过将IMU预积分与纯视觉结构进行松耦合对齐,我们得到了必要的初始值. 理解:这里初始化是指通过之前imu ...

  2. MinIO客户端快速入门指南

    官方文档地址:http://docs.minio.org.cn/docs/master/minio-client-quickstart-guide MinIO Client (mc)为ls,cat,c ...

  3. 生产环境中使用Kibana

    在 Kibana 中使用 X-Pack 使用 X-Pack 安全模块 控制用户通过 Kibana 可以访问哪些 Elasticsearch 数据. 当安装 X-Pack 时,Kibana 用户必须登陆 ...

  4. docker相关总结

    Docker 的相关使用记录 一.安装docker linux环境使用yum命令安装docker 第一步:确保自己的虚拟机没有安装过docker,如果安装过的需要将原先的docker进行卸载,命令如下 ...

  5. 1_requests基础用法

    requests模块的基本使用 什么是requests模块? Python中封装好的一个基于网络请求的模块 requests模块的作用? 用来模拟浏览器发请求 requests模块的环境安装: pip ...

  6. (Bug修复)C#爬虫,让你不再觉得神秘

    Bug修复 https://github.com/ZhangQueque/quewaner.Crawler/issues/1 修复加载Https网址中午乱码,导致Node解析失败的问题 1.使用第三方 ...

  7. Pjax 下动态加载插件方案

    在纯静态网站里,有时候会动态更新某个区域往会选择 Pjax(swup.barba.js)去处理,他们都是使用 ajax 和 pushState 通过真正的永久链接,页面标题和后退按钮提供快速浏览体验. ...

  8. Java程序设计(一)作业

    题目1:输入圆的半径,计算圆的面积,然后把面积的值输出.(注意所使用的数据类型). package test; import java.util.Scanner; public class test1 ...

  9. JAVA员工名字 年龄 工资 工种

    如题: 下面是我个人的写法 输出部分使用了 格式化输出 有兴趣的朋友可以了解一下: 解决的思路大致为: 创建一个对象数组--> 数组下标为0的数组中张三这个变量对应 String name; 2 ...

  10. Vue学习之---浏览器本地存储(8/17)

    博客园(纯干货):https://www.cnblogs.com/zheng-yuzhu/ 文章目录 1.基础知识 2.代码实例(localStorage.html) 3.测试效果 4.代码实例(se ...