–#定义Nginx运行的用户和用户组
–user www www;
–#nginx进程数,建议设置为等于CPU总核心数。
–worker_processes8;
–#全局错误日志定义类型,[ debug | info | notice | warn | error | crit]
–error_log/var/log/nginx/error.log info;
–#进程文件
–pid/var/run/nginx.pid;
–#一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit-n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit-n的值保持一致。
–worker_rlimit_nofile65535; #工作模式与连接数上限
events
{
#参考事件模型,use [ kqueue| rtsig| epoll| /dev/poll | select | poll ]; epoll模型是Linux .6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
use epoll;
#单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections  65535;
} event下的一些配置及其意义
–#单个后台worker process进程的最大并发链接数
–worker_connections1024;
–# 并发总数是worker_processes和worker_connections的乘积
–# 即max_clients= worker_processes* worker_connections
–# 在设置了反向代理的情况下,max_clients= worker_processes* worker_connections/ 为什么
–# 为什么上面反向代理要除以4,应该说是一个经验值
–# 根据以上条件,正常情况下的NginxServer可以应付的最大连接数为: * =
–# worker_connections值的设置跟物理内存大小有关
–# 因为并发受IO约束,max_clients的值须小于系统可以打开的最大文件数
–# 而系统可以打开的最大文件数和内存大小成正比,一般1GB内存的机器上可以打开的文件数大约是10万左右
–# 我们来看看360M内存的VPS可以打开的文件句柄数是多少:
–# $ cat /proc/sys/fs/file-max
–# 输出34336
–# < ,即并发连接总数小于系统可以打开的文件句柄总数,这样就在操作系统可以承受的范围之内
–# 所以,worker_connections的值需根据worker_processes进程数目和系统可以打开的最大文件总数进行适当地进行设置
–# 使得并发总数小于操作系统可以打开的最大文件数目
–# 其实质也就是根据主机的物理CPU和内存进行配置
–# 当然,理论上的并发总数可能会和实际有所偏差,因为主机还有其他的工作进程需要消耗系统资源。
–# ulimit-SHn65535 http下的一些配置及其意义
–#设定http服务器
–http
–{
–include mime.types; #文件扩展名与文件类型映射表
–default_type  application/octet-stream; #默认文件类型
–#charset utf-; #默认编码
–server_names_hash_bucket_size128; #服务器名字的hash表大小
–client_header_buffer_size32k; #上传文件大小限制
–large_client_header_buffers4 64k; #设定请求缓
–client_max_body_size8m; #设定请求缓
–sendfileon; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
–autoindexon; #开启目录列表访问,合适下载服务器,默认关闭。
–tcp_nopushon; #防止网络阻塞
–tcp_nodelayon; #防止网络阻塞
–keepalive_timeout120; #长连接超时时间,单位是秒 gzip的一些配置及其意义
–#gzip模块设置gzipon; #开启gzip压缩输出gzip_min_length1k; #最小压缩文件大小gzip_buffers4 16k; #压缩缓冲区gzip_http_version1.; #压缩版本(默认1.,前端如果是squid2.5请使用1.)gzip_comp_level2; #压缩等级gzip_typestext/plain application/x-javascripttext/cssapplication/xml;#压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。gzip_varyon;#limit_zonecrawler $binary_remote_addr10m; #开启限制IP连接数的时候需要使用 虚拟主机一些配置及其意义
–#虚拟主机的配置server{#监听端口listen ;#域名可以有多个,用空格隔开server_namewww.ha97.com ha97.com;index index.html index.htm index.jsp;root /data/www/ha97;location ~ .*\.(php|php5)?${fastcgi_pass127.0.0.:;fastcgi_indexindex.jsp;include fastcgi.conf;}

上面是配置的具体参数的含义, 下面详细讲解

1, 虚拟主机

server {
server_name:
location / {
}
}

虚拟主机, 可以将网络上的一个计算机分为多个虚拟主机, 并分别独立提供服务

和tomcat的区别是: tomcat配置多个工程统一服务, 而虚拟主机可以单独服务

2, 配置虚拟主机的方式

1), 基于ip进行虚拟

通过linux的虚拟ip绑定实现

#绑定虚拟ip
ifconfig eth0: 192.168.208.201 netmask 255.255.255.0
#删除虚拟ip
ifconfig eth0: down

