简介:Nginx 的安装与使用,Nginx 的HTTPS 配置, Nginx 的优化
安装
需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩
- 选定源码目录
1 | cd /usr/local/ |
- 安装PCRE库
1 | cd /usr/local/ |
- 安装zlib库
1 | cd /usr/local/ |
- 安装ssl (或者yum install openssl)
1 | cd /usr/local/ |
- 安装nginx
1 | cd /usr/local/ |
- 启动及命令
1 | /usr/local/nginx/sbin/nginx |
- 注
win7中host文件位置
1 | C:\Windows\System32\drivers\etc |
centos6.5 host文件
1 | /etc/hosts |
正向代理,反向代理
区别在于代理的对象不一样:正向代理代理的对象是客户端,反向代理代理的对象是服务端 link区别
功能
- Http代理,反向代理
负载均衡
- 内置策略
- 轮询
- 加权
- ip hash
- 扩展策略
- 天马行空
- 内置策略
web缓存
Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,
主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。
文件结构
1 |
|
全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等
http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等
server块:配置虚拟主机的相关参数,一个http中可以有多个server块。
location块:配置请求的路由,以及各种页面的处理情况。 一个server可以有多个location块
Nginx配置示例
示例
1 |
|
- log_format 说明
- $remote_addr 与$http_x_forwarded_for 用以记录客户端的ip地址;
- $remote_user :用来记录客户端用户名称;
- $time_local : 用来记录访问时间与时区;
- $request : 用来记录请求的url与http协议;
- $status : 用来记录请求状态;成功是200,
- $body_bytes_sent :记录发送给客户端文件主体内容大小;
- $http_referer :用来记录从那个页面链接访问过来的;
- $http_user_agent :记录客户端浏览器的相关信息;
另:Nginx 设置忽略favicon.ico文件的404错误日志(关闭favicon.ico不存在时记录日志)。在 server { … }内添加如下信息.
1
2
3
4location = /favicon.ico {
log_not_found off;
access_log off;
}匹配规则 当所有server的规则都不匹配时,nginx会采用第一条server配置,所以一般第一条server用来使用阻止页面
1
2
3
4
5server {
listen 80;
server_name _;
return 404;
}
Nginx 支持HTTPS
参考 Https证书
另可申请免费的证书,startcomca 已废弃
API接口设计原理
- 安全第一
- 身份认证
- 权限控制
- 安全传输
- 易用性
- 学习成本
- 开发成本
- 迁移成本
- 开放成本
- 适用性
- web页面端
- js跨域
- 智能平板
- web页面端
一般常用的设计方式
- HTTP + 请求签名
- HTTP + 参数加密
- HTTPS + 访问令牌