Heim >Datenbank >MySQL-Tutorial >Nginx配置详解
Nginx 配置 详解 在进行Nginx 配置 的时候会出现很多不明白的地方,其实有些时候只要换一个思维的方式就能找多你要解决问题的方法。官方 配置 样例:http://wiki.nginx.org/NginxFullExample 650) this.width=650;" alt="复制代码" src="http://cdn.verydemo
Nginx配置详解
在进行Nginx配置的时候会出现很多不明白的地方,其实有些时候只要换一个思维的方式就能找多你要解决问题的方法。官方配置样例:http://wiki.nginx.org/NginxFullExample
<span>#</span><span>运行用户 </span><span><br></span> user nobody nobody; <br> <span>#</span><span>启动进程 </span><span><br></span> worker_processes 4; <br> <span>#</span><span>全局错误日志及PID文档 [ debug | info | notice | warn | error | crit ] </span><span><br></span> error_log logs/error.log notice; <br> pid logs/Nginx.pid; <br> <span>#</span><span>工作模式及连接数上限 </span><span><br></span> events { <br> <span>#</span><span>工作模式有:# use [ kqueue | rtsig | epoll | /dev/poll | select | poll ] ; </span><span><br></span> use epoll; <br> worker_connections 1024; <br> } <br> <span>#</span><span>设定http服务器,利用他的反向代理功能提供负载均衡支持 </span><span><br></span> http { <br> <span>#</span><span>设定mime类型 </span><span><br></span> include conf/mime.types; <br> default_type application/octet-stream; <br> <span>#</span><span>设定日志格式 </span><span><br></span> log_format main '<span>$remote_addr</span> - <span>$remote_user</span> [<span>$time_local</span>] ' <br> '<span>"</span><span>$request</span><span>"</span> <span>$status</span> <span>$bytes_sent</span> ' <br> '<span>"</span><span>$http_referer</span><span>"</span> <span>"</span><span>$http_user_agent</span><span>"</span> ' <br> '<span>"</span><span>$gzip_ratio</span><span>"</span>'; <br> log_format download '<span>$remote_addr</span> - <span>$remote_user</span> [<span>$time_local</span>] ' <br> '<span>"</span><span>$request</span><span>"</span> <span>$status</span> <span>$bytes_sent</span> ' <br> '<span>"</span><span>$http_referer</span><span>"</span> <span>"</span><span>$http_user_agent</span><span>"</span> ' <br> '<span>"</span><span>$http_range</span><span>"</span> <span>"</span><span>$sent_http_content_range</span><span>"</span>'; <br> <span>#</span><span>设定请求缓冲 </span><span><br></span> client_header_buffer_size 1k; <br> large_client_header_buffers 4 4k; <br> <span>#</span><span>开启gzip模块 </span><span><br></span> gzip on; <br> gzip_min_length 1100; <br> gzip_buffers 4 8k; <br> gzip_types text/plain; <br> output_buffers 1 32k; <br> postpone_output 1460; <br> <span>#</span><span>设定access log </span><span><br></span> access_log logs/access.log main; <br> client_header_timeout 3m; <br> client_body_timeout 3m; <br> send_timeout 3m; <br> sendfile on; <span>#</span><span>指令激活或停用的sendfile()的用法。</span><span><br></span> tcp_nopush on; <br> tcp_nodelay on; <br> keepalive_timeout 65; <br> <span>#</span><span>设定负载均衡的服务器列表 </span><span><br></span> upstream mysvr { <br> <span>#</span><span>weigth参数表示权值,权值越高被分配到的几率越大 </span><span><br></span> <span>#</span><span>本机上的Squid开启3128端口 </span><span><br></span> server 192.168.8.1:3128 weight=5; <br> server 192.168.8.2:80 weight=1; <br> server 192.168.8.3:80 weight=6; <br> } <br> <span>#</span><span>设定虚拟主机 </span><span><br></span> server { <br> listen 80; <br> server_name 192.168.8.1 www.yejr.com; <br> charset utf8; <br> <span>#</span><span>设定本虚拟主机的访问日志 </span><span><br></span> access_log logs/www.yejr.com.access.log main; <br> <span>#</span><span>假如访问 /img/*, /js/*, /css/* 资源,则直接取本地文档,不通过squid </span><span><br></span> <span>#</span><span>假如这些文档较多,不推荐这种方式,因为通过squid的缓存效果更好 </span><span><br></span> location ~ ^/(img|js|css)/ { <br> root /data3/Html; <br> expires 24h; <br> } <br> <span>#</span><span>对 "/" 启用负载均衡 </span><span><br></span> location / { <br> proxy_pass http://mysvr; <br> proxy_redirect off; <br> proxy_set_header Host <span>$host</span>; <br> proxy_set_header X-Real-IP <span>$remote_addr</span>; <br> proxy_set_header X-Forwarded-<span>For</span> <span>$proxy_add_x_forwarded_for</span>; <br> client_max_body_size 10m; <br> client_body_buffer_size 128k; <br> proxy_connect_timeout 90; <br> proxy_send_timeout 90; <br> proxy_read_timeout 90; <br> proxy_buffer_size 4k; <br> proxy_buffers 4 32k; <br> proxy_busy_buffers_size 64k; <br> proxy_temp_file_write_size 64k; <br> } <br> <span>#</span><span>设定查看Nginx状态的地址 </span><span><br></span> location /NginxStatus { <br> stub_status on; <br> access_log on; <br> auth_basic <span>"</span><span>NginxStatus</span><span>"</span>; <br> auth_basic_user_file conf/htpasswd; <br> } <br> <span>#</span><span> error_page 404 /404.html; </span><span><br></span> <br> <span>#</span><span> location /404.html { </span><span><br></span> <span>#</span><span> root /spool/www; </span><span><br></span> <span>#</span><span> charset on; </span><span><br></span> <span>#</span><span> source_charset koi8-r; </span><span><br></span> <span>#</span><span> } </span><span><br></span> <span>#</span><span> location /old_stuff/ { </span><span><br></span> <span>#</span><span> rewrite ^/old_stuff/(.*)$ /new_stuff/$1 permanent; </span><span><br></span> <span>#</span><span> } </span><span><br></span> <span>#</span><span>location /download/ { </span><span><br></span> <span>#</span><span> valid_referers none blocked server_names *.example.com; </span><span><br></span> <span>#</span><span> if ($invalid_referer) { </span><span><br></span> <span>#</span><span> #rewrite ^/ http://www.example.com/; </span><span><br></span> <span>#</span><span> return 403; </span><span><br></span> <span>#</span><span> } </span><span><br></span> <span>#</span><span> rewrite_log on; </span><span><br></span> <span>#</span><span> # rewrite /download/*/mp3/*.any_ext to /download/*/mp3/*.mp3 </span><span><br></span> <span>#</span><span> rewrite ^/(download/.*)/mp3/(.*)\..*$ /$1/mp3/$2.mp3 break; </span><span><br></span> <span>#</span><span> root /spool/www; </span><span><br></span> <span>#</span><span> # autoindex on; </span><span><br></span> <span>#</span><span> access_log /var/log/nginx-download.access_log download; </span><span><br></span> <span>#</span><span> } </span><span><br></span> <span>#</span><span> location ~* ^.+\.(jpg|jpeg|gif)$ { </span><span><br></span> <span>#</span><span> root /spool/www; </span><span><br></span> <span>#</span><span> access_log off; </span><span><br></span> <span>#</span><span> expires 30d; </span><span><br></span> <span>#</span><span>}</span><span><br></span> } <br>}
备注:conf/htpasswd 文档的内容用 apache 提供的 htpasswd 工具来产生即可.
查看 Nginx 运行状态 输入地址http://192.168.8.1/NginxStatus/ 。输入验证帐号密码,即可看到类似如下内容:
Active connections: 328 <br> server accepts handled requests <br> 9309 8982 28890 <br> Reading: 1 Writing: 3 Waiting: 324
第一行表示现在活跃的连接数,第三行的第三个数字表示Nginx运行着。