nginx如何配置代理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx如何配置代理相关的知识,希望对你有一定的参考价值。

参考技术A nginx源码: https://trac.nginx.org/nginx/browser

nginx官网: http://www.nginx.org/

... #全局块

events #events块

...



http #http块





1、全局块:全局模块影响nginx的全局指令,一般有运行nginx服务器的用户,nginx进程pid存放路劲,日志存放路径,配置文件引入,允许生成worker,process数。

2、events块:配置影响nginx服务器或与用户的网络连接, ,有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个连接,开启多个网络连接序列化。

3、http块:可以嵌套多个server,配置代理,缓存

4、server块:配置虚拟主机参数,一个http中有多个server

5、location块:配置请求的路由。

########### 每个指令必须有分号结束。#################

error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:

debug|info|notice|warn|error|crit|alert|emerg

events

http



四、nginx的简单命令

五、配置解析

server

1、location 支持配置项目的绝对路径

2、假设我们的后台API地址是以API开头,location ^~ /user/ 代表nginx将会拦截请求地址中包含"/user/"字样的请求,其实这就是我们的ajax请求路径,拦截到请求之后根据写法会分成两种情况把这个请求转发到 下面 proxy_pass 的地址上。

举个例子:

a、如上图,如果proxy_pass 的URL以 / 结尾 ,那么请求转发的时候 将 不会 带上 匹配到的 /api/ ,也就是说如果 登录请求 URL是 localhost:80/user/login,proxy_pass URL 是 http://a.xx.com:8080/platform/, Nginx将会 把这个请求转发成 http://a.xx.com:8080/platform/user/login

b、如果proxy_pass 的URL不以 / 结尾 ,那么请求转发的时候 将 会带上 匹配到的 /user/ ,也就是说如果 登录请求 URL是 localhost:60001/user/login,proxy_pass URL 是 http://a.xx.com:8080/platform/, Nginx将会 把这个请求转发成 http://a.xx.com:8080/user/login

3、一般我们登录之后服务器会通过Set-Cookie把token写回到我们本地,如果不设置 proxy_cookie_path 的话,服务器Set-Cookie命令会失效,本地存不了cookie,从而导致token丢失。

这里proxy_cookie_path有一点需要注意的是 如果 proxy_pass URL 是 http://a.xx.com:8080/user/ 这种情况 proxy_cookie_path应该设置成 /platform/ / (注意两个斜杠之间有空格)。

如果 proxy_pass URL 是 http://a.xx.com:8080/这种情况 proxy_cookie_path应该设置成 / / (注意两个斜杠之间有空格)

语法规则:location [=| | *|^~] /uri/ …

如何使用nginx设定反向代理

参考技术A 如何使用nginx设定反向代理 修改部署目录下conf子目录的nginx.conf档案(如nginx-1.5.13\conf\nginx.conf)内容,可调整相关配置。
反向代理配置示例:
location / #设定主机头和客户端真实地址,以便伺服器获取客户端真实IP proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #禁用快取 proxy_buffering off; #设定反向代理的地址 proxy_pass :192.168.1.1;
代理地址根据实际情况修改。
如何使用Nginx反向代理使用SSL配置Jenkins
根据ssl.key和ssl.crt部署nginx
首先nginx需要支援ssl_module,然后修改nginx.conf如下
server
listen 443;
server_name localhost;
ssl on;
ssl_certificate /opt/tengine/conf/ssl/free4lab.crt;
ssl_certificate_key /opt/tengine/conf/ssl/free4lab_nopass.key;
ssl_session_timeout 5m;

在相应的位置放置crt档案和key档案,注意到这边的key是nopassword的,就是重启nginx的时候,不需要输入密码。
free4lab_nopass.key是根据free4lab.key生成的,生成命令如下

该模组支援标准的 IEEE802.11 b/g/n 协议,完整的 TCP/IP 协议栈。使用者可以使用该模组为现有的装置新增联网功能,也可以构建独立的网路控制器
如何使用webpack-dev-server做反向代理
并没有这个引数你得再 entry 加入如下 var config = require("./webpack.config.js"); config.entry.app.unshift("webpack-dev-server/client?:localhost:8080"); var piler = webpack(config); var server = new webpackDevServer(...
CentOS 6.5 下 如何使用Squid 实现反向代理?
全部的squid配置大部分网上都能搜到.
关键的配置是下面一句.
cache_peer 127.0.0.1 parent 8080 0 no-query no-digest
意思就是把你的本机127.0.0.1作为你的上级伺服器.
如何使用apache的反向代理改写url绝对路径
页面原始码中的相对路径都正常. 但页面原始码中有部分连结是写成了绝对路径,那么滑鼠放到连结上时显示的路径仍然是0.92/.,那么访问这个连结时就直接去访问0.92了,而不是
如何使用Weave以及Docker搭建Nginx反向代理/负载均衡伺服器
Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡伺服器。Weave 可以建立一个虚拟网路将 Docker 容器彼此连线在一起,支援跨主机部署及自动发现。它可以让我们更加专注于应用的开发,而不是基础架构。Weave 提供了一个如此棒的环境,仿佛它的所有容器都属于同个网路,不需要埠/对映/连线等的配置。容器中的应用提供的服务在 weave 网路中可以轻易地被外部世界访问,不论你的容器执行在哪里。在这个教程里我们将会使用 weave 快速并且简单地将 nginx web 伺服器部署为一个负载均衡器,反向代理一个执行在 Amazon Web Services 里面多个节点上的 docker 容器中的简单 php 应用。这里我们将会介绍 WeaveDNS,它提供一个不需要改变程式码就可以让容器利用主机名找到的简单方式,并且能够让其他容器通过主机名连线彼此。

以上是关于nginx如何配置代理的主要内容,如果未能解决你的问题,请参考以下文章

Nginx总结如何配置Nginx和Tomcat实现反向代理

nginx如何配置多IP的HTTP正向代理?

设置好 NGINX 反向代理后,如何在引入 NGINX 反向代理的 NGINX 上配置 SSL 直通? [复制]

nginx的反向代理配置

如何在 CentOS 7 用 cPanel 配置 Nginx 反向代理

vue项目nginx必备配置-----API 接口代理