由于公司使用过Ngnix,对于刚接触Nginx来说,感觉有些好奇,于是研究了下。
本人在windows下使用的版本是nginx-1.8.1:
1. 启动Ngnix双击nginx-1.8.1文件夹中nginx.exe,当任务管理器中存在两个nginx进程时,则说明启动成功!
2. Ngnix常用命令- nginx -s stop 强制关闭
- nginx -s quit 安全关闭
- nginx -s reload 改变配置文件的时候,重启nginx工作进程,来时配置文件生效
- nginx -s reopen 打开日志文件
3. Nginx配置下面配置综合了网上的资料,记下,防止自己忘记。
#Nginx所用用户和组#user nobody;#工作的子进程数量(通常等于CPU数量或者2倍于CPU)worker_processes 1;#错误日志存放路径#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#指定pid存放文件#pidlogs/nginx.pid;events {#使用网络IO模型linux建议epoll,FreeBSD建议采用kqueue#use epoll;#使用epoll模型提高性能 win下不需要#use epoll;#允许最大连接数worker_connections 1024;}http {#扩展名与文件类型映射表includemime.types;#默认类型default_type application/octet-stream;#定义日志格式#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;# 启用内核复制模式,应该保持开启达到最快IO效率sendfileon;#tcp_nopush on;#keepalive_timeout 0;# HTTP1.1支持持久连接alive# 降低每个连接的alive时间可在一定程度上提高可响应连接数量,所以一般可适当降低此值keepalive_timeout 65;# 启动gzip压缩功能设置,有效降低网络流量gzip on;gzip_min_length 1k;#最小1Kgzip_buffers4 16k;gzip_http_version 1.0;gzip_comp_level 2;gzip_types text/plain application/x-javascripttext/css application/xml;gzip_vary on;# 静态文件缓存# 最大缓存数量,文件未使用存活期open_file_cache max=655350 inactive=20s;# 验证缓存有效期时间间隔open_file_cache_valid 30s;# 有效期内文件最少使用次数open_file_cache_min_uses 2;#xbq add#upstream作负载均衡,在此配置需要轮询的服务器地址和端口号,max_fails为允许请求失败的次数,默认为1.#weight为轮询权重,根据不同的权重分配可以用来平衡服务器的访问率。upstream hostname {server 127.0.0.1:9000 max_fails=0 weight=2;server 127.0.0.1:9001 max_fails=0 weight=2;}server {listen8181;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;root /img; #在nginx-1.8.1文件夹中新建img文件夹,用于存放静态资源location / {#roothtml;#index index.html index.htm;#xbq addproxy_pass http://hostname;#下面三条指令允许重新定义和添加一些将被转移到被代理服务器的请求头部信息# 请求头中Host信息proxy_set_header Host $host;# 真实的客户端IPproxy_set_header X-Real-IP $remote_addr;# 代理路由信息,此处取IP有安全隐患proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# 真实的用户访问协议proxy_set_header X-Forwarded-Proto $scheme;# 默认值default,# 后端response 302时 tomcat header中location的host是http://192.168.1.62:8080# 因为tomcat收到的请求是nginx发过去的, nginx发起的请求url host是http://192.168.1.62:8080# 设置为default后,nginx自动把响应头中location host部分替换成当前用户请求的host部分# 网上很多教程将此值设置成 off,禁用了替换,# 这样用户浏览器收到302后跳到http://192.168.1.62:8080,直接将后端服务器暴露给浏览器# 所以除非特殊需要,不要设置这种画蛇添足的配置proxy_redirect default;client_max_body_size 10m;#允许客户端请求的最大单文件字节数client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数proxy_connect_timeout 90;#nginx跟后端服务器连接超时时间proxy_read_timeout 90; #连接成功后,后端服务器响应时间proxy_buffer_size 4k;#设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffers 6 32k;#proxy_buffers缓冲区,网页平均在32k以下的话,这样设置proxy_busy_buffers_size 64k;#高负荷下缓冲大小(proxy_buffers*2)proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传}#xbq add#配置Nginx动静分离,定义的静态页面直接从/usr/nginxStaticFile(Nginx发布目录)读取。location ~.(gif|jpg|jpeg|png|css|js|php)$ {#expires定义用户浏览器缓存的时间为7天,如果静态页面不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压力E:/staticResource;expires 7d;}#xbq add#启用nginx status 监听页面location /nginxstatus {stub_status on;access_log on;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page500 502 503 504 /50x.html;location = /50x.html {roothtml;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ .php$ {#proxy_passhttp://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ .php$ {#roothtml;#fastcgi_pass127.0.0.1:9000;#fastcgi_index index.php;#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;#includefastcgi_params;#}# deny access to .htaccess files, if Apache"s document root# concurs with nginx"s one##location ~ /.ht {#deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#listen8000;#listensomename:8080;#server_name somename alias another.alias;#location / {#roothtml;#index index.html index.htm;#}#}# HTTPS server##server {#listen443 ssl;#server_name localhost;#ssl_certificate cert.pem;#ssl_certificate_key cert.key;#ssl_session_cacheshared:SSL:1m;#ssl_session_timeout 5m;#ssl_ciphers HIGH:!aNULL:!MD5;#ssl_prefer_server_ciphers on;#location / {#roothtml;#index index.html index.htm;#}#}}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。