Nginx反向代理的配置

  • Chapter: Nginx基本操作释疑
  1. 1. Nginx的端口修改问题
  2. 2. Nginx 301重定向的配置
  3. 3. Windows下配置Nginx使之支持PHP
  4. 4. Linux下配置Nginx使之支持PHP
  5. 5. 以源码编译的方式安装PHP与php-fpm
  6. 6. Nginx多站点配置的一次实践
  7. 7. Nginx反向代理的配置

Nginx 作为 web 服务器一个重要的功能就是反向代理。其实我们在前面的一篇文章《Nginx多站点配置的一次实践》里,用的就是 Nginx 的反向代理,这里简单再提一下。

下面是配置 Nginx 作为 tornado 的反向代理的设置:

view source

print?

01 upstream tornado {
02     server 127.0.0.1:8888;
03 }
04   
05 server {
06     listen   80;
07     root /root/nmapp2_venv;
08     index index.py index.html;
09   
10     server_name server;
11   
12     location / {
13         #if (!-e $request_filename) {
14         #    rewrite ^/(.*)$ /index.py/$1 last;
15         #}
16     }
17   
18     location ~ /index\.py {
19         proxy_pass_header Server;
20         proxy_set_header Host $http_host;
21         proxy_set_header X-Real-IP $remote_addr;
22         proxy_set_header X-Scheme $scheme;
23         proxy_pass http://tornado;
24     }
25 }

Nginx 反向代理的指令不需要新增额外的模块,默认自带 proxy_pass 指令,只需要修改配置文件就可以实现反向代理。

再举一个例子吧。比如要配置后端跑 apache 服务的 ip 和端口,也就是说,我们的目标是实现通过 http://ip:port 能访问到你的网站。

只要新建一个 vhost.conf,加入如下内容(记得修改 ip 和域名为你的 ip 和域名)。修改nginx.conf,添加 include quancha.conf 到http{}段, reload nginx就可以了。

Nginx 反向代理模板:

view source

print?

01 ## Basic reverse proxy server ##
02 upstream apachephp  {
03     server ip:8080; #Apache
04 }
05   
06 ## Start www.nowamagic.net ##
07 server {
08     listen 80;
09     server_name  www.nowamagic.net;
10   
11     access_log  logs/quancha.access.log  main;
12     error_log  logs/quancha.error.log;
13     root   html;
14     index  index.html index.htm index.php;
15   
16     ## send request back to apache ##
17     location / {
18         proxy_pass  http://apachephp;
19   
20         #Proxy Settings
21         proxy_redirect     off;
22         proxy_set_header   Host             $host;
23         proxy_set_header   X-Real-IP        $remote_addr;
24         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
25         proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
26         proxy_max_temp_file_size 0;
27         proxy_connect_timeout      90;
28         proxy_send_timeout         90;
29         proxy_read_timeout         90;
30         proxy_buffer_size          4k;
31         proxy_buffers              4 32k;
32         proxy_busy_buffers_size    64k;
33         proxy_temp_file_write_size 64k;
34    }
35 }

这就完成了 Nginx 反向代理配置。

时间: 2024-10-21 08:01:42

Nginx反向代理的配置的相关文章

Nginx反向代理websocket配置实例

最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 复制代码 代码如下: 注: 看官方文档说 Nginx 在 1.3 以后的版本才支持 websocket 反向代理,所以要想使用支持 websocket 的功能,必须升级到 1.3 以后的版本,因此我这边是下载的 Tengine 的最新版本测试的 1.下载 tengine 最近的源码 复制代码 代码如下: wget http://tengine.taobao.org/dow

Nginx反向代理后配置404页面

关键词:proxy_intercept_errors.fastcgi_intercept_errors   在网上搜索404配置,有很多配置文章,但都是关于fastcgi_intercept_errors的,不过对我们的项目不起作用.我们的项目使用nginx做反向代理,通过域名区分不同的网站,配置fastcgi_intercept_errors不生效,需要配置proxy_intercept_errors.以下罗列出两种配置方式,供大家参考.   1.fastcgi_intercept_error

【netcore基础】ubuntu 16.04 搭建.net core 2.1 linux 运行环境 nginx反向代理 supervisor配置自启动

m今天来整理下netcore在linux(ubuntu)上的运行环境搭建 对应版本 ubuntu 16.04 .net core 2.1 nginx version: nginx/1.10.3 (Ubuntu) supervisor 配置开机重启服务自启动 Supervisorhttp://supervisord.org/是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统.它可以很方便的监听.启动.停止.重启一个或多

NGINX反向代理-LANMP配置

实验环境: NGINX                CentOS 7.2x86_64            IP:172.16.253.94 LAMP                 CentOS 6.7x86_64            IP:192.168.1.20 测试端              CentOS 7.2x86_64            IP:172.16.251.138 构建LAMP: [[email protected] ~]# iptables -F[[email 

nginx反向代理时配置访问密码

在有些情况下,我们需要对服务器上的某些资源进行限流或者禁止陌生人访问,我们可以通过nginx配置来对url添加访问密码. 效果如下 nginx 开启访问验证在 nginx 下,提供了 ngx_http_auth_basic_module 模块实现让用户只有输入正确的用户名密码才允许访问web内容.默认情况下,nginx 已经安装了该模块.所以整体的一个过程就是先用第三方工具( htpasswd,或者使用 openssl)设置用户名.密码(其中密码已经加过密),然后保存到文件中,接着在 nginx

nginx反向代理原理和配置讲解

最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡.所以搜罗了一些关于反向代理服务器的内容,整理综合. 一  概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器. 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接

nginx的反向代理和配置

最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡.所以搜罗了一些关于反向代理服务器的内容,整理综合. 一  概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器:并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器. 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接

搭建nginx反向代理用做内网域名转发

基于域名的7层转发的实现(NAT+反向代理) 在实际办公网中,因为出口IP只有一个,要实现对外提供服务的话就必须得做端口映射,如果有多个服务要对外开放的话,这只能通过映射不同端口来区分,这在实际使用过程中非常的痛苦(记忆困难.一一对应关系也没有规律.访问的时候还得加端口),这个痛苦的问题用表格的形式来形象的描述如下: Public IP Public Port Number Internal IP Internal Port Number Note 1.1.1.1 80 192.168.1.10

Nginx反向代理(基于目录动静分离、不同浏览器类型不同代理、基于扩展名的不同代理)

proxy_pass http_proxy_module proxy_pass指令输入ngx_http_proxy_module模块,此模块可以将请求转发到另外一台服务器 官网:http://nginx.org/en/docs/http/ngx_http_proxy_module.html =============================================== location /some/path/ { proxy_pass http://127.0.0.1; } ==