700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Nginx安装 目录结构与配置文件详解

Nginx安装 目录结构与配置文件详解

时间:2020-04-27 22:09:14

相关推荐

Nginx安装 目录结构与配置文件详解

1.Nginx简介

Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用。 其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。

a)为什么Nginx的总体性能比Apache高?

Nginx使用最新的epoll(Linux2.6内核)和kqueue(freebsd)网络I/O模型,而Apache使用的是传统的select模型,目前Linux下能够承受并发访问的Squuid,Memcached都是采用的是epoll网络I/O模型。

b)那么如何正确的选择web服务器呢?

静态业务:高并发,采用Nginx或者lighttpd

动态业务:采用Nginx或Apache均可

既有动态业务也有静态业务:Nginx或Apache均可,不要多选要单选

动态业务可有前段代理(haproxy),根据页面元素的类型,向后转发相应的服务器进行处理。

说明:Nginx做web(Apache,lighttpd)反向代理(haproxy,lvs,nat)缓存服务器(squid)

c)windows浏览器访问报错处理解决方法:

1)ping 跟ip 物理通不通

2)telnet ip :端口 浏览器到web服务通不通

3)服务器本地curl ip web服务开没开

4)查看错误日志如:cat /application/nginx/error_log

Pcre全称(Perl Compatible Regular Expressions),中文perl兼容正则表达式,官方站点为,安装pcre库是为了使Nginx支持HTTP Rewrite模块,安装如下:

1)查看当前Linux系统环境,命令如下:

[root@www ~]# cat /etc/redhat-releaseCentOS release 6.6(Final)[root@www ~]# uname -r 2.6.32-504.el6.x86_64[root@www ~]# uname -mx86_64#<==64位系统

2)采用yum安装方式安装pcre,命令如下:

[root@www ~]# yum install pcre pcre-devel -y[root@www ~]# rpm -qa pcre pcre-devel

3)yum安装操作后检查安装结果,命令如下:(pcre-7.8-6.el6.x86_64提示:yum安装的pcre版本有些低,不过一般情况不影响使用)

[root@www ~]# rpm -qa pcre pcre-develpcre-devel-7.8-6.el6.x86_64

4)编译安装pcre

wget /projects/pcre/files/pcre/7.80/pcre-7.80.tar.gztar zxf pcre-7.80.tar.gzcd pcre-7.80./configuremake && make installcd ../

2.安装Nginx

Nginx的英文官方网站是/,在这里可以查看Nginx的各个软件版本信息。Nginx软件有三种版本:稳定版、开发版和历史稳定版

1.检查并安装Nginx基础依赖包pcre-devel、openssl-devel操作命令如下:

[root@www ~]# rpm -qa pcre-devel pcrepcre-devel-7.8-6.el6.x86_64 #<==pcre的devel包已经安装!pcre-7.8-6.el6.x86_64 #<==pcre包已经安装![root@www ~]# rpm -qa openssl-devel opensslopenssl-1.0.1e-30.el6.x86_64 #<==这里没有opensll“devel”字符串的包

2.安装openssl-devel,安装openssl-devel的命令及检查命令如下:

[root@www ~]# yum install -y openssl openssl-devel[root@www ~]# rpm -qa openssl openssl-developenssl-devel-1.0.1e-30.el6.8.x86_64openssl-1.0.1e-30.el6.8.x86_64

3.开始安装Nginx

wget -q http:///download/nginx-1.6.3.tar.gz#下载软件包,进入http:///download/ 复制对应版本的链接地址。提示,如果发现Nginx软件下载地址已不可用,可能版本已更新,可去官方地址http://下载。

4.安装的操作过程演示

[root@www ~]# mkdir -p /home/tools[root@www ~]# cd /home/tools[root@www tools]# wget -q http:///download/nginx-1.6.3.tar.gz[root@www tools]# ls -l nginx-1.6.3.tar.gz -rw-r--r--1 root root 804164 11月 23 15:26 nginx-1.6.3.tar.gz[root@www tools]# useradd nginx -s /sbin/nologin -M[root@www tools]# tar xf nginx-1.6.3.tar.gz [root@www tools]# cd nginx-1.6.3[root@www nginx-1.6.3]#./configure --user=nginx --group=nginx --prefix=/application/nginx --with-http_stub_status_module --with-http_ssl_module[root@www nginx-1.6.3]# make[root@www nginx-1.6.3]# make install[root@www nginx-1.6.3]# ln -s /application/nginx-1.6.3 /application/nginx[root@www nginx-1.6.3]# ls -l /application/nginx/总用量 16drwxr-xr-x. 2 root root 4096 7月 20 11:19 confdrwxr-xr-x. 2 root root 4096 7月 20 11:19 htmldrwxr-xr-x. 2 root root 4096 7月 20 11:19 logsdrwxr-xr-x. 2 root root 4096 7月 20 11:19 sbin

安装过程出现如下错误,执行命令:

yum install openssl openssl-devel-y

出现的错误信息如下:

