Nginxpcre部署及配置步骤.doc_第1页
Nginxpcre部署及配置步骤.doc_第2页
Nginxpcre部署及配置步骤.doc_第3页
Nginxpcre部署及配置步骤.doc_第4页
Nginxpcre部署及配置步骤.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安装在 Linux 下安装 Nginx 为了确保能在 Nginx 中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有 PCRE(Perl Compatible Regular Expressions)包。您可以到 ftp:/ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:# wget ftp:/ftp.csx.cam.ac.uk/pub/soft . cre/pcre-7.7.tar.gz# tar zxvf pcre-7.7.tar.gz# cd pcre-7.7# ./configure# make# make install 接下来安装 Nginx,Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把 Nginx 安装到 /opt/nginx 目录下的详细步骤:http:/sysoev.ru/nginx/nginx-0.7.61.tar.gz# wget http:/sysoev.ru/nginx/nginx-0.6.31.tar.gz# tar zxvf nginx-0.6.31.tar.gz# cd nginx-0.6.31# ./configure -with-http_stub_status_module -prefix=/opt/nginx# make# make install 其中参数 -with-http_stub_status_module 是为了启用 nginx 的 NginxStatus 功能,用来监控 Nginx 的当前状态。 安装成功后 /opt/nginx 目录下有四个子目录分别是:conf、html、logs、sbin 。其中 Nginx 的配置文件存放于conf/nginx.conf,Nginx 只有一个程序文件位于 sbin 目录下的 nginx 文件。确保系统的 80端口没被其他程序占用,运行 sbin/nginx 命令来启动 Nginx,打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx! 则表示 Nginx 已经安装并运行成功。 常用的 Nginx 参数和控制 程序运行参数 Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对 Nginx 进程本身进行控制的。 Nginx 的参数包括有如下几个: -c :使用指定的配置文件而不是 conf 目录下的 nginx.conf 。 -t:测试配置文件是否正确,在运行时需要重新加载配置的时候,此命令非常重要,用来检测所修改的配置文件是否有语法错误。 -v:显示 nginx 版本号。 -V:显示 nginx 的版本号以及编译环境信息以及编译时的参数。例如我们要测试某个配置文件是否书写正确,我们可以使用以下命令sbin/nginx t c conf/nginx2.conf 常规配置Nginx官方网站 的一个例子#!nginx # 使用的用户和组 user www www; # 指定工作衍生进程数 worker_processes 2; # 指定 pid 存放的路径 pid /var/run/nginx.pid; # debug | info | notice | warn | error | crit # 可以在下方直接使用 debug | info | notice | warn | error | crit 参数 error_log /var/log/nginx.error_log info; events # 允许的连接数 connections 2000; # use kqueue | rtsig | epoll | /dev/poll | select | poll ; # 具体内容查看 /事件模型 use kqueue; http include conf/mime.types; default_type application/octet-stream; log_format main $remote_addr - $remote_user $time_local $request $status $bytes_sent $http_referer $http_user_agent $gzip_ratio; log_format download $remote_addr - $remote_user $time_local $request $status $bytes_sent $http_referer $http_user_agent $http_range $sent_http_content_range; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; client_header_buffer_size 1k; large_client_header_buffers 4 4k; gzip on; gzip_min_length 1100; gzip_buffers 4 8k; gzip_types text/plain; output_buffers 1 32k; postpone_output 1460; sendfile on; tcp_nopush on; tcp_nodelay on; send_lowat 12000; keepalive_timeout 75 20; #lingering_time 30; #lingering_timeout 10; #reset_timedout_connection on; server listen ; server_name ; access_log /var/log/nginx.access_log main; location / proxy_pass /; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; #proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; client_body_temp_path /var/nginx/client_body_temp; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_send_lowat 12000; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_temp_path /var/nginx/proxy_temp; charset koi8-r; error_page 404 /404.html; location /404.html root /spool/www; charset on; source_charset koi8-r; location /old_stuff/ rewrite /old_stuff/(.*)$ /new_stuff/$1 permanent; location /download/ valid_referers none blocked server_names *.; if ($invalid_referer) #rewrite / /; return 403; #rewrite_log on; # rewrite /download/*/mp3/*.any_ext to /download/*/mp3/*.mp3 rewrite /(download/.*)/mp3/(.*).*$ /$1/mp3/$2.mp3 break; root /spool/www; #autoindex on; access_log /var/log/nginx-download.access_log download; location * .+.(jpg|jpeg|gif)$ root /spool/www; access_log off; expires 30d; 起停脚本启动脚本DAEMON=/home/umallfrn/nginx/nginx/sbin/nginxCONFIGFILE=/home/umallfrn/nginx/nginx/conf/nginx.confecho Starting nginx$DAEMON -c $CONFIGFILE | echo already running nginx停止Nginx服务kill -9 pidof nginx在不停止Nginx服务的情况下平滑变更Nginx配置1、修改/usr/local/webserver/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:/usr/local/webserver/nginx/sbin/nginx -t如果屏幕显示以下两行信息,说明配置文件正确:the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is okthe configuration file /usr/local/webserver/nginx/conf/nginx.conf was tested successfully2、这时,输入以下命令查看Nginx主进程号:ps -ef | grep nginx: master process | grep -v grep | awk -F print $2屏幕显示的即为Nginx主进程号,例如:6302这时,执行以下命令即可使修改过的Nginx配置文件生效:kill -HUP 6302或者无需这么麻烦,找到Nginx的Pid文件:kill -HUP cat /usr/mpsp/mall/nginx/logs/nginx.pid日志切割脚本创建日志日切脚本# cat /usr/local/sbin/logcron.sh#!/bin/bashlog_dir=”/data/logs”time=date +%Y%m%d/bin/mv $log_dir/access_.log $log_dir/access_.$time.logkill -USR1 cat /var/run/nginx.pid编辑定时任务#contab -e59 23 * * * /usr/local/sbin/logcron.sh /dev/null 2&1控制台身份认证创建用户:Cd /usr/mpsp/mall/nginx/conf/Mkdir htpasswdhtpasswd -c /usr/mpsp/mall/nginx/conf/htpasswd jinlu jinlu #设置用户密码设定查看Nginx状态的地址location /NginxStatus stub_status on; access_log on; auth_basic NginxStatus; auth_basic_user_file htpasswd/jinlu;运行以下命令检测配置文件是否无误:/nginc -t如果没有报错,那么就可以开始运行Nginx了,执行以下命令即可:备注:conf/htpasswd 文件的内容用 apache 提供的 htpasswd 工具来产生即可,内容大致如下:查看 Nginx 运行状态输入地址 /NginxStatus/,输入验证帐号密码,即可看到类似如下内容:Active connections: 328server accepts handled requests9309 8982 28890Reading: 1 Writing: 3 Waiting: 324nginx系统变量列表 从英文版wiki站点摘抄,编写rewrite规则备查The module ngx_http_core_module supports the built-in variables, whose names correspond with the names of variables in Apache.First of all, these are the variables, which represent the lines of the title of the client request, for example,$http_user_agent,$http_cookieand so forth.Furthermore, there are other variables:$arg_PARAMETER, this variable contains the value of the GET request variablePARAMETERif present in the query string$args, this variable is equal to arguments in the line of request;$content_length, this variable is equal to line “Content-Length” in the header of request;$content_type, this variable is equal to line “Content-Type” in the header of request;$document_root, this variable is equal to the value of directive root for the current request;$document_uri, the same as$uri;$host, this variable is equal to line “Host” in the header of request or name of the server, to whom the request arrived, if there is no this line;$is_argsevaluates to “?” if $args is set, “” otherwise.$limit_rate, the variable allows to limit connection rate;$query_string, the same as$args;$request_method, this variable is equal to the method of request, usually this “GET” or “POST”;$remote_addr, this variable is equal to the address of client;$remote_port, this variable is equal to the port of client;$remote_user, this variable is equal to the name of user, authenticated by ngx_http_auth_basic_module;$request_filename, this variable is equal to path to the file for the current request, formed from directives root or alias and URI request;$request_body_file, client request body temporary filename;$request_uri, this variable is equal to the complete initial URI together with the arguments;$scheme, the HTTP scheme (http, https). Evaluated only on demand, for example:rewrite

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论