特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/

1、配置重定向

 server {
listen ;
server_name test.com;
rewrite ^(.*)$ https://$host$1 permanent;
}

2、配置443端口

     server {
listen ssl;
server_name example.com www.example.com; ssl_certificate /usr/local/application/cert/server.crt;
ssl_certificate_key /usr/local/application/cert/server.key;
ssl_protocols TLSv1 TLSv1. TLSv1.;
ssl_ciphers HIGH:!aNULL:!MD5:!DH; location / {
root /usr/local/application/html;
index index.html;
} error_page /50x.html;
location = /50x.html {
root html;
} }

3、配置反向代理

  现在web的趋势已经是动静分离模式,比如:我们访问http://localhost(静态网页),但是通常通过ajax访问后台接口的时候是不同端口或者ip的,这个时候会存在跨域问题,所以需要做下反向代理,比如我们请求后台接口:http://localhost/api/userController/getList,实际上Nginx遇到/api/会将请求转发给具体的后台8080端口的服务并等待服务给出最终响应。

     server {
listen ;
server_name location; location / {
root /usr/local/application/html;
index index.html;
} location /api/ {
proxy_pass http://localhost:8080/;
} error_page /50x.html;
location = /50x.html {
root html;
} }

4、配置负载均衡

  1、Nginx的upstream目前支持的分配算法一共有3种

  1)、轮询 ——1:1 轮流处理请求(默认)
    每个请求按时间顺序逐一分配到不同的应用服务器,如果应用服务器down掉,自动剔除,剩下的继续轮询。

     upstream backends {
server localhost:;
server localhost:;
}
server {
listen ;
server_name location; location / {
root /usr/local/application/html;
index index.html;
} location /service/ {
proxy_pass http://backends/;
} error_page /50x.html;
location = /50x.html {
root html;
} }

  2)、权重 ——you can you up

    通过配置权重,指定轮询几率,权重和访问比率成正比,用于应用服务器性能不均的情况。

      upstream backends {
server localhost: weight ;
server localhost: weight ;
}

  3)、ip_hash算法
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个应用服务器,可以解决session共享的问题。

     upstream backends {
ip_hash;
server localhost:;
server localhost:;
}

2、第三方Nginx的upstream目前支持的分配算法一共有2种(目前还未验证)

  1)fair

  fair顾名思义,公平地按照后端服务器的响应时间(rt)来分配请求,响应时间短即rt小的后端服务器优先分配请求。

     upstream backends {
server localhost:;
server localhost:;
fair;
}

  2)url_hash

  与ip_hash类似,但是按照访问url的hash结果来分配请求,使得每个url定向到同一个后端服务器,主要应用于后端服务器为缓存时的场景下。

     upstream backends {
server localhost:;
server localhost:;
hash $request_uri;
hash_method crc32;
}

  其中,hash_method为使用的hash算法,需要注意的是:此时,server语句中不能加weight等参数。

5、upstream配置详解

1、upstream的配置

  server address [parameters]
  address也必选,可以是主机名、域名、ip或unix socket,也可以指定端口号。
  parameters是可选参数,可以是如下参数:
    down:表示当前server已停用,暂时不参与负载。
    backup:表示当前server是备用服务器,只有其它非backup后端服务器都挂掉了或者很忙才会分配到请求。
    weight:表示当前server负载权重,权重越大被请求几率越大。默认是1.
    max_fails和fail_timeout一般会关联使用,如果某台server在fail_timeout时间内出现了max_fails次连接失败,那么Nginx会认为其已经挂掉了,从而在fail_timeout时间内不再去请求它,fail_timeout默认是10s,max_fails默认是1,即默认情况是只要发生错误就认为服务器挂掉了,如果将max_fails设置为0,则表示取消这项检查。

2、举例说明

     upstream backends {
server localhost: weight=;
server localhost: max_fails= fail_timeout=30s;
server localhost:;
server localhost:;
}

6、配置禁止访问目录或文件

         location ^~ /default.html {
deny all;
} location ^~ /path{
deny all;
}

也可以把 deny all 改换成 return 404,这样将返回 404 而不是 403 Forbidden,更有“欺骗性”。

7、参考网站

  http://www.cnblogs.com/yun007/p/3739182.html

  https://blog.csdn.net/jiangguilong2000/article/details/52278255

  http://www.cnblogs.com/cinlap/p/9322934.html