./configure: error: SSL modules require the OpenSSL library.You can either do not enable the modules,or install the OpenSSL libraryinto the system,or build the OpenSSL library statically from the sourcewith nginx by using --with-openssl=<path> option.

3.启动并检查安装结果

1- 启动前检查配置文件语法,执行命令

[root@www tools]# /application/nginx/sbin/nginx -tnginx: the configuration file /application/nginx-1.6.3/conf/nginx.conf syntax is oknginx: configuration file /application/nginx-1.6.3/conf/nginx.conf test is successful

2-启冬Nginx服务,执行命令

/application/nginx/sbin/nginx

3-查看Nginx服务对应的端口是否启动

方法一; lsof -i :80方法二; netstat -lnt|grep 80

4.检查Nginx启动实际效果

在浏览器输入 http://10.0.0.8 (10.0.0.8wei an安装Nginx服务器的IP地址)

在Linux 用wget命令检测wget 本机的连接的IP地址

curl命令检测 curl本机连接的ip地址()

4.Nginx软件功能模块说明

1)Nginx核心功能模块(Coer functionality),主要负责Nginx的全局应用,针对主配置文件Main区块和Events区块,/en/docs/ngx_core_module.html(更多查看)

2)标准的http功能模块集合,/en/docs(可以查看更多的功能模块)

企业应用场景功能模块汇总

5. Nginx目录结构

执行命令 tree /application/nginx ;如果tree命令找不到就执行 yum install tree -y安装

1 [root@www ~]# tree /application/nginx/ 2 /application/nginx/ 3 |-- client_body_temp 4 |-- conf#这是Nginx所有配置文件的目录,极其重要 5 | |-- fastcgi.conf#fastcgi相关参数的配置文件 6 | |-- fastcgi.conf.default #fastcgi.conf的原始备份 7 | |-- fastcgi_params#fastcgi的参数文件 8 | |-- fastcgi_params.default 9 | |-- koi-utf10 | |-- koi-win11 | |-- mime.types#媒体类型,12 | |-- mime.types.default13 | |-- nginx.conf#这是Nginx默认的主配置文件14 | |-- nginx.conf.default15 | |-- scgi_params#scgi相关参数文件,一般用不到16 | |-- scgi_params.default17 | |-- uwsgi_params #uwsgi相关参数文件,一般用不到18 | |-- uwsgi_params.default19 | `-- win-utf20 |-- fastcgi_temp#fastcgi临时数据目录21 |-- html#这是编译安装时Nginx的默认站点目录,类似22 Apache的默认站点htdocs目录23 | |--50x.html#错误页面优雅替代显示文件,例如:出现502错误时会调用此页面24#error_page 500502503504 /50x.html;25 | `-- index.html #默认的首页文件,首页文件名字是在nginx.conf中事先定义好的。26 |-- logs#这是Nginx默认的日志路径,包括错误日志及访问日志27 | |-- access.log#这是Nginx的默认访问日志文件,使用tail -f access.log,可以实时观看网站用户访问情况信息28 | |-- error.log#这是Nginx的错误日志文件,如果Nginx出现启动故障等问题,一定要看看这个错误日志29 | `-- nginx.pid#Nginx的pid文件,Nginx进程启动后,会把所有进程的ID号写到此文件30 |-- proxy_temp #临时目录31 |-- sbin#这是Nginx命令的目录,如Nginx的启动命令nginx32 | `-- nginx#Nginx的启动命令nginx33 |-- scgi_temp#临时目录34 `-- uwsgi_temp#临时目录35 9 directories,21 files

6)Nginx主配置文件nginx.conf

1.Nginx主配置文件nginx.conf是一个纯文本类型的文件(其他配置文件也是如此)Nginx整个配置文件nginx.conf主题框架:

2.查看Nginx配置文件

1 [root@www conf]# egrep -v "#|^$" nginx.conf.default←去掉包含#号和空行的内容 2 worker_processes 1;← worker进程的数量 3 events {← 事件区块开始 4worker_connections 1024; ←每个worker进程支持的最大连接数 5 }←事件区块结束 6 http { ← HTTP区块开始 7include mime.types; ← Nginx支持的媒体类型库文件 8default_type application/octet-stream;← 默认的媒体类型 9sendfile on; ←开启高效传输模式10keepalive_timeout 65; ←连接超时11server { ←第一个Server区块开始,表示一个独立的虚拟主机站点12 listen 80;← 提供服务的端口,默认8013 server_name localhost; ←提供服务的域名主机名14 location / { ←第一个location区块开始15 root html; ←站点的根目录,相当于Nginx的安装目录16 index index.html index.htm;← 默认的首页文件,多个用空格分开17 }←第一个location区块结果18 error_page 500502503504 /50x.html;← 出现对应的http状态码时,使用50x.html回应客户19 location = /50x.html {←location区块开始,访问50x.html20 root html;← 指定对应的站点目录为html21 }22}

Nginx配置文件

