Nginx配置

简介:

1、环境

Centos6

软件包安装:

[root@test /]#yum -y install gcc openssl-devel zlib-devel pcre-devel

说明:pcre库是为了使Nginx支持HTTP Rewrite模块

2、开始安装Nginx

  默认情况下,经过编译安装的Nginx 包含了大部分可用模块。可以通过“./configure --help”选项设置各个模块的使用情况,对不需要的http_ssi模块,通过“--without-http_ssi_module”方式关闭。如果需要“http_perl”模块,通过“--with-http_perl_module”方式进行安装。

[root@test /]# cd /soft 
[root@test soft]# ls 
nginx-1.2.7.tar.gz 
[root@test soft]# tar -xzvf nginx-1.2.7.tar.gz

[root@test soft]# ls 
nginx-1.2.7  nginx-1.2.7.tar.gz 
[root@test soft]# ln -s nginx-1.2.7 nginx 
[root@test soft]# ls 
nginx  nginx-1.2.7  nginx-1.2.7.tar.gz 
[root@test soft]# cd nginx 
[root@test nginx]# ls 
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src 
[root@test nginx]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_gzip_static_module

[root@test nginx]# make

[root@test nginx]# make install

说明:在configure选项中,“--weith-http_stub_status_module”用来启用Nginx的NginxStatus功能,以监控Nginx的当前状态。

3、Nginx配置文件的结构

  Nginx 的配置文件是一个纯文本文件,位于Nginx 安装目录conf 目录下,整个配置文件是以block 的形式组织的。每个block 一般以一个大括号“{}”来表示,block 
可以分为几个层次,整个配置文件中main 指令位于最高层,在main 层下面可以有Events、HTTP 等层级,而HTTP 层中又包含有server 层,即server block,server block 又可分为location 层,并且一个server block 中可以包含多个location block。

nginx

4、配置与调试Nginx

    Nginx的配置路径为/usr/local/nginx/conf,其中nginx.conf为Nginx的主配置文件。

    Nginx的配置文件主要分为4部分:main(全局设置)、server(主机设置)、upstream(负载均衡服务器设置)和location(URL匹配特定位置的设置)。main部分设置的指令将影响其它所有设置;server部分的指令主要用于指定主机和端口;upstream指令主要用于负载均衡,设置一系列的后端服务器;location部分用于匹配网页位置。

    关系:server继承main,location继承server,upstream既不会集成其它设置也不会被继承。

    在这4 个部分当中,每个部分都包含若干指令,这些指令主要包含Nginx 的主模块指令、事件模块指令、HTTP核心模块指令。同时每个部分还可以使用其他HTTP 模块 指令,例如Http SSL 模块、Http Gzip Static 模块和Http Addition 模块等。

    通过配置Nginx实例,介绍nginx.conf指令的含义。

    1、Nginx的全局配置

     Nginx的全局属性配置:

      user  nobody  nobody;

#主模块指令,指定Nginx Worker进程运行用户以及用户组,默认nobody运行

      worker_processes   1;

#主模块指令,指定Nginx开启的进程数

      error_log   logs/error.log   notice;

#主模块指令,定义全局错误日志文件。日志输出级别有debug、info、notice、warn、error、crit,其中,debug输出日志最详细,而crit输出日志最少

      pid            logs/nginx.pid;

#主模块指令,指定进程id的存储文件位置

      worker_rlimit_nofile     65536;

#绑定worker进程和CPU

       events{

#events指令用来设定Nginx的工作模式及连接数上限

                   use  epoll;

#use是个事件模块指令,指定Nginx的工作模式。Nginx支持工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll是标准的工作模式,kqueue和epoll是高效的工作模式,epoll用在Linux平台,kqueue用在BSD平台。Linux平台,epoll工作模式是首选。

                   worker_connections    65536;

#worker是个事件模块指令,定义Nginx每个进程的最大连接数,默认是1024。最大客户端连接数由worker_processes和worker_connections决定,即max_client=worker_processes*worker_connections,作为反向代理时:max_client=worker_processes*worker_connections/4。进程最大连接数受Linux系统进程的最大打开文件数限制,执行操作系统命令“ulimit -n 65536”后worker_connections设置才能生效

       }

       2、HTTP服务器配置

      Nginx对HTTP服务器的相关属性的配置:

     http{

     include    mime.types;

#主模块命令,实现对配置文件所包含的文件设定,可以减少主配置文件的复杂度。

     default_type   application/octet-stream;

#属于HTTP核心模块指令,默认类型为二进制流

     log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' 
                                 '$status $body_bytes_sent "$http_referer" ' 
                                 ' "$http_user_agent" "$http_x_forwarded_for" ';

    access_log logs/access.log main;

#Nginx的HttpLog模块指令,指定Nginx日志的输出格式。main为日志输出格式的名称,可以在access_log指令中引用

     sendfiles       on;

#用于开启高效文件传输模式

     tcp_nopush   on;

#用来防止网络阻塞

     keepalive_timeout   65;

#设置客户端请求头读取超时时间

     }

     3、HttpGzip模块配置

     Nginx的HttpGzip模块。这个模块支持在线实时压缩输出数据流。查看是否安装此模块:

     [root@test conf]# /usr/local/nginx/sbin/nginx -V

     gzip  on;

