2.了解nginx常用的配置
作者
微信: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常用的配置的更多相关文章
- Nginx常用功能配置二
Nginx常用功能配置二 Nginx location匹配设置 location作用:可以根据用户请求的URI来执行不同的应用,根据用户请求的网站的地址URL匹配. location语法: locat ...
- Nginx常用功能配置一
Nginx常用功能配置 参数include配置 说明:如果日常工作中server标签存在太多,可以采用include配置模式,Nginx的主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目 ...
- nginx常用服务配置
一.nginx.conf的配置方式,创建新vhost user nginx; worker_processes ; worker_cpu_affinity ; worker_rlimit_nofile ...
- nginx常用功能配置
一.规范优化nginx配置文件 nginx的主配置文件为nginx.conf,主配置文件包含的所有虚拟主机的子配置文件会统一放入extra目录中,虚拟主机的配置文件按照网站的域名或功能取名,例如www ...
- 大神教你Nginx常用基础配置方案
Nginx的fastcgi模块参数设置 Nginx 有两个配置文件fastcgi_params.fastcgi.conf,两者唯一的区别是,fastcgi.conf 多一个参数 SCRIPT_FILE ...
- nginx常用代理配置
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试过程中,简单总结了一下常见的nginx代理配置. 1. 最简反向代理配置 在http节点下,使用upstream配置服务地址,使用ser ...
- Nginx 常用伪静态配置
1. /a/b?c=d => index.php?_a=a&_m=b&c=d 2. /xxx/detail-yyy.html => index.php?_a=xxx& ...
- Nginx常用配置实例(4)
Nginx作为一个HTTP服务器,在功能实现方面和性能方面都表现得非常卓越,完全可以与Apache相媲美,几乎可以实现Apache的所有功能,下面就介绍一些Nginx常用的配置实例,具体包含虚拟主机配 ...
- 轻量级HTTP服务器Nginx(常用配置实例)
轻量级HTTP服务器Nginx(常用配置实例) 文章来源于南非蚂蚁 Nginx作为一个HTTP服务器,在功能实现方面和性能方面都表现得非常卓越,完全可以与Apache相媲美,几乎可以实现Apa ...
随机推荐
- ctfhub技能树—文件上传—00截断
什么是00截断 相关教程:http://www.admintony.com/%E5%85%B3%E4%BA%8E%E4%B8%8A%E4%BC%A0%E4%B8%AD%E7%9A%8400%E6%88 ...
- VB基础总结
前段时间用VB写了一个简单窗口小应用,久了不碰VB,都忘了,下面用思维导图简单总结了一些基础的东西,方便以后快速查阅.
- 如何创建一个 PostgreSQL 数据库?
PostgreSQL 官网截图 PostgreSQL 是什么? PostgreSQL 是一个功能非常强大的,历史悠久,开源的关系数据库.PostgreSQL支持大部分的SQL标准并且提供了很多其他现代 ...
- 1.5V升压3V集成电路升压芯片
干电池1.5V升压3V的升压芯片,适用于干电池升压产品输出3V供电 1.5V输入时,输出3V,电流可达500MA. PW5100是一款效率大.10uA低功耗 PW5100输入电压:0.7V-5V PW ...
- 迈凯伦765LT/600LT/720S/650S/570S维修手册电路图Mclaren车间手册接线图
全套迈凯伦维修手册电路图Mclaren车间手册线路图:语言:English,German,French,Spanish,Chinese,Japanese.McLaren迈凯伦新GT维修手册电路图零配件 ...
- ovsdb-client命令
ovsdb-server 的命令行接口. 查看有哪些数据库: ovsdb-client list-dbs [server] 查看数据库 schema: ovsdb-client get-schema ...
- 3、剑指offer-数组——数组中重复的数字
*题目描述* **在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输 ...
- 原生js使用面向对象的方法开发选项卡实例教程
本教程通过js面向对象的方法来封装一个选项卡的实例,在实例中讲解js的面向对象如何实现功能. 一般封装好的选项卡程序,只需要一个div元素即可.其它元素都是通过json数据来生成,所以封装好的选项卡实 ...
- 内存屏障在CPU、JVM、JDK中的实现
前言 内存屏障(英语:Memory barrier),也称内存栅栏,内存栅障,屏障指令等,是一类同步屏障指令,它使得 CPU 或编译器在对内存进行操作的时候, 严格按照一定的顺序来执行, 也就是说在内 ...
- 最短路-Bellmm-ford算法
Bellmm-ford算法 解决什么样的问题 有边数限制的最短路,存在负权边,负环 概念 通俗的来讲就是:假设 1 号点到 n 号点是可达的,每一个点同时向指向的方向出发,更新相邻的点的最短距离,通过 ...