作者

微信: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. 免安装的tomcat转服务

    一:确保tomcat 在点击bin\startup 文件可以正常启动访问: 二:本机安装有JDK: 三:本机环境变量配置:JAVA_HOME:C:\Java\jdk1.7.0_17; 四:本机Tomc ...

  2. 快速排序与荷兰国旗及Partition问题

    快速排序与荷兰国旗及Partition问题 需求: 1.Partition过程 给定一个数组arr,和一个整数num.请把小于等于num的数放在数组的左边,大于num的数放在数组的右边. 要求额外空间 ...

  3. MySQL之谓词下推

    MySQL之谓词下推 什么是谓词 在SQL中,谓词就是返回boolean值即true或者false的函数,或是隐式转换为boolean的函数.SQL中的谓词主要有 LKIE.BETWEEN.IS NU ...

  4. (万字好文)Dubbo服务熔断与降级的深入讲解&代码实战

    原文链接:(万字好文)Dubbo服务熔断与降级的深入讲解&代码实战 一.Dubbo服务降级实战 1 mock 机制 谈到服务降级,Dubbo 本身就提供了服务降级的机制:而 Dubbo 的服务 ...

  5. CF42A

    题意 给定两个序列 a 和 b. 序列 a 中的各个数之间的比例可以得出一个 x . 当 b 中比例满足 a 中比例,即 \(b_1\):\(b_2\):\(b_3\)-- \(=\) \(a_1\) ...

  6. 【Android初级】教你用两行代码实现“显示/隐藏密码”的效果

    Android里面要使用密码的场景是非常多的,支付宝.微信.淘宝以及各大银行APP,都跟用户的密码有关.用户的密码是极为隐私的,用户在输入时不希望密码被别人看到,所以几乎所有需要输入密码的场景下都会把 ...

  7. hashCode、equals详解

    hash和hash表是什么? hash是一个函数,该函数中的实现就是一种算法,就是通过一系列的算法来得到一个hash值,这个时候,我们就需要知道另一个东西,hash表,通过hash算法得到的hash值 ...

  8. cocos2d-x 调试问题

    1.昨天一个新功能,在xcode模拟器上测试没问题.后来打包安卓后,一直有问题 就又添加日志功能 #   define CCLOGFUNC(s)                             ...

  9. Spring3文件上传,提速你的Web开发

    Spring1 推出的时候可以说是不小的颠覆了J2EE 的开发,彻底把EJB打败,将J2EE开发进行简化,Spring2 推出以后完美的与多种开源框架与服务器的结合,让你对其拥抱的更紧,Spring变 ...

  10. Java POI 导出EXCEL经典实现

    import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; i ...