Nginx常见配置的更多相关文章

  1. Nginx常见的错误配置

    Blog:博客园 个人 翻译自Common Nginx misconfigurations that leave your web server open to attack Nginx是当前主流的W ...

  2. spring4+websocket+nginx详细配置

    实现的版本jdk1.7.0_25, tomcat7.0.47.0, Tengine/2.1.1 (nginx/1.6.2), servlet3.0, spring4.2.2 使用maven导入版本3. ...

  3. 理解nginx的配置

    Nginx配置文件主要分成四部分:main(全局设置).server(主机设置).upstream(上游服务器设置,主要为反向代理.负载均衡相关配置)和 location(URL匹配特定位置后的设置) ...

  4. Nginx安全配置研究

    x00 测试环境 ? 1 2 3 操作系统:CentOS6.5 Web服务器:Nginx1.4.6 Php版本:Php5.4.26 0x01 Nginx介绍 nginx本身不能处理PHP,它只是个we ...

  5. Nginx安全配置

    nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端.nginx一般是把请求发fastcgi管理进程处理,fastcgi管 ...

  6. nginx常用配置系列-虚拟主机

    本来准备详尽的出一份nginx配置讲解,但nginx功能配置繁多,平常使用中使用最多的一般有: 1. 虚拟主机配置 2. HTTPS配置 3. 静态资源处理 4. 反向代理 ============= ...

  7. Nginx详解二十五:Nginx架构篇之Nginx常见的问题

    Nginx常见的问题 1.相同server_name多个虚拟主机优先级访问,是按读取文件的优先级来排序 在/opt/app/下准备3个code文件夹,下面放入3个html文件,里面的内容分别是code ...

  8. 写给大忙人的nginx核心配置详解

    由于当前很多应该都是前后端分离了,同时大量的基于http的分布式和微服务架构,使得很多时候应用和不同项目组之间的系统相互来回调用,关系复杂.如果使用传统的做法,都在应用中进行各种处理和判断,不仅维护复 ...

  9. CentOS7安装Nginx及配置

    Nginx是一款轻量级的网页服务器.反向代理服务器.相较于Apache.lighttpd具有占有内存少,稳定性高等优势.**它最常的用途是提供反向代理服务.** 安装   在Centos下,yum源不 ...

随机推荐

  1. opencv 模板匹配, 已解决模板过大程序不工作的bug

    #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv ...

  2. vuex store更新了数据,但未触发getters

    遇到一个奇怪的问题,我将数组存储在store中,更新数组,第一次会生效,第二次就不会再触发getters,通过检查发现state中的数组是有更新的. 尝试过网上很多的解决办法: 1.getters r ...

  3. python 访问权限

    访问权限 权限: 公有的:类中的普通属性和方法,默认都是公有的,可以在类的内部.外部.子类中使用 私有的:定义是在前面加两个'_',只能在本类的内部使用,不能再外部及子类中使用 示例: class P ...

  4. element-ui 表格可编辑添加删除

    <template> <div id="Cold_all"> <div class="Cold_Left"> <el- ...

  5. 从零开始实现asp.net MVC4框架网站的用户登录以及权限验证模块 详细教程

    从零开始实现asp.net MVC4框架网站的用户登录以及权限验证模块 详细教程   用户登录与权限验证是网站不可缺少的一部分功能,asp.net MVC4框架内置了用于实现该功能的类库,只需要简单搭 ...

  6. Java学习笔记【七、时间、日期、数字】

    参考:http://www.runoob.com/java/java-date-time.html Date类 构造: Date() 使用当前的日期时间 Date(long millisec) 197 ...

  7. 08-【jsp重点】

    jsp的四个作用域和9个内置对象 jsp内置对象[重点]:pageContext.request.session.application.response.out.page.exception.con ...

  8. python3.6 错误: ModuleNotFoundError:No module named "Crypto"

    原因及处理:在使用python是经常会用到import一个第三方库,但是有时候会提示某个模块不存在,如Crypto其实是因为Python3里面这个模块的名字变了, pip install pycryp ...

  9. C#形参和实参、引用类型和值类型使用时的一个注意点。

    这是早上群里讨论的例子. static void main(string [] arg){ var p1=new Person{Name="张三"}; var p2=new Per ...

  10. zzzphp V1.6.0 按照功能分析漏洞

    0 基础支撑功能 0.1 路由功能 0.2 模版解析 * zzzphp V1.6.0 的代码执行漏洞,模版解析功能的问题 程序解析模版时,将模版中的部分内容匹配出来直接传递给了eval,且没有经过过滤 ...