3-nginx.conf参数配置
–#定义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参数配置的更多相关文章
- Nginx.conf参数配置详解
Nginx的配置文件nginx.conf配置详解如下: user nginx nginx; #Nginx用户及组:用户 组.window下不指定 worker_processes 8; #工作进程:数 ...
- Nginx配置文件(nginx.conf)配置详解(2)
Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ...
- Nginx配置文件(nginx.conf)配置详解
Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组.window下不指定 worker_processes 8; 工作进程:数目 ...
- Nginx 1.10.1 版本nginx.conf优化配置及详细注释
Nginx 1.10.1 的nginx.conf文件,是调优后的,可以拿来用,有一些设置无效,我备注上了,不知道是不是版本的问题,回头查一下再更正. #普通配置 #==性能配置 #运行用户 user ...
- Nginx配置文件(nginx.conf)配置详解[转]
转自:http://blog.csdn.net/tjcyjd/article/details/50695922 重新学习,发觉这篇文章写得很详细就摘录了! Nginx的配置文件nginx.conf配置 ...
- nginx.conf中配置laravel框架站点
nginx.conf配置如下: user nginx nginx;worker_processes 4; error_log logs/error.log error; pid logs/nginx. ...
- 虚拟主机ip配置,nginx.conf文件配置及日志文件切割
今天粗略整理了一下虚拟主机配置,nginx.conf文件的配置,及日志文件的切割,记录如下: nginx虚拟主机配置:1.IP地址配置,2.绑定ip地址和虚拟主机详情:1.ip地址的配置:ifconf ...
- Nginx配置文件(nginx.conf)配置具体解释
欢迎扫码增加Java高知群交流 Nginx的配置文件nginx.conf配置具体解释例如以下: user nginx nginx ; Nginx用户及组:用户 组. window下不指定 wo ...
- Nginx conf基本配置
#定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debu ...
随机推荐
- 网页程序 vs 桌面程序
网页程序 vs 桌面程序 阅读: 评论: 作者:Rybby 日期: 来源:rybby.com 所谓的网页程序就是指以网页作为程序的操作界面,通过脚本语言“javascript”或其它客户端语言 ...
- follow me
IM InfoSphere Information Server for Data Integration Fundamentals Bootcamp 7月15日 5 北京 IM InfoSphere ...
- 安装及使用Eclipse Maven插件的经验
Eclipse Maven插件的站点目前已经迁移到了Eclipse主站上:http://eclipse.org/m2e/ 其安装方法也非常简单,通过Eclipse访问下面的URL:http://dow ...
- asp.net mvc 在JS中跳转到其它controller/action
平时在ASP.NET 中经常这样写, $('#loginOut').click(function() { $.messager.confirm('系统提示', '您确定要退出本次登 ...
- SQL Server 维护计划(数据库备份)
公司的项目都需要定期备份,程序备份关掉iis站点复制文件就可以了,难受的地方就是数据库的备份了.服务器上装的大都是英文版,一看见英文,操作都变得小心翼翼起来,生怕哪里搞错,第二天就要被安排写辞职申请了 ...
- 深入理解Aspnet Core之Identity(4)
主题 之前简单介绍了Asp.net core 的初步的使用,本篇我打算给大家介绍一下Identity的架构,让大家对Identity有一个总体的理解和认识. 简介 博客原文欢迎访问我的博客网站,地址是 ...
- VS未能正确加载 ”Microsoft.VisualStudio.Editor.Implementation.EditorPackate“包错误解决方法
很久没用VS了,打开后出现未能正确加载 ”Microsoft.VisualStudio.Editor.Implementation.EditorPackate“包的错误,经过一番上网查阅错误得以解决. ...
- 【cocos2d-x 手游研发----研发思路及感想】
我半年前进入了目前的这家做教育行业的公司(在此之前一直从事原生态开发手游的迷茫之路),学习是一件很快乐的事情,来到这家公司我有了很多时间去学习,不管是公司业务,还是其他技术相关的.于是开始 ...
- TensorFlow从1到2(十)带注意力机制的神经网络机器翻译
基本概念 机器翻译和语音识别是最早开展的两项人工智能研究.今天也取得了最显著的商业成果. 早先的机器翻译实际脱胎于电子词典,能力更擅长于词或者短语的翻译.那时候的翻译通常会将一句话打断为一系列的片段, ...
- jzoj5879. 【NOIP2018提高组模拟9.22】电路图 B
tj:一道好題 看區間操作可以想到線段樹 並聯操作公式:a1∗a2/(a1+a2)a1*a2/(a1+a2)a1∗a2/(a1+a2) 串聯操作公式:a1+a2a1+a2a1+a2 我們發現,一個區間 ...