那些实用的Nginx规则
1. 概述
大家都知道Nginx有很多功能模块,比如反向代理、缓存等,这篇文章总结下我们这些年实际环境中那些有用的Nginx规则和模块,大部分是用法的概括及介绍,具体细节在实际配置时再自行google。
2. 内置语法
先介绍Nginx默认已支持的内置功能,靠这些基本就满足大部分的web服务需求。
2.1 proxy代理
proxy常用于两类应用场景,一类是中转,如异地科学的上网方式,另外一类是到后端服务的负载均衡方案。
用反向代理时候,需要特别注意里面的域名默认是在nginx启动时候就解析了,除非reload否则一直用的是当初解析的域名,也就是说不能动态解析。
但这个问题是可以通过别的模块或者用内置字典变量方式来解决。
500 internal server error
今天同事在使用开发服管理平台上传图片的时候服务器返回:500 internal server error/nginx让我帮忙看下什么原因造成的
浏览器返回错误信息的时候抛出nginx,于是我登录服务器查看nginx的错误日志信息,发下如下信息
2017/12/01 10:47:49 [crit] 12775#0: *18 open() "/var/lib/nginx/tmp/client_body/0000000003" failed (13: Permission denied)
可以看到提示/var/lib/nginx/权限不足
可以通过以下命令查看权限信息
ls -la /var/lib/nginx
drwx------ 3 nginx nginx 4096 Sep 18 17:20 nginx
标签: linux error nginx server crit
什么是反向代理服务器
什么是反向代理服务器
含义:
‘反向代理服务器’ 有两个概念,一是‘代理服务器’,二是‘反向’
‘代理服务器’比较好理解,例如需要访问某网站,不想或不能直接访问,例如网络的原因、隐私的原因等,我们就连接一个代理服务器,这样对于这个网站来说,访问他的用户是这个代理服务器,而不是我们自己
‘反向’的意思我们没有通过代理服务器访问网站,但网站却在自己服务器前面加了一个代理,我们输入网址发起请求后,请求先到了这个代理服务器,代理服务器再把请求转给网站服务器
Nginx之HAProxy实现负载均衡
一、什么是Haproxy
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
标签: nginx 负载均衡 rewrite haproxy
Nginx之upstream负载均衡
upstream是Nginx的HTTP Upstream模块,这个模块通过一个简单的调度算法来实现客户端IP到后端服务器的负载均衡。在上面的设定中,通过upstream指令指定了一个负载均衡器的名称test.net。这个名称可以任意指定,在后面需要用到的地方直接调用即可。Nginx Location配置总结
语法规则: location [=|~|~*|^~] /uri/ { … }
= 开头表示精确匹配
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
~ 开头表示区分大小写的正则匹配
~* 开头表示不区分大小写的正则匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
/ 通用匹配,任何请求都会匹配到。
多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考):
首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
Nginx服务器架构简析
模块化结构的思想是一个很久的概念,但也正是成熟的思想造就了Nginx的巨大优越性。
我们知道Nginx从总体上来讲是有许多个模块构成的。习惯将Nginx分为5大模块分别为:核心模块,标准HTTP模块,可选HTTP模块,邮件服务模块和第三方模块。
高性能网站架构之负载均衡 Nginx的简介
什么是Nginx
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、新浪、网易、腾讯等。
Php 安全设置
1) 打开 php 的安全模式php 的安全模式是个非常重要的内嵌的安全机制,能够控制一些 php 中的函数,比如 system(),
同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd,
但是默认的 php.ini 是没有打开安全模式的,我们把它打开:
safe_mode = on
2) 用户组安全
当 safe_mode 打开时,safe_mode_gid 被关闭,那么 php 脚本能够对文件进行访问,而且相同
组的用户也能够对文件进行访问。
建议设置为:
safe_mode_gid = off
如果不进行设置,可能我们无法对我们服务器网站目录下的文件进行操作了,比如我们需要
对文件进行操作的时候。
3) 安全模式下执行程序主目录
如果安全模式打开了,但是却是要执行某些程序的时候,可以指定要执行程序的主目录:
safe_mode_exec_dir = /usr/bin
一般情况下是不需要执行什么程序的,所以推荐不要执行系统程序目录,可以指向一个目录,
然后把需要执行的程序拷贝过去,比如:
safe_mode_exec_dir = /tmp/cmd
但是,我更推荐不要执行任何程序,那么就可以指向我们网页目录:
safe_mode_exec_dir = /usr/www
4) 安全模式下包含文件
如果要在安全模式下包含某些公共文件,那么就修改一下选项:
safe_mode_include_dir = /usr/www/include/
热门日志
分类
- Php(101)
- Java(8)
- Mysql(32)
- Ajax(2)
- Jsp(1)
- Struts(8)
- Linux(71)
- JavaScript(39)
- Staruml(0)
- Mouth(1)
- Html(6)
- Windows(8)
- Message(12)
- Lua(10)
- Compute(1)
- Redis(7)
- Nginx(11)
- Jquery(1)
- Apache(1)
- cocos2d-x(8)
- about(1)
- ssdb(1)
- Mac(7)
- C(1)
- memcache(1)
- Python(30)
- Vim(8)
- sed(2)
- ansible(3)
- awk(4)
- shell(3)
- Django(4)
- git(7)
- bat(4)
- svn(0)
- docker(1)
- Tornado(1)
- go(1)
- 架构(16)
- Vue(1)
最新日志
- Docker 那些事
- 欢迎您关注“刘善海价值分享”微信公众号!
- Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
- Linux vim/vi下backspace(退格键)出现^? 或^H
- python 如何通过subprocess.call调用自定义alias别名
- python2 python3中long类型的区别
- 10 个 Linux 中方便的 Bash 别名
- 'python' engine because the 'c' engine does not support regex separators
- importError c extension: No module named np_datetine not buit
- 四个提高工作效率的小技巧