作者

微信:tangy8080

电子邮箱:914661180@qq.com

更新时间:2019-07-10 20:56:10 星期三

欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程中的编写的文章

如您在阅读过程中发现文章错误,可添加我的微信 tangy8080 进行反馈.感谢您的支持。

文章主题

了解nginx常用的配置

前置条件

已经安装好了nginx,如未安装请参考nginx安装和基本配置

正文

auth_basic的认证配置

auth_basic在nginx里用的应该比较多,经常用于一些不能认证功能应用的基础授权。例如您可以将其用在kibana中

1.首先需要生成用户名和密码

使用openssl来生成,生成命令(openssl在安装nginx的时候已经安装)

echo "kibana:$(openssl passwd -crypt 1234567890)" >>/usr/local/nginx/conf/httpasswd
echo "consul:$(openssl passwd -crypt 1234567890)" >>/usr/local/nginx/conf/httpasswd
echo "etcd:$(openssl passwd -crypt 1234567890)" >>/usr/local/nginx/conf/httpasswd
2.为需要授权的资源添加授权配置
server{
listen 50813;
location / {
auth_basic "please login";
auth_basic_user_file /usr/local/nginx/conf/httpasswd;
proxy_http_version 1.1;
proxy_pass http://kibana;
}
}

auth_basic_user_file:是用户名和密码的配置文件地址

ssl的配置

首先您需要先购买证书,如果只是想用于实验,可以尝试Let’s Encrypt,申请地址:https://www.sslforfree.com/, 需要按照提示在域名管理控制台添加TXT记录

    server{
listen 443;
server_name rabbitmq.honeysuckle.site;
ssl on;
ssl_certificate /usr/local/nginx/cert/certificate.crt;
ssl_certificate_key /usr/local/nginx/cert/private.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forward-For $http_x_forwarded_for;
proxy_http_version 1.1;
proxy_pass http://mqweb_backends;
}
}
  • ssl on 为指定虚拟机启用HTTPS protocol
  • ssl_certificate 当前虚拟主机使用PEM格式的证书文件
  • ssl_certificate_key 当前虚拟主机上与其证书匹配的私钥文件
  • ssl_protocols 支持ssl协议版本
  • ssl_session_timeout 客户端连接可以复用ssl session cache中缓存的ssl参数的有效时长,默认5m
  • ssl_ciphers 指定启用的密码。密码以OpenSSL库理解的格式指定,可以使用“ openssl ciphers”命令查看完整列表。

常用的负载均衡算法

轮询策略(轮询加权/round-robin)
http {
upstream tomcats {
server 192.168.0.180:8080 weight=1 fail_timeout=20s;
server 192.168.0.181:8080 weight=2 fail_timeout=20s;
}
server {
server_name www.test.com
listen 80;
location / {
proxy_pass http://tomcats;
}
}
}
  • 上面通过weight参数指定了轮询机率,weight和访问比率成正比,用于后端服务器性能不均的情况。
  • 如果不加权重,将按照默认的等比权重进行代理
ip_hash(ip绑定)
http {
upstream tomcats {
ip_hash;
server 192.168.0.180:8080 weight=1 fail_timeout=20s;
server 192.168.0.181:8080 weight=2 fail_timeout=20s;
}
server {
server_name www.test.com
listen 80;
location / {
proxy_pass http://tomcats;
}
}
}

使用ip_hash来解决有状态的会话,每个访客固定访问一个后端服务器

fair
http {
upstream tomcats {
fair;
server 192.168.0.180:8080;
server 192.168.0.181:8080;
}
server {
server_name www.test.com
listen 80;
location / {
proxy_pass http://tomcats;
}
}
}

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

url_hash
http {
upstream tomcats {
hash $request_uri;
server 192.168.0.180:8080;
server 192.168.0.181:8080;
}
server {
server_name www.test.com
listen 80;
location / {
proxy_pass http://tomcats;
}
}
}

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效

常用参数说明

https://www.cnblogs.com/yinzhengjie/p/7788237.html

引用链接

https://blog.csdn.net/xqhys/article/details/81788358