#设置开启或者关闭gzip模块,“gzip on”表示开启gzip压缩,实时压缩输出数据流

    4、server虚拟主机配置

     虚拟主机配置。

    server{

    listen      80;

#指定虚拟主机的服务器端口

    server_name    192.168.1.119   test;

#指定IP地址或者域名,多个域名之间用空格分开

    charset    gb2312;

#设置网页的默认编码格式

     access_log    logs/test.access.log   main;

#指定此虚拟主机的访问日志存放路径。main用于指定访问日志的输出格式

          location / {

                        root web;

#root用于指定虚拟主机的网页根目录,目录可以是相对路径,也可以是绝对路径

                        index index.html index.htm;

#index用于设定访问的默认首页地址

          }

          error_page  404   /404.html;

#定制各种错误信息的返回页面

          error_page 500 502 503 504   /50x.html;

          location = /50x.html {

                     root  html;

          }

     }

     5、URL匹配配置

     URL地址匹配是Nginx配置中最灵活的部分。location支持正则表达式匹配,也支持条件匹配,可以通过location指令实现Nginx对动、静态网页的过滤处理。

     location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {

                           root html;      

                           expires  30d;

                   }

#这段是通过location指令对网页URL进行分析处理,所有扩展名.gif、.jpg、.jpeg 、.png、 .bmp 、.swf的静态文件都交给Nginx处理,而expires指定静态文件的过期时间

      location ~ ^/(upload|html)/ {

                          root web;

                          expires 30d;      

                     }

#这段设置是将upload和html下的所有文件都交给Nginx处理,upload和html目录包含在web目录中

      location ~ .*.jsp$ {

                                index index.jsp;

                                proxy_pass http://localhost:8080;

                    }

#这段设置中,location是对此虚拟主机下动态网页的过滤处理,将所有以.jsp为后缀的文件都交给本机的8080端口处理

5、Nginx启动、关闭和重启

     1、Nginx基本信息检查

      检查Nginx配置文件的正确性

      /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

#“-t”参数用于检查配置文件是否正确,但不执行,“-c”参数用于指定配置文件路径

     2、显示Nginx的版本以及编译信息

     /usr/local/nginx/sbin/nginx -v

#显示安装Nginx的版本信息

    /usr/local/nginx/sbin/nginx -V

#显示相关编译信息

     3、重新加载配置文件

/usr/local/nginx/sbin/nginx -s reload










本文转自 Art_Hero 51CTO博客,原文链接:http://blog.51cto.com/curran/1173391,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
18天前
|
运维 前端开发 应用服务中间件
LNMP详解(八)——Nginx动静分离实战配置
LNMP详解(八)——Nginx动静分离实战配置
23 0
|
29天前
|
应用服务中间件 nginx
Nginx中如何配置中文域名?
Nginx中如何配置中文域名?
39 0
|
2月前
|
负载均衡 Ubuntu 应用服务中间件
|
2月前
|
前端开发 应用服务中间件 Linux
nginx解决springcloud前后端跨域问题,同时配置ssl
nginx解决springcloud前后端跨域问题,同时配置ssl
|
17天前
|
前端开发 应用服务中间件 nginx
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
Nginx配置详解Docker部署Nginx使用Nginx部署vue前端项目
78 0
|
1月前
|
PHP
百度虚拟机 bcloud_nginx_user.conf配置
百度虚拟机 bcloud_nginx_user.conf配置
22 0
|
11天前
|
应用服务中间件 nginx
nginx进行反向代理的配置
在Nginx中设置反向代理的步骤:编辑`/etc/nginx/nginx.conf`,在http段加入配置,创建一个监听80端口、服务器名为example.com的虚拟主机。通过`location /`将请求代理到本地3000端口,并设置代理头。保存配置后,使用`sudo nginx -s reload`重载服务。完成配置,通过example.com访问代理服务器。
18 0
|
12天前
|
应用服务中间件 网络安全 nginx
nginx配置https访问
nginx配置https访问
25 0
|
21天前
|
应用服务中间件 nginx
nginx配置访问qicaitun.com强制跳转www.qicaitun.com
nginx配置访问qicaitun.com强制跳转www.qicaitun.com
9 0
|
21天前
|
应用服务中间件 Linux PHP
Linux下安装php环境并且配置Nginx支持php-fpm模块
Linux下安装php环境并且配置Nginx支持php-fpm模块
18 0