1 user nginx nginx; #定义Nginx运行的用户和用户组 2 worker_processes 1; #nginx进程数,建议设置为等于CPU总核心数。 3 error_log /var/log/nginx/error.log info; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ] 4 pid /var/run/nginx.pid; #进程文件 5 worker_rlimit_nofile 1024; #一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以#建议与ulimit -n的值保持一致

6 7 events 8 { 9 use epoll; #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,

如果跑在FreeBS#D上面,就用kqueue模型。 10 11 worker_connections 65535; #单个进程最大连接数(最大连接数=连接数*进程数) 12 } 13 14 15 16 http #HTTP区块开始 17 { 18 include mime.types; #Nginx支持的媒体类型库文件 19 default_type application/octet-stream; #默认媒体类型 20 #charset utf-8; #默认编码 21 server_names_hash_bucket_size 128; #服务器名字的hash表大小 22 client_header_buffer_size 32k;#上传文件大小限制 23 large_client_header_buffers 4 64k;#设定请求缓 24 client_max_body_size 8m; #设定请求缓 25 sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为o#ff,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。

26 autoindex on;#开启目录列表访问,合适下载服务器,默认关闭。 27 tcp_nopush on; #防止网络阻塞 28 tcp_nodelay on; #防止网络阻塞 29 keepalive_timeout 120;#连接超时,单位是秒 30 31 #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。 32 fastcgi_connect_timeout 300; 33 fastcgi_send_timeout 300; 34 fastcgi_read_timeout 300; 35 fastcgi_buffer_size 64k; 36 fastcgi_buffers 4 64k; 37 fastcgi_busy_buffers_size 128k; 38 fastcgi_temp_file_write_size 128k; 39 40 #gzip模块设置 41 gzip on; #开启gzip压缩输出 42 gzip_min_length 1k;#最小压缩文件大小 43 gzip_buffers 4 16k;#压缩缓冲区 44 gzip_http_version 1.0;#压缩版本(默认1.1,前端如果是squid2.5请使用1.0) 45 gzip_comp_level 2; #压缩等级 46 gzip_types text/x-javascript text/css application/xml;#压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。 47 gzip_vary on; 48 #limit_zone crawler $binary_remote_addr 10m; #开启限制IP连接数的时候需要使用 49 50 51 52 #虚拟主机的配置 53 server 54 { 55 56 listen 80; #监听端口 57 58 server_name localhost; #提供服务的域名主机名 59 location / {#第一个location区块开始 60 root html; #站点的根目录,相当于Nginx的安装目录 61 index index.html index.htm index.jsp; #默认的首页文件,多个用空格分开 62 } #第一个location区块结果 63 64 65 66 #图片缓存时间设置 67 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 68 { 69 expires 10d; 70 } 71 72 73 #JS和CSS缓存时间设置 74 location ~ .*\.(js|css)?$ 75 { 76 expires 1h; 77 } 78 79 80 #日志格式设定 81 log_format access '$remote_addr - $remote_user [$time_local] "$request" ' 82 '$status $body_bytes_sent "$http_referer" ' 83 '"$http_user_agent" $http_x_forwarded_for'; 84 85 access_log /var/log/nginx/access_$(data+%F -d -1day).log access;#定义本虚拟主机的访问日志 86 87 88 89 location / { #对 "/" 启用反向代理 90 proxy_pass http://127.0.0.1:88; 91 proxy_redirect off; 92 proxy_set_header X-Real-IP $remote_addr; #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP 93 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 94 95 #以下是一些反向代理的配置,可选 96 proxy_set_header Host $host; 97 client_max_body_size 10m;#允许客户端请求的最大单文件字节数 98 client_body_buffer_size 128k;#缓冲区代理缓冲用户端请求的最大字节数, 99 proxy_connect_timeout 90;#nginx跟后端服务器连接超时时间(代理连接超时)100 proxy_send_timeout 90;#后端服务器数据回传时间(代理发送超时)101 proxy_read_timeout 90;#连接成功后,后端服务器响应时间(代理接收超时)102 proxy_buffer_size 4k;#设置代理服务器(nginx)保存用户头信息的缓冲区大小103 proxy_buffers 4 32k;#proxy_buffers缓冲区,网页平均在32k以下的设置104 proxy_busy_buffers_size 64k;#高负荷下缓冲大小(proxy_buffers*2)105 proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传106 107 }108 109 #设定查看Nginx状态的地址110 location /NginxStatus {111 stub_status on;112 access_log on;113 auth_basic "NginxStatus";114 auth_basic_user_file conf/htpasswd; #htpasswd文件的内容可以用apache提供的htpasswd工具来产生。115 116 }117 118 #本地动静分离反向代理配置119 #所有jsp的页面均交由tomcat或resin处理120 location ~ .(jsp|jspx|do)?$ {121 proxy_set_header Host $host;122 proxy_set_header X-Real-IP $remote_addr;123 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;124 proxy_pass http://127.0.0.1:8080;125 }126 127 128 #所有静态文件由nginx直接读取不经过tomcat或resin129 location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$130 { expires 15d; }131 location ~ .*.(js|css)?$132 { expires 1h; }133 }134 }

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。