Tag nginx

Nginx 反向代理配置

隐藏服务器信息 -> 保证内网的安全,通常将反向代理作为公网访问地址,web服务器是内网,即通过nginx配置外网访问web服务器内网 找到配置文件 nginx.conf 参考文章:

Read MoreNginx 反向代理配置

高流量站点NGINX与PHP-fpm配置优化(译)

原文:Optimizing NGINX and PHP-fpm for high traffic sites 译者:youngsterxyf 使用Nginx搭配PHP已有7年的这份经历让我们学会如何为高流量站点优化NGINX和PHP-fpm配置。 以下正是这方面的一些提示和建议: 1. 将TCP切换为UNIX域套接字 UNIX域套接字相比TCP套接字在loopback接口上能提供更好的性能(更少的数据拷贝和上下文切换)。 但有一点需要牢记:仅运行在同一台服务器上的程序可以访问UNIX域套接字(显然没有网络支持)。 2. 调整工作进程数 现代计算机硬件是多处理器的,NGINX可以利用多物理或虚拟处理器。 多数情况下,你的Web服务器都不会配置为处理多种任务(比如作为Web服务器提供服务的同时也是一个打印服务器),你可以配置NGINX使用所有可用的处理器,NGINX工作进程并不是多线程的。 运行以下命令可以获知你的机器有多少个处理器: Linux上 – FreeBSD上 – 将nginx.conf文件中work_processes的值设置为机器的处理器核数。 同时,增大worker_connections(每个处理器核心可以处理多少个连接)的值,以及将”multi_accept”设置为ON,如果你使用的是Linux,则也使用”epoll”: 3. 设置upstream负载均衡 以我们的经验来看,同一台机器上多个upstream后端相比单个upstream后端能够带来更高的吞吐量。 例如,如果你想支持最大1000个PHP-fpm子进程(children),可以将该数字平均分配到两个upstream后端,各自处理500个PHP-fpm子进程: 以下是两个来自php-fpm.conf的进程池: 4. 禁用访问日志文件 这一点影响较大,因为高流量站点上的日志文件涉及大量必须在所有线程之间同步的IO操作。 若你不能关闭访问日志文件,至少应该使用缓冲: 5. 启用GZip 6. 缓存被频繁访问的文件相关的信息 7. 调整客户端超时时间 8. 调整输出缓冲区大小 9. � 10. 监控 持续监控打开连接的数目,空闲内存以及等待状态线程的数目。 设置警报在超出阈值时通知你。你可以自己构建这些警报,或者使用类似ServerDensity的东西。 确认安装了NGINX的stub_status模块。该模块默认并不会编译进NGINX,所以可能你需要重新编译NGINX – 原文:

Read More高流量站点NGINX与PHP-fpm配置优化(译)

使用Nginx+Redis为WordPress访问加速

更新:在宝塔面板直接安装php扩展 redis,然后在wordpress安装Redis Object Cache,启用缓存即可。 在ssh执行以下命令,然后刷新网站进行验证。 以下为旧资料: 环境:宝塔面板,Nginx,PHP,Wordpress,Redis 插件:Nginx-Help, Redis Object Cache , WPRedis 一、首先,需要给Nginx配置以下4个模块 宝塔面板,后台切换Nginx可以选择 nginx openresty ,自带以上模块 下面用来确认已经配置4个模块,会返回已经安装 二、在宝塔面板PHP配置中添加Redis扩展 三、在站点的Nginx配置文件的最上面,在server { }外面添加下面的代码 在server { }里添加下面的代码 保存,重启Nginx 四、在Wordpress插件管理中搜索安装 Nginx-Help, Redis Object Cache , WP Redis 激活Nginx-Help,进入设置,启用Enable purge ,在Caching Method选择Redis cache,在Redis Settings中修改Predix值,这里不要和其它站点冲突, 在Purging Options 中选择所需的缓存清理选项。 保存即可。 安装Redis Object Cache用于缓存刷新,好像也可以使用WP Redis。 就这样,结束 。 参考文章: 大鸟博客

Read More使用Nginx+Redis为WordPress访问加速

Nginx打开目录浏览功能(autoindex),中文乱码问题解决

Nginx默认是不允许列出整个目录的。如需此功能,打开nginx.conf文件或你要启用目录浏览虚拟主机的配置文件,在server或location 段里添加上autoindex on;来启用目录流量,下面会分情况进行说明。 另外Nginx的目录流量有两个比较有用的参数,可以根据自己的需求添加: autoindex_localtime on;默认为off,显示的文件时间为GMT时间。改为on后,显示的文件时间为文件的服务器时间 1、整个虚拟主机开启目录流量 在server段添加 2、单独目录开启目录流量 2.1:直接二级目录开启目录流量 2.2:虚拟目录开启目录流量 详细参照: 如果想希望做出漂亮的目录列表,支持header,footer则可以安装三方插件: 重启nginx,使其生效。 参考文章: nginx设置目录浏览及中文乱码问题解决方案 但是如果有中文目录的话会出现乱码问题,所以还需要在下面添加这一句: charset utf-8,gbk; apache 目录浏览开启关闭关闭:Options FollowSymLinks开启:Options Indexes FollowSymLinks

Read MoreNginx打开目录浏览功能(autoindex),中文乱码问题解决

Nginx下HTTP强制重定向至HTTPS

对于nginx来说,配置http强制重定向至https有多种多样的写法。可以直接rewrite,也可以用301重定向。但是从网上找到的大多数都有问题,并且还应该顾及到具体的情况,所以这里要进行一定的分析。 首先,从官方文档来看,通过对整个域名通过正则匹配进行rewrite,然后以此来重定向至https的链接的方法官方是不推荐的(可见�成: return 301 https://$server_name$request_uri; 接着是重定向的语句应该放在哪里的问题。 对于编译安装的nginx,��认包含了两个server段,一个是默认开启的,监听80端口;另一个被注释掉了,监听443端口(也即SSL所需的端口)。这两个端口分别使用各自的server段。也就是说只要将80端口server段下的站点location设置复制到443端口server段下面,这样就可以直接在80端口server段里面添加重定向语句以达到重定向的目的。 对于其他方式安装的nginx,或者自行修改过nginx.conf,那么可能不包括443端口server段。这时候可以选择像编译安装的默认配置一样,另起一个监听443端口的server段。但是如果说网站已经运行了一段时间,然后写了不少location的配置。这时候,可能更一般的做法是在一个server段里面同时监听80和443端口。这个时候,直接添加重定向语句,势必会造成https访问也会重定向到https。看似没有问题,但是仔细考虑会发现只要一访问,无论是http还是https都会无限地重定向下去。事实上,在这种情况下Chrome会报“重定向循环”的错误。 那么知道问题之后,解决的方案就是只在访问http时重定向。配置如下: if ( $scheme = http ){ return 301 https://$server_name$request_uri; } 这样就可以解决这一问题。 via:

Read MoreNginx下HTTP强制重定向至HTTPS