2.了解nginx常用的配置的更多相关文章

  1. Nginx常用功能配置二

    Nginx常用功能配置二 Nginx location匹配设置 location作用:可以根据用户请求的URI来执行不同的应用,根据用户请求的网站的地址URL匹配. location语法: locat ...

  2. Nginx常用功能配置一

    Nginx常用功能配置 参数include配置 说明:如果日常工作中server标签存在太多,可以采用include配置模式,Nginx的主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目 ...

  3. nginx常用服务配置

    一.nginx.conf的配置方式,创建新vhost user nginx; worker_processes ; worker_cpu_affinity ; worker_rlimit_nofile ...

  4. nginx常用功能配置

    一.规范优化nginx配置文件 nginx的主配置文件为nginx.conf,主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目录中,虚拟主机的配置文件按照网站的域名或功能取名,例如www ...

  5. 大神教你Nginx常用基础配置方案

    Nginx的fastcgi模块参数设置 Nginx 有两个配置文件fastcgi_params.fastcgi.conf,两者唯一的区别是,fastcgi.conf 多一个参数 SCRIPT_FILE ...

  6. nginx常用代理配置

    因为业务系统需求,需要对web服务作nginx代理,在不断的尝试过程中,简单总结了一下常见的nginx代理配置. 1. 最简反向代理配置 在http节点下,使用upstream配置服务地址,使用ser ...

  7. Nginx 常用伪静态配置

    1. /a/b?c=d => index.php?_a=a&_m=b&c=d 2. /xxx/detail-yyy.html => index.php?_a=xxx& ...

  8. Nginx常用配置实例(4)

    Nginx作为一个HTTP服务器,在功能实现方面和性能方面都表现得非常卓越,完全可以与Apache相媲美,几乎可以实现Apache的所有功能,下面就介绍一些Nginx常用的配置实例,具体包含虚拟主机配 ...

  9. 轻量级HTTP服务器Nginx(常用配置实例)

    轻量级HTTP服务器Nginx(常用配置实例)   文章来源于南非蚂蚁   Nginx作为一个HTTP服务器,在功能实现方面和性能方面都表现得非常卓越,完全可以与Apache相媲美,几乎可以实现Apa ...

随机推荐

  1. SDUST数据结构 - chap8 查找

    选择题: 函数题: 6-1 二分查找: 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> #define MAXSIZE 10 ...

  2. python之格式化字符串速记整理

      一.格式化字符串的方式: 1.字符串表达式: 语法格式:'%s' % var 或 '%s %d' % (var1, var2) 说明:%s.%d等为格式类型说明符 例子: >>> ...

  3. from unittest import TestCase

    from unittest import TestCaseBigInteger/Big_Integer.py at master · YulitaGap/BigInteger https://gith ...

  4. 加密填补 填充 pad padding

    RFC 1423 - Privacy Enhancement for Internet Electronic Mail: Part III: Algorithms, Modes, and Identi ...

  5. Centos7部署FytSoa项目至Docker——第三步:部署程序

    FytSoa项目地址:https://gitee.com/feiyit/FytSoaCms 部署完成地址:http://82.156.127.60:8000/ 我买的是一年99标准型SA2云服务器 购 ...

  6. HTML5 学习表格应用

    <table> <tr> ---tr 定义行 <td>第1个单元格的内容</td> ----td 定义列 <td>第2个单元格的内容< ...

  7. 四:SpringBoot-定时任务和异步任务的使用方式

    SpringBoot-定时任务和异步任务的使用方式 1.定时任务 2.同步和异步 3.定时器的使用 3.1 定时器执行规则注解 3.2 定义时间打印定时器 3.3 启动类开启定时器注解 4.异步任务 ...

  8. Prometheus自定义监控内容

    Prometheus自定义监控内容 一.io.micrometer的使用 1.1 Counter 1.2 Gauge 1.3 Timer 1.4 Summary 二.扩展 相关内容原文地址: 博客园: ...

  9. JQuery——基本概念

    ###JQuery语法 格式:$(selector).action() 美元符号$本身是JQuery对象的缩写 选择符selector查询和查找HTML元素 Action执行对元素的操作 ###JQu ...

  10. kubenetes 相关命令(转载)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xingwangc2014/article/details/51204224好久没写博客了,前段时间公 ...