服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

Nginx的网页cachingtweeking

我试图build立一个NGINX服务器,作为坐在另一台服务器上的底层PHP应用程序的caching服务器。 原则上,事情运作良好,但由于PHP应用程序的某些“不良行为”,我需要对NGINX进行一些调整,但到目前为止我还是失败了。 有这些问题的解决scheme吗? 问题1:PHP应用程序发送“Vary:Accept-Encoding”作为可caching内容的响应头,并导致NGINX针对不同的Accept-Encoding请求头保留不同的caching副本,这是正确的,但不是我想要的performance。 我的需求要求NGINX删除Accept-Encoding请求头,因为它会代理PHP应用程序,并在caching时忽略头。 我已经完成了第一部分的使用: proxy_set_header Accept-Encoding ""; 这个configuration从请求中删除标题,但是不会在caching方面忽略它。 我很清楚proxy_ignore_headers,我可以在下面的设置中使用它,但是解决scheme将忽略Vary头部中的任何头部名称,而不仅仅是Accept-Encoding proxy_ignore_headers Vary; 有没有解决这个问题? 问题2: PHP应用程序正试图设置可caching内容的会话cookie。 我希望NGINX忽略用于caching的Set-Cookie头,还要删除任何可caching内容的响应头Set-Cookie。 为了使NGINX根据我使用的caching忽略Set-Cookie响应头: proxy_ignore_headers Set-Cookie; NGINX不会忽略头,但会将Set-Cookie响应头发送给任何用户。 在NGINX上有解决scheme,我可以根据页面是否被caching来删除标题。 我试图使用if子句来检查$ sent_http_cache_controlvariables,但是似乎如果在响应可用之后语句没有重新运行,所以这样的variables在被评估的时候不会被设置。

是否build议在systemd中设置OOMScoreAdjust = 1000作为可replace的服务?

systemd具有OOMScoreAdjust选项,该选项允许调整已启动进程的oom-killer分数。 引用systemd文档 : OOMScoreAdjust= 为已执行的进程设置内存不足杀手的调整级别。 取一个-1000之间的整数(以禁止这个进程的OOM查杀)和1000(很有可能在内存压力下杀死这个进程)。 有关详细信息,请参阅proc.txt 。 在我的设置中,我在AWS上部署了一个NodeJs服务器。 在节点服务器旁边,EC2实例上没有其他的东西运行(期望监视和基本的操作系统进程)。 有ELB健康检查到位,最终应该取代破碎的EC2实例。 不过,如果存在内存问题,我想知道是否增加OOMScoreAdjust以使内核更喜欢杀死节点服务器进程是一种很好的做法,因为它可以自动重新启动。 在systemd中,它可能看起来像这样: OOMScoreAdjust=1000 Restart=always 我不得不承认,我的理解是有限的。 我目前的理解是,它很可能不会有真正的区别,最好保留默认值: 如果内存耗尽过程是节点服务器,它将最有可能被杀害。 如果罪魁祸首是另一个进程,重新启动节点服务器将无济于事,ELB运行状况检查应该最终负责replace实例。 不过,我很好奇,如果有更好的理解的人已经想通了。 启用它只会是systemd脚本中的一行。 如果有疑问,我宁愿让内核杀死Node进程,而不是任何随机的系统服务。