nginx配置学习文章

时间:16-07-29 来源: 作者: 点击:

partOne 自我释义部分 我的是阿里云的ubuntu

*******实际上感觉这里是基本配置,很用不到*********
#定义其用户或用户组
user www-data;
#nginx的进程数,应当为cpu总核数,每个cpu处理一个线程
worker_processes 4;
#进程文件的位置
pid /run/nginx.pid;

#工作模式(有很多,这里没有展现)和链接上限,由于是多种配置, 所以啊,大括号表示多重属性
events{
#单个进程的最大连接处(=进程数*连接数)
worker_connections 2323;
#工作模式 还有很多其他的
use epoll;
}

#http服务器
http{
##
#Basic setting
##

#开启高效文件传输模式,普通应用为on(nginx调用sendfile函数来传输文件),若是负载大的或者是图片显示不正常,设为off
sendfile on;
#防止网络阻塞
tcp_nopush on;
#防止网络延时
tcp_nodelay on;
#设置连接的超时时间60s
keepalive_timeout 60;
//限制允许的mime类型,图片啊如image/jpeg之类的,要检索验证时候的一种限制,值越大,查找越快,但是耗内存,用的不太多
types_hash_max_size 2048;
#header或者提示404中隐藏nginx的相关信息,以自我保全(如此便是隐藏了)
server_tokens off;
#和配置多个虚拟机有关,报错时候加这个
server_names_hash_bucket_size 64;
#标记文件类型和文件名的映射表的存储位置
include /etc/nginx/mime.types
#默认文件类型(八进制的更新文件)
default_type application/octet-stream;
#设置客户可上传的最大尺寸
client_max_body_size 5m;

##
#logging setting
##

#定义本虚拟机的访问日志
access_log /var/log/nginx/access.log;
#全局错误日志的定义
error_log /var/log/nginx/error.log

##
#Gzip setting
##

#开启gzip压缩
gzip on;
#默认压缩类型
gzip_vary on;
#压缩版本
gzip_http_version 1.0;
#最小压缩文件大小
gzip_min_length 1k;

##
#fastcgi是为了改善网站性能
##
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;


##!本来啊在配置当中,也应该是有server的,但是我的实际的ubuntu用了个技巧,将文件引入

##
#Virtual Host configs
##
#所以,只需要在对应的目录下写虚拟机配置文件就可以引入了
include /etc/nginx/conf.d/*.conf
include /etc/nginx/sites-enabled/*;
}

*******************常用的虚拟机配置*************
实际上,虚拟机的配置,如上,我知道的写在sites-enabled/下,默认的是default,实际我觉得其他名字肯定也是阔以的!
#每个虚拟器用一个server
server
{
#坚挺的端口 若是host文件中没有指明,就来到这儿
listen 80 default_server;
#定义此站点的默认服务器的根目录
root /usr/share/nginx/html;
#首页索引文件的名字空格隔开
index index.php index.html index.htm;
#定义访问此战的域名为何?多个空格隔开,在互联网上的话,别人的当然不行,所以,要先申请域名,除非本地

server_name www.modle.com;

#这里是正则的规则,location的后面,也就是说,当url匹配到location后面的规则,就会走里面的法则,

#关于重写,我也发现了,我擦,他在内部直接include引入了!

#也就是说啊,nginx就是实实在在的是配置文件在支持着前进

#重写时候:看,下面引入了一个文件,实际就是up-rewrite.conf重写文件,只是配置写到里面去了,这样简单啊搞

#重写内容如下:

if (!-e $request_filename) { rewrite ^/(.*)$ /index.php$1 last; break; }

 

location / {
root F:/modle;
index index.html index.htm default.html default.htm index.php default.php app.php u.php;
include F:/modle/up-*.conf;
}
autoindex off;
include advanced_settings.conf;


location ~ ^.+\.php {
root F:/modle;
fastcgi_pass bakend;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi.conf;
}

}

parttwo 大神文章部分---->

之前的nginx配置是对nginx配置文件的具体含义进行讲解,不过对于nginx的新手可能一头雾水。

今天看到个文档不错,翻译过来分享给大家,可以让新手更详细地了解nginx配置,可以说是nginx配置入门必备。

Nginx是一个轻量级高性能的web服务器,它是为快速响应大量静态文件请求和高效利用系统资源而设计的。与apache使用面向进程或线程的方式处理请求不同,nginx使用异步事件驱动模型在负载下性能更突出。

虽然nginx能高效地服务静态文件,但也有人认为nginx处理动态内容并不理想。不像apache服务器,nginx没用使用内嵌解释器的方式来处理动态内容。相反,动态内容被丢给cgi,fastcgi或者像apache这样的web服务器,然后把处理结果返回给nginx,nginx在返给浏览器。这种方式就导致部署起来会更复杂一些。出于这些原因,使用和配置nginx可能会晦涩。nginx的配置感觉更复杂或者不直接。

 

本文的前提是你使用nginx安装来安装nginx,如果你使用其它方法或者系统自带包安装,那么你的配置文件的位置和下面讲的配置文件位置可能不同。

nginx的强大都是靠配置文件来实现,nginx就是一个二进制文件nginx读入一个配置文件nginx.conf(nginx.conf可能include包含若干子配置文件)来实现各种各样的功能。

 管理配置文件

nginx使用嵌套的花括号语法来定义选项。安装完成后nginx的主配置文件被放在/usr/local/nginx/nginx.conf。同时一个默认的备份配置文件存在/usr/local/nginx/nginx.conf.default。其它子配置文件同样有一个.default结尾的备份配置文件。.default的作用是当你修改配置文件错误的时候,你可以快速回到上一个好用的状态。建议大家经常对配置好的功能的配置文件做备份,可以以日期文件做结尾。比如你可以使用如下指令完成,修改日期为你所备份的日期。

cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20121224

每次修改完nginx.conf都要重新加载配置文件

/usr/loca/nginx/nginx -t kill -HUP `cat /usr/local/nginx/nginx.pid` 全局配置

声明:本文转载于网络,文章链接:http://www.nd9p.com/5310.html