然后在./conf/nginx.conf中配置

# 虚拟主机1
server {
listen ;
server_name 192.168.208.101; location / { root html;     # 根路径
index index.html index.htm;
}
#
error_page /50x.html;
location = /50x.html {
root html;
}
} # 虚拟主机2
server {
listen ;
server_name 192.168.208.201; location / {
root /usr/opt/nginx;
index index.html index.htm;
}
#
error_page /50x.html;
location = /50x.html {
root html;
}
}

2), 基于端口进行虚拟:

很简单, 改虚拟端口即可,

  servet_name相同,

  listener配置 IP:端口

3), 基于域名进行虚拟

# 虚拟主机1
server {
listen ;
server_name wenbronk.nginx-.com nginx-.com; location / {
root html;
index index.html index.htm;
}
#
error_page /50x.html;
location = /50x.html {
root html;
}
} # 虚拟主机2
server {
listen ;
server_name www.nginx-.com; location / {
root /usr/opt/nginx;
index index.html index.htm;
}
#
error_page /50x.html;
location = /50x.html {
root html;
}
}

3, location的映射规则:

- location [ = | ~ | ~* | ^~ ] uri{ ... }
= : 精确匹配
^~ :
~* : 匹配正则
–location URI {}:
  对当前路径及子路径下的所有对象都生效;
–location = URI {}: 注意URL最好为具体路径。
  精确匹配指定的路径,不包括子路径,因此,只对当前资源生效;
–location ~ URI {}:
–location ~* URI {}:
  模式匹配URI,此处的URI可使用正则表达式,~区分字符大小写,~*不区分字符大小写;
  匹配到为止, 后面不匹配了
–location ^~ URI {}: 
  不使用正则表达式 –优先级:= > ^~ > ~|~* > /|/dir/

4, 用户ip限制: (access模块)

在nginx.conf的server下的location中进行配置

# 虚拟主机1
server {
listen ;
server_name wenbronk.nginx-.com nginx-.com; location / {
# 配置允许规则, 执行第一条被匹配的, 所有匹配不到就禁止
deny 192.168.208.1;  # 禁止
allow 192.168.0.0/;  # 允许
deny all;
root html;
index index.html index.htm;
}
#
error_page /50x.html;
location = /50x.html {
root html;
}
}

注意: 本人在vm中安装的虚拟机, 屏蔽物理机访问linux, 需要deny的是vm的网关ip,而不是物理机的ip, 可通过查看nginx的日志来获取:

    tail -f /var/log/nginx/access.log

关于ip网段的配置规则可看: http://blog.csdn.net/senlin1202/article/details/50974115

5, 用户访问控制:

需要使用httpd模块, 使用apache发行包的htpasswd命令来创建配置文件(使用crypt() 进行加密)

yum -y install httpd

创建用户名和密码的方式为

htpasswd -b -c -m /usr/nginx-passwd wenbronk 123
-b: 直接输入密码
-c: 创建文件
-m MD5加密

然后在nginx.conf中进行配置

# 虚拟主机1
server {
listen ;
server_name wenbronk.nginx-.com nginx-.com; location / {
# 配置允许规则
allow 192.168.1.0/;
allow 192.168.0.0/;
deny all; # 配置用户访问规则
auth_basic "off" "提示信息, 没有字符串直接加off就是关闭";
auth_basic_user_file /usr/nginx-passwd;    # 制定上一步创建的加密文件 root html;
index index.html index.htm;
}
#
error_page /50x.html;
location = /50x.html {
root html;
}
}

密码使用crypt() 加密, 直接使用httpd的htpasswd加密即可

相对路径没搞明白, 配置了两次没对, 有谁搞懂了可以告诉我一声, 谢谢: wenbronk@163.com

6, nginx访问状态监控:

#没测试, 使用tengine的功能全些
–location /basic_status{
–stub_statuson;
–}

