精华内容
下载资源
问答
  • nginx实现请求转发

    2020-09-30 07:19:13
    本文给大家分享的是使用nginx实现代理(请求转发)的教程及简单示例,非常实用,有需要的小伙伴可以参考下
  • 把这两个请求都统一用一个IP来完成,这时候就可以用nginx来做代理转发 注:如果你的是网关,也是一样的配置 配置nginx 1.下载nginx(在官网下载就行:http://nginx.org/en/download.html) 2.配置conf/nginx.conf...

    介绍情况

    现在有两个微服务,地址分别是:127.0.0.1:8181和127.0.0.1:8182
    要求:
    127.0.0.1:8181/bus1/1
    127.0.0.1:8182/bus2/2
    把这两个请求都统一用一个IP来完成,这时候就可以用nginx来做代理转发
    注:如果你的是网关,也是一样的配置

    配置nginx

    1.下载nginx(在官网下载就行:http://nginx.org/en/download.html)

    2.配置conf/nginx.conf文件

    http {
    	...
        server {
            listen       80;
            server_name  localhost;
    		#把127.0.0.1:80/bus1/xx的转发到http://127.0.0.1:8181
            location /bus1/ {
                proxy_pass http://127.0.0.1:8181;
            }
    		#把127.0.0.1:80/bus2/xx的转发到http://127.0.0.1:8182
    		location /bus2/ {
                proxy_pass http://127.0.0.1:8182;
            }
            ...
        }
    ...
    }
    

    3.重启nginx

    展开全文
  • nginx http请求转发到https请求

    千次阅读 2017-10-17 17:11:30
    这应该是大家最容易想到的方法,所有的http请求通过rewrite重写到https上即可 配置 server { listen 192.168.1.111:80; server_name test.com; rewrite ^(.*)$ https://$host$1
    nginx的rewrite方法
     
    思路
    这应该是大家最容易想到的方法,将所有的http请求通过rewrite重写到https上即可

    配置
    server {    
        listen  192.168.1.111:80;    
        server_name test.com;    
            
        rewrite ^(.*)$  https://$host$1 permanent;    
    }    

    搭建此虚拟主机完成后,就可以将http://test.com的请求全部重写到https://test.com上了
      

    nginx的497状态码
    error code 497
    497 - normal request was sent to HTTPS  
    解释:当此虚拟站点只允许https访问时,当用http访问时nginx会报出497错误码
    思路
    利用error_page命令将497状态码的链接重定向到https://test.com这个域名上
     
    配置
    server {    
        listen       192.168.1.11:443;  #ssl端口    
        listen       192.168.1.11:80;   #用户习惯用http访问,加上80,后面通过497状态码让它自动跳到443端口    
        server_name  test.com;    
        #为一个server{......}开启ssl支持    
        ssl                  on;    
        #指定PEM格式的证书文件     
        ssl_certificate      /etc/nginx/test.pem;     
        #指定PEM格式的私钥文件    
        ssl_certificate_key  /etc/nginx/test.key;    
            
        #让http请求重定向到https请求     
        error_page 497  https://$host$uri?$args;    
    }    



    index.html刷新网页
     
    思路
    上述两种方法均会耗费服务器的资源,我们用curl访问baidu.com试一下,看百度的公司是如何实现baidu.com向www.baidu.com的跳转

    可以看到百度很巧妙的利用meta的刷新作用,将baidu.com跳转到www.baidu.com.因此我们可以基于http://test.com的虚拟主机路径下也写一个index.html,内容就是http向https的跳转
     
    index.html
    <html>  
    <meta http-equiv="refresh" content="0;url=https://test.com/">  
    </html>  

    nginx虚拟主机配置
    server {    
        listen 192.168.1.11:80;    
        server_name test.com;    
            
        location / {    
                    #index.html放在虚拟主机监听的根目录下    
            root /srv/www/http.test.com/;    
        }    
            #将404的页面重定向到https的首页    
        error_page  404 https://test.com/;    
    }    



    展开全文
  • nginx实现tcp请求转发

    2020-06-05 16:52:59
    nginx实现tcp请求转发

    nginx实现tcp请求转发

    ps:nginx1.9以上版本中的stream模块支持tcp请求的转发

    • 编译安装nginx1.9
    wget http://nginx.org/download/nginx-1.9.10.tar.gz
    wget http://ftp.pcre.org/pub/pcre/pcre-8.37.zip
    tar zxvf nginx-1.9.10.tar.gz
    unzip pcre-8.37.zip
    cd nginx-1.9.10
    ./configure --user=www --group=www --prefix=/usr/local/nginx1.9.10 --with-http_sub_module --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-pcre=../pcre-8.37 --with-stream  --with-stream_ssl_module
    make && make install
    
    • 配置文件
    vim /usr/local/nginx1.9.10/conf/nginx.conf
    
    
    #user  nobody;
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    # 配置mysql转发
    stream {
      upstream local-mysql {
        server 127.0.0.1:3306;#这里还可以配置weight
        #server 127.0.0.1:28001;
      }
      server {
        listen 800;
        proxy_pass local-mysql;
      }
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       80;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ \.php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #    deny  all;
            #}
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
    
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    }
    

     

    • 启动nginx进程
    /usr/local/nginx1.9.10/sbin/nginx -c /usr/local/nginx1.9.10/conf/nginx.conf
    • 测试访问
       
    展开全文
  • nginx-请求转发

    2020-11-01 00:35:13
    一:反向代理服务器 1、请求转发 2、负载均衡 3、动静分离 ...三:配置nginx实现请求转发的功能 修改nginx.conf配置文件: 1、修改nginx默认窗口,把80修改81; 2、配置nginx转发规则: 3、总体配置

    一:反向代理服务器
    1、请求转发
    在这里插入图片描述

    2、负载均衡
    在这里插入图片描述

    3、动静分离

    二:启动nginx:
    1、使用cmd启动nginx(查看进程会有两个nginx.exe运行,这个其实是nginx多路复用,在linux系统上更能体现)
    在这里插入图片描述

    注意:如果关闭cmd窗口,nginx不会停止,只能手动停止。

    通过如下命令停止:

    ngnix.exe -s stop
    

    三:配置nginx实现请求转发的功能
    修改nginx.conf配置文件:
    1、修改nginx默认窗口,把80修改81;
    在这里插入图片描述
    2、配置nginx转发规则:
    在这里插入图片描述

    在这里插入图片描述

    3、总体配置如下:

    
    #user  nobody;
    
    #全局的,多路复用的效果
    worker_processes  1;
    
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #pid        logs/nginx.pid;
    
    
    events {
    	#最大连接数
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
    
        server {
            listen       81;
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
    
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            # proxy the PHP scripts to Apache listening on 127.0.0.1:80
            #
            #location ~ \.php$ {
            #    proxy_pass   http://127.0.0.1;
            #}
    
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            #location ~ \.php$ {
            #    root           html;
            #    fastcgi_pass   127.0.0.1:9000;
            #    fastcgi_index  index.php;
            #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            #    include        fastcgi_params;
            #}
    
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #    deny  all;
            #}
        }
    
    
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    
    
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
    
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
    
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
    
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
    
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
    	
    	server {
    		#监听端口
            listen       9001;
    		#主机名称
            server_name  localhost;
    		#请求转发规则:转发到以/eduservice开始的路径(controller的requestMapping)~·:表示正则匹配,表示含有,如果没有‘~’则表示完全匹配,这时候路径要完全相等才能匹配
    		location ~ /eduservice {
    			#转发服务地址
                proxy_pass   http://localhost:8001;
            }
    		location ~ /eduoss {
                proxy_pass   http://localhost:8002;
            }
        }
    
    }
    
    
    展开全文
  • Nginx实现请求转发

    千次阅读 2020-06-28 23:34:15
    什么是请求转发? 环境配置 到官网下载nginx,这里使用的windows版本,最好使用Linux版本(性能好) 把下载好的文件解压,在Nginx.conf进行配置 (1)修改Nginx默认端口,把80修改为81 listen 81; server_name ...
  • nginx查看请求转发到哪台服务器

    万次阅读 2018-06-11 11:01:00
    使用Nginx代理多台服务器实行负载的时候,如何查看某一个请求转发到哪台服务器上呢?upstream demo { server 127.0.0.1:8781; server 127.0.0.1:8087;}加上如下红色配置: server { listen 80; server_name ...
  • 使用Nginx代理多台服务器实行负载的时候,如何查看某一个请求转发到哪台服务器上呢? 1. nginx 反向代理配置如下:nginx.conf upstream myserver { server 192.168.0.1:9000 weight=1; server 192.168.0.2:...
  • Nginx配置TCP请求转发

    千次阅读 2018-01-10 11:39:13
    ...Nginx配置TCP请求转发 1.TCP请求转发基于stream在1.9版本前,需要单独编译安装该组建: # 依赖服务 [root@baolin conf]#yum -y install pcre-devel openssl openssl-devel library
  • nginx 请求转发

    千次阅读 2019-09-16 16:09:46
    前言 建国日来了,网站安全 开始审查了。之前我们的项目 是通过 ip + port 直接访问tomcat的,内部使用嘛。... 现在访问模式 是 客户端 -->...设置 nginx 请求转发 server { # listen 80 ; ...
  • Nginx请求转发&端口转发

    千次阅读 2020-06-28 19:30:32
    负载均衡,nginx转发一般都属于反向代理。 nginx反向代理 官网介绍:https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/ https://ptsv2.com/s/whatisthis.html https://pt
  • nginx 配置请求转发 和 负载均衡

    万次阅读 2017-11-08 17:31:27
    这里没有安装Nginx的朋友请移步:http://blog.csdn.net/qq_27292113/article/details/78189500 1、nginx 配置请求转发 找到自己安装目录下的 nginx.conf 文件 找到 server { listen 80; server_name localhost;
  • 前后端分离利用nginx转发请求后台接口地址

    万次阅读 多人点赞 2019-06-13 15:45:32
    2、假设我们的后台API地址是以API开头,location ^~ /api/ 代表nginx将会拦截请求地址中包含"/api/"字样的请求,其实这就是我们的ajax请求路径,拦截到请求之后根据写法会分成两种情况把这个请求转发到 下面 proxy_...
  • 现象:系统大部分功能访问正常,只有部分功能出现问题,总结发现,出现问题的功能都是用response.sendRedirect()请求转发的,进一步监控请求。发现 系统域名 www.xxx.com,被转发后变成www.xxx.com:was端口号。。...
  • 当我在浏览器输入bbs.etiantian.org时第一次负载均均衡把请求转发给172.16.247.130 服务器处理。 由于论坛程序还有图片所以再次发起请求,但是这次却不是转发给172.16.247.130服务器了 这个问题该怎么解决。。。 ...
  • nginx实现请求转发例子

    千次阅读 2019-09-14 08:40:41
    反向代理适用于很多场合,负载均衡是最普遍的用法。 ...nginx反向代理官方文档:NGINX REVERSE PROXY 当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,...
  • nginx转发请求后台接口地址

    千次阅读 2019-08-06 13:41:58
    https://blog.csdn.net/cjd6568358/article/details/51871039
  • nginx 请求头host转发规则

    千次阅读 2020-04-28 11:51:43
    默认值,固定使用虚拟主机域名 proxy_set_header Host $proxy_host; 例如,以下情况host=server1 ...请求包含“Host”请求头时为“Host”字段的值,在请求未携带“Host”请求头时为虚拟主机域名 不传递ho...
  • 主要给大家介绍了一次关于nginx实现根据URL转发请求的实战经历,文中通过示例代码介绍的非常详细,对大家学习或者使用nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • nginx不同的请求转发到不同的服务

    千次阅读 2019-10-29 09:35:30
    server { listen 80; server_name 127.0.0.1; access_log logs/book.log; error_log logs/book.error;... #/wx-service请求转发给http://127.0.0.1:8011/wx-service处理 location /wx-servi...
  • nginx 转发请求超时

    千次阅读 2017-11-28 18:55:10
    修改nginx 配置文件/etc/nginx/nginx.conf 添加: proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; keepalive_timeout 300; fastcgi_connect_time
  • nginx请求转发算法

    2018-11-14 15:55:27
    1、轮询;2、权重;3、ip hash(解决session问题);4、url hash(同一台服务器);5、fair (服务器响应时间短的,优先分配)
  • nginx实现请求转发方法如下:

    千次阅读 2019-01-23 16:41:57
    反向代理适用于很多场合,负载... 当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx 在80端口监听所有请求,并依据转发规则(比较...
  • 反向代理适用于很多场合,负载... 当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx 在80端口监听所有请求,并依据转发规则(比较...
  • nginx转发请求导致参数丢失

    万次阅读 2019-05-14 14:00:13
    在使用nginx转发请求时,发现get请求获取不到请求的参数 ...配置这样且每次请求的主机域名和ip都为127.0.0.1,无法获取到实际请求的数据,nginx转发的时候会自动消息头中的 Host和X-Real-IP设置为本地的127.0.0....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,788
精华内容 29,915
关键字:

nginx将请求地址转发