| 关键词: nbsp Nginx proxy 文件 进程 配置 HTTP conf 当前 header |
摘要 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。 Nginx 发布 当前稳定版: Nginx 0.6.35 (更新记录) ( 2009年1月26日) 当前开发版: Nginx 0.7.44 (更新记录) ( 2009年3月23日) 历史稳定版: Nginx 0.5.37 (更新记录) ( 2008年7月7日) Nginx文档地址 http://wiki.nginx.org/NginxChs 注意点 1 Nginx并不支持Windows,只能在Linux,Unix,BSD 系统下安装使用 2 Nginx本身是一个HTTP和反向代理服务器,无法像Apache一样通过安装各种模块来支持不同 的页面脚本(PHP,CGI) 3 Nginx支持简单的负载均衡和容错 4 Nginx支持作为基本HTTP 服务器的功能,例如日志,压缩,SSL,虚拟主机等。 环境 RedHat Linux Enterpriser Server 5 Nginx-0.6.31 ( 稳定版本) JDK 1.6 Tomcat 6.0.18 安装 创建用户组和帐号 #/usr/sbin/groupadd www -g 48 #/usr/sbin/useradd -u 48 -g www www #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=/usr/local/nginx --user=www --group=www #make #make isntall #--with-http_stub_status_module 是为了启用nginx的status功能,用来监控Nginx的当前状态 安装后,有四个子目录conf/nginx.conf html logs sbin/nginx 确保系统80端口没有被其他程序占用,运行sbin/nginx启动,浏览器访问。 #/usr/local/nginx/sbin/nginx 编译rewrite模块 需要正则表达式,需要安装pcre包 #wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz #tar zxvf pcre-7.7.tar.gz #cd pcre-7.7 #./configure #make #make install 程序运行参数: Nginx安装后只有一个程序文件,使用参数和系统信号机制对Nginx进程本身进行控制。 -c <path_to_config>:使用指定的配置文件 -t :测试配置文件是否正确,在运行时需要重新加载配置文件,用来测试所修改配置文件是 否有错误语法 -v :显示版本号 -V :显示版本号和编译环境信息和编译参数 #sbin/nginx -t -c conf/nginx2.conf 通过信号对Nginx进行控制: 支持的信号: TERM 快速关闭彻骨女婿,中止当前正在处理请求 INT QUIT 处理完当前请求后,关闭程序 HUP 重新加载配置,并开始启动新的工作进程,关闭旧的进程,此操作不会中断请求 USER1 重新打开日志文件,用于切换日志,如:每天生成一个新的日志文件 USER2 平滑升级可执行程序 WINCH 从容关闭工作进程 两种方式: 1 通过logs下的nginx.pid 查看当前运行的进程id ,kill - XXX <pid> 来控制进程。XXX就 是信号明。 2 也可以使用killall 来完成。如killall -s HUP nginx 来重新加载配置文件。 配置 conf/nginx.conf文件: user www www; # 工作进程的宿主 worker_processes 8; # 工作进程数,一般跟CPU核数目相同 #error_log logs/error.log; debug 模式 error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; gzip on; #打开gzip模式 gzip_camp_level 5; #压缩级别 1-9 ,1 最快,9最慢 gzip_min_length 1100; gzip_buffers 4 8 k; worker_rlimit_nofile 51200; events { use epoll; # Linux下性能最好的event worker_connections 51200; #每个进程允许最大的连接数 } #access_log logs/access.log main; #日志文件名 upstream tomcat{ server 192.168.0.119:5050 down; server 192.168.0.117:5050 weight=1; server 192.168.0.142:5050 weight=1; } include /usr/local/nginx/conf/proxy.conf; location / { root html; index index.html index.htm; proxy_pass http://tomcat; } location /NginxStatus { stub_status on; access_log off; allow all; #auth_basic "status"; #auth_basic_user_file conf/htpasswd; } # 静态文件和图片服务器时使用 location ~ ^/images/{ root /opt/webapp/images; } location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|ico|css|js|txt)${ root /opt/webapp; access_log off; expires 24h; } expires 60s;#30m 24h 1d max off location / { proxy_pass http://localhost:8080; proxy_set_header X-Real-IP $remote_addr; } location / { proxy_pass http://tomcat; proxy_set_header X-Real-IP $remote_addr; } #Nginx使用最简单的平均分配规则给集群的节点。若一个失效,或重新起效时,Nginx会自己处理状态的变化。 proxy.conf 文件 #!nginx (-) # proxy.conf 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; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k; #sbin/nginx -t #ulimit -SHn 51200 #sbin/nginx #kill -HUP 'cat /usr/local/nginx/logs/nginx.pid' #重新加载新的配置文件 监控: http://localhost/NginxStatus active connections :当前正在处理的活动连接数。 server accepts handled requests:总共处理的n个连接,成功创建n次握手(证明中间没有 失败的),总共处理了n个请求。 reading: 读取到客户端的Header信息数。 writing: 返回给客户端的Header信息数。 waiting: 开启keep-alive 情况下,该值等于active -(reading+writing),nginx已经在处 理完成正在等候下一次请求指令的驻留连接。 总结: 一般可以对nginx的worker_processes和 worker_connections进行调整,来达到性能的调优。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|