nginx反向代理配置及常见指令
nginx配置文件: /usr/local/nginx1.16.1/conf/nginx.conf
nginx.conf默认的server配置:
server{
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
}
配置location时,优先配置子目录,最后是默认根目录。比如下面,先配置/ent-boot/,这样,如果用户的请求地址是/ent-boot/这个路径,nginx当扫描到这个/ent-boot/后,就直接做转发不再继续扫描配置了。
其中,proxy_pass:表示代理转发,将请求转发到指定的url上。
server {
listen 9999;
server_name localhost;
location /ent-boot/ {
proxy_pass http://192.168.40.84:8802/ent-boot/;
}
location / {
root /www/front/;
index index.html index.htm;
}
}
proxy_pass指令用于设置被代理服务器的地址。可以是主机名称、IP地址加端口号的形式。
例如如下配置:
server {
listen 80;
server_name buguge.com www.buguge.com;
location /proxy/ {
proxy_pass ***;
}
}
当访问 http://buguge.com/news/a.html 时,
- proxy_pass: http://127.0.0.1:9999/; #则,代理到URL: → http://127.0.0.1:9999/a.html
- proxy_pass: http://127.0.0.1:9999; #则,代理到URL: → http://127.0.0.1:9999/news/a.html
- proxy_pass: http://127.0.0.1:9999/article/; #则,代理到URL: → http://127.0.0.1:9999/p/a.html
- proxy_pass: http://127.0.0.1:9999/article; #则,代理到URL: → http://127.0.0.1:9999/articlea.html
为了方便记忆和规范配置,建议所有的 proxy_pass 后的url都以“/”结尾。参考:https://www.cnblogs.com/yyxianren/p/10831511.html
如果反向代理到别的域名的网站上,要指定请求头的Host的值为那个域名,否则会导致代理出现死循环。参考:https://blog.csdn.net/bowei026/article/details/90417914
要实现负载均衡,要使用upstream指令。
upstream emei_server {
ip_hash;
server 10.0.2.75:9083 weight=10 max_fails=0;
server 10.0.2.76:9083 weight=10 max_fails=0;
}
server{
...
location / {
proxy_pass http://emei_server;
proxy_set_header Host $host;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header remote-addr $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
client_body_buffer_size 512k;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffers 4 256k;
proxy_buffer_size 256k;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504 http_404;
proxy_busy_buffers_size 256k;
}
}
ip_hash:可以确保访问一个被同一台服务器处理, 除非分配的server宕机。 如果宕机 则请求被发往其他的机器。适用于需要登录并且session仅保存在自己节点里的站点。
参考:Nginx的upstream反向代理、负载均衡详解 https://www.cnblogs.com/hoaprox/p/10132409.html
nginx负载均衡的策略有轮询、权重轮询、ip_hash、url_hash等。参考:nginx配置-upstream https://www.jianshu.com/p/ab7cf5484e8f
nginx反向代理配置及常见指令的更多相关文章
- nginx反向代理配置及优化
nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...
- nginx反向代理配置实例分享
nginx反向代理配置一例. 配置内容如下: user www www; worker_processes 8; error_log /usr/local/webserver/nginx/logs/n ...
- nginx之旅(第三篇):代理、正向代理、反向代理、代理的原理、nginx反向代理场景、nginx反向代理配置、nginx反向代理语法
一.代理服务与反向代理 什么是代理服务 代理-代理办理(代理理财.代理收货.代理购物等等). 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正向代理(forw ...
- nginx反向代理配置
最近在项目中使用nginx反向代理,根据不同的请求路径,将请求分发到不同服务.下面的示例主要完成如下功能 /prod/路径的请求分发到prod服务 /test/路径的请求分发到test服务 创建文件夹 ...
- nginx 反向代理配置(二)
上一篇文章主要是对 nginx 各个模块做了一个介绍,以及对什么是反向代理在文章开头做了一个简单介绍,这篇文章我们主要来看下如何进行 nginx 反向代理的配置 proxy 模块 nginx ...
- nginx 反向代理配置(一)
文章参考:https://blog.csdn.net/physicsdandan/article/details/45667357 什么是代理? 代理在普通生活中的意义就是本来 ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- Nginx反向代理配置可跨域
由于业务需要,同一项目中的前端代码放在静态环境中,而后端代码放在tomcat中,但此时问题却出现了:前端使用ajax请求后端获取数据时出现如下报错 XMLHttpRequest cannot load ...
- Nginx反向代理配置配置实例
为了节省支出,公司需要将分布在不同机器的站点都迁移到一台机器,而目前不同机器运行的是不同的web服务,部分是nginx,部分是apache,由于牵涉较多rewrite规则,为了节省修改功夫,打算迁移后 ...
随机推荐
- Selenium原理
from selenium import webdriver:导入webdriver模块 当导入webdriver模块时,会执行\selenium\webdriver目录下的__init__.py ...
- 3ds Max File Format (Part 3: The department of redundancy department; Config)
Now we'll have a look at the Config stream. It begins like follows, and goes on forever with various ...
- EasyExcel实现导入excel
https://blog.csdn.net/rexueqingchun/article/details/91870372 1.pom.xml配置依赖包 <!-- xls格式excel依赖包 -- ...
- vue -bug1
打包问题: 1.在终端用 npm run build 如果想要在本地资源也能访问 2.npm install -g http-server 3.配置好如下 3.1 config->index. ...
- 集成unittest做接口测试
unittest接口测试 上篇已经讲了接口测试的做法,利用的是postman工具,工具始终是工具,它有一定的局限性,比如测试数据的存放,断言的方法以及上下接口关联使用灵活性.python对http接口 ...
- IntelliJ IDEA 2017.3-----导入jar包
1.选择jar包 2.右键选择 3.点击ok
- OpenCV之Core组件进阶
颜色空间缩减 利用C++类型转换时向下取整操作,实现定义域内颜色缩减.表达式如下 Inew = (Iold/10)*10 简单的颜色空间缩减算法可由以下两步组成: (1)遍历图像矩阵的每个元素 (2) ...
- Ninject 2.x细说---1.基本使用
Ninject 2.x细说---1.基本使用 https://blog.csdn.net/weixin_33809981/article/details/86091159 本来想使用一下Ninje ...
- Linux - Shell - cut: 低配 awk
概述 简述 shell 命令行工具 cut 背景 偶尔需要用 awk 来筛选特定的列 awk 很是强大 但是强大的背后, 却伴随着复杂 其实同样的功能, awk 也没有复杂多少 如果是 简单的任务, ...
- Lose it!
You are given an array aa consisting of nn integers. Each aiai is one of the six following numbers: ...