3-nginx.conf参数配置的更多相关文章

  1. Nginx.conf参数配置详解

    Nginx的配置文件nginx.conf配置详解如下: user nginx nginx; #Nginx用户及组:用户 组.window下不指定 worker_processes 8; #工作进程:数 ...

  2. Nginx配置文件(nginx.conf)配置详解(2)

    Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ...

  3. Nginx配置文件(nginx.conf)配置详解

    Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ...

  4. Nginx 1.10.1 版本nginx.conf优化配置及详细注释

    Nginx 1.10.1 的nginx.conf文件,是调优后的,可以拿来用,有一些设置无效,我备注上了,不知道是不是版本的问题,回头查一下再更正. #普通配置 #==性能配置 #运行用户 user ...

  5. Nginx配置文件(nginx.conf)配置详解[转]

    转自:http://blog.csdn.net/tjcyjd/article/details/50695922 重新学习,发觉这篇文章写得很详细就摘录了! Nginx的配置文件nginx.conf配置 ...

  6. nginx.conf中配置laravel框架站点

    nginx.conf配置如下: user nginx nginx;worker_processes 4; error_log logs/error.log error; pid logs/nginx. ...

  7. 虚拟主机ip配置,nginx.conf文件配置及日志文件切割

    今天粗略整理了一下虚拟主机配置,nginx.conf文件的配置,及日志文件的切割,记录如下: nginx虚拟主机配置:1.IP地址配置,2.绑定ip地址和虚拟主机详情:1.ip地址的配置:ifconf ...

  8. Nginx配置文件(nginx.conf)配置具体解释

    欢迎扫码增加Java高知群交流 Nginx的配置文件nginx.conf配置具体解释例如以下:   user nginx nginx ; Nginx用户及组:用户 组. window下不指定   wo ...

  9. Nginx conf基本配置

    #定义Nginx运行的用户和用户组 user www www;   #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8;   #全局错误日志定义类型,[ debu ...

随机推荐

  1. hdu 2048 神上帝以及老天爷

    题目 解题思路:      典型的错排题目      首先求出所有的拿错的情况,然后求出错排的所有情况,以前者除以后者就是百分比      现在求对应的所有都拿错的情况.容易知道,f(1)=0,f(2 ...

  2. Date日期操作

    获取年月日时分秒: package com.util; import java.text.DateFormat; import java.util.Calendar; import java.util ...

  3. TFS 2015 生成不输出任何结果

    这是一台用于测试的TFS 2015服务器,其中的数据是通过备份和还原,在使用应用层专用的方式配置出来的. 在配置完成代理服务器以后,运行生成,发现在获取代码之前就停止失败了,并且在生成过程中没有任何结 ...

  4. INNER JOIN与LEFT JOIN在SQL Server的性能

    我创建了INNER JOIN 9桌,反正需要很长的(超过五分钟).所以,我的民歌改变INNER JOIN来LEFT JOIN LEFT JOIN的性能较好,在首次尽管我所知道的.之后我变了,查询的速度 ...

  5. .Net core,EFCore 入门

    我在百度上搜了一下.net  core和efcore 入门案例.好多博客都是大概说了一下做法,对于小白而言还是一头雾水,我今天就抽出一点时间,写一个详细的入门小案例,就一张表没有什么业务可言.主要是操 ...

  6. 纸壳CMS可视化建站系统搭建多语言网站

    纸壳CMS是可视化建站系统,现已经从架构上支持多语言.但是多语言功能默认是没有开启的.您可以从设置中开启多语言,或者随时关闭它,您可以随时进行切换. 开启多语言 如果您没有在系统设置中看到多语言设置菜 ...

  7. T-SQL分页查询语句

    使用 ROW_NUMBER(),SQL Server版本要求2005及以上. SELECT * FROM ( SELECT *,ROW_NUMBER() OVER(ORDER BY UserID) A ...

  8. 点分治&&动态点分治学习笔记

    突然发现网上关于点分和动态点分的教程好像很少……蒟蒻开篇blog记录一下吧……因为这是个大傻逼,可能有很多地方写错,欢迎在下面提出 参考文献:https://www.cnblogs.com/LadyL ...

  9. 手把手教你从零搭建Python数据分析环境

    由于最近再做推荐系统的特征处理,需要借助一些工具来筛选特征.最初使用了R,R的安装很简单,而且API也很容易使用,直接就能出图.后来,发现很多人在python和R之间做选择,所以我也在两个工具间摇摆不 ...

  10. POST 400 (BAD REQUEST)

    遇到这种错,1,F12打开控制台,2,点击network,找到发送的请求. 3,点击请求,4,看右侧的 Header Preview Response 应该能找到原因. 就拿刚才来说,找了好几个小时原 ...