下面由wordpress建站教程栏目给大家介绍wordpressrestapi的基本使用,希望对需要的朋友有所帮助!
博客开通以来,主要记录学习和使用过程中遇到的问题及解决方案。文章风格偏向自娱自乐,因此访问量较少,一台1核1G的vps足以支撑网站的正常运行。
后来本站引入三个页面,这三个页面应该对有上外网需求的网友很有帮助,也给本站带来了很大的流量。本站用的WordPress程序,尝试过安装各种缓存插件(supercache,w3totalcache等)加速运行,但是低配的vps依然难以支持这么大的访问量。通过日志可以看到随着访问量的增加,php-fpm进程增多,Mysql的连接和线程增多,接着出现OOM,然后系统kill掉占用内存最大的Mysql进程,于是网站进入503宕机模式。
买更好的vps能解决访问量大的问题,但是要花更多的钱。做为一个技术宅,首先想到的当然是如何榨干现有机器来支撑大流量。做过的尝试包括切换到比WordPress性能更好的Ghost,参考:尝试Ghost。但是相对于WordPress,Ghost的生态远没有那么成熟,最终放弃了。
左思右想下,终极解决办法是用Nginx缓存,最初的文章可参考:Nginx配置fastcgicache。fastcgi_cache的好处是大部分用户的请求不用后端php-fpm打交道,直接发送缓存的静态页面,速度上甩各种WordPress插件好几条街!相比之下wordpress的各种插件还要执行php,也避免不了访问数据库,弱爆了!
自从使用了nginx缓存,网站平稳运行,再也没有出现过宕机的现象。同时vps的cpu和内存占用率直线下降,再也无需担心vps的配置问题,感觉再来10倍流量博客也撑得住!
因为nginx稳如狗的体验,所以现在对于博客类读多写少的产品都是强推nginx缓存(fastcgi缓存或者proxy缓存)。鉴于可能帮到一些网友,现贴出/etc/nginx/nginx.conf配置文件供网友参考(包含ssl设置和gzip部分):
#文件:/etc/nginx/nginx.conf#Formoreinformationonconfiguration,see:#*OfficialEnglishDocumentation:http://nginx.org/en/docs/#*OfficialRussianDocumentation:http://nginx.org/ru/docs/usernginx;worker_processesauto;error_log/var/log/nginx/error.log;pid/run/nginx.pid;#Loaddynamicmodules.See/usr/share/nginx/README.dynamic.include/usr/share/nginx/modules/*.conf;events{worker_connections1024;}http{log_formatmain'$remote_addr-$remote_user[$time_local]"$request"''$status$body_bytes_sent"$http_referer"''"$http_user_agent""$http_x_forwarded_for""$request_time"';access_log/var/log/nginx/access.logmainbuffer=32kflush=30s;server_tokensoff;client_max_body_size100m;sendfileon;tcp_nopushon;tcp_nodelayon;keepalive_timeout65;types_hash_max_size2048;include/etc/nginx/mime.types;default_typeapplication/octet-stream;#ssl配置ssl_protocolsTLSv1.2TLSv1.3;ssl_ciphersECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;ssl_ecdh_curvesecp384r1;ssl_prefer_server_cipherson;ssl_session_cacheshared:SSL:10m;ssl_session_timeout10m;ssl_session_ticketsoff;ssl_staplingon;#Requiresnginx>=1.3.7ssl_stapling_verifyon;#Requiresnginx=>1.3.7add_headerStrict-Transport-Security"max-age=63072000;preload";#add_headerX-Frame-OptionsDENY;add_headerX-Frame-OptionsSAMEORIGIN;add_headerX-Content-Type-Optionsnosniff;add_headerX-XSS-Protection"1;mode=block";#请按照自己的需求更改fastcgi_cache_path/var/cache/nginx/tlanyanlevels=1:2keys_zone=tlanyan:10minactive=30muse_temp_path=off;fastcgi_cache_key$request_method$scheme$host$request_uri;#note:canalsouseHTTPheaderstoformthecachekey,e.g.#fastcgi_cache_key$scheme$request_method$host$request_uri$http_x_custom_header;#fastcgi_cache_lockon;fastcgi_cache_use_staleerrortimeoutinvalid_headerupdatinghttp_500;fastcgi_cache_valid20030130210h;fastcgi_cache_valid40410m;fastcgi_ignore_headersExpiresSet-CookieVary;#gzip配置gzipon;gzip_min_length1k;gzip_buffers416k;gzip_comp_level7;gzip_typestext/csstext/plaintext/javascriptapplication/javascriptapplication/jsonapplication/x-javascriptapplication/xmlapplication/xml+rssapplication/xhtml+xmlapplication/x-font-ttfapplication/x-font-opentypeapplication/vnd.ms-fontobjectimage/svg+xmlimage/x-iconapplication/rss+xmlapplication/atom_xmlimage/jpegimage/gifimage/pngimage/iconimage/bmpimage/jpg;gzip_varyon;#Loadmodularconfigurationfilesfromthe/etc/nginx/conf.ddirectory.#Seehttp://nginx.org/en/docs/ngx_core_module.html#include#formoreinformation.include/etc/nginx/conf.d/*.conf;}