• Nginx反向代理使用【转载】


    最近工作中经常使用nginx,为了能够更好的使用nginx,我搜罗了很多nginx相关的技术文章来读,所以才有了下面以下内容。在此,为文中引用到和参考到的文章提供者表示感谢。如文中相关内容有错误,也欢迎大家留言提出。

    Nginx的安装与启动

    1)pcre安装,支持正则表达式

    http://www.pcre.org/

    # tar zxvf pcre-7.9.tar.gz

    # cd pcre-7.9

    #./configure

    # make && make install

    2)openssl安装(可选),支持安全协议的站点

    http://www.openssl.org/

    # tar zxvf openssl-0.9.8l.tar.gz

    # cd openssl-0.9.8l

    #./config

    # make && make install

    3)nginx的安装

    # tar zxvf nginx-0.7.64.tar.gz

    # cd nginx-0.7.64

    4)启动

    # cd usr/local/nginx/sbin

    # /nginx

    5)重启

    ./nginx -s reload

    Nginx.conf 基本配置

    #user nobody;

    worker_processes 1; #nginx进程数,建议设置为等于CPU总核心数。

    events {

    worker_connections 1024; #单个进程最大连接数(最大连接数=连接数*进程数)

    }

    http {

    include mime.types;#文件扩展名与文件类型映射表

    default_type application/octet-stream;#默认文件类型

    sendfile on;#sendfile on; #开启高效文件传输模式

    keepalive_timeout 60;#长连接超时时间,单位是秒

    #gzip模块设置(略)

    upstream blog.ha97.com {

    #upstream的负载均衡,weight是权重,可以根据机器配置定义权重

    #weigth参数表示权值,权值越高被分配到的几率越大。

    server 192.168.80.121:80 weight=3;

    server 192.168.80.122:80 weight=2;

    server 192.168.80.123:80 weight=3;

    }

    server {

    listen 80;

    server_name localhost;

    location / {

    proxy_pass http://192.168.24.152:8080/test1;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    location /test {

    proxy_pass http://192.168.24.152:8080/abc;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

    server{

    listen 8082;#监听端口

    server_name localhost;

    location / {

    proxy_pass http://192.168.24.152:8080/test1;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

    }

    Nginx.conf server配置说明

    1) server配置说明

    server {

    listen 80; #监听端口

    server_name localhost; #域名可以有多个,用空格隔开

    location / {

    proxy_pass http://192.168.24.152:8080/test1;

    proxy_set_header X-Real-IP $remote_addr;

    #把真实的IP发送给 转发的web服务器,否则转发的IP是nginx这台的IP

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    #意思是增加一个$proxy_add_x_forwarded_for到X-Forwarded-For里去

    #例X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3 代表 请求由1.1.1.1发出,

    #经过三层代理,#第一层是2.2.2.2,第二层是3.3.3.3,而本次请求的来源

    #IP4.4.4.4是第三层代理

    }

    }

    2)多个server配置,监听不同端口

    server { #server1

    listen 80;

    server_name localhost;

    location / {

    proxy_pass http://192.168.24.152:8080/test1;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

    server{ #server2

    listen 8082;#监听端口

    server_name localhost;

    location / {

    proxy_pass http://192.168.24.152:8080/test1;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

    server配置路径匹配问题

    Nginx location中可能涉及的匹配规则有:

    • = 精确匹配

    • ^~ 普通字符匹配,区分大小写

    • ~ 正则匹配,区分大小写

    • /xxx/yyy.zzz 最长匹配

    • /

    其优先级顺序如下:

    • =优先级大于^~

    • ^~优先级大于~

    • ~ 对比 /xxx/yyy.zzz

    • ^~优先级大于/xxx/yyy.zzz

    • ~优先级大于/

    • /xxx/yyy.zzz优先级大于/

    • /xxx/yyy/ 优先级大于 /xxx/

    综上所述location规则优先级顺序为 = > ^~ > ~ > /xxx/yyy.zzz > / ,路径匹配的优先级与location在文档中的位置先后无关。

    Nginx实现ssl反向代理

    server {

    listen 443; #监听443端口

    server_name localhost;

    ssl on; #启用ssl加密

    ssl_certificate /ect/cert/free4lab.crt; #服务器证书crt文件

    ssl_certificate_key /ect/cert/free4lab.key; #服务器私钥key文件

    location / {

    proxy_pass http://192.168.24.152:8080/test1;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

    转自:

    实战录 | 今天聊聊Nginx反向代理使用 - 今日头条(TouTiao.com)
    http://toutiao.com/a6309953445340594433/?tt_from=mobile_qq&utm_campaign=client_share&app=news_article&utm_source=mobile_qq&iid=4913332425&utm_medium=toutiao_ios

  • 相关阅读:
    VS2015复制VS2013的项目,编译报错
    Asp.Net MVC的几个文件上传方式
    一个基于Jquery的涂鸦插件
    Js 自定义日期格式的正则表达式验证
    无聊做的小游戏,斗牛.html
    MSSql Server 自定义导出
    Asp.Net Ambiguous match found 错误另一种解决方法
    韩天峰(Rango)推荐书目
    微信创建菜单报 must use utf-8 charset hint 错误
    InstallShield 2015 LimitedEdition VS2012 覆盖安装
  • 原文地址:https://www.cnblogs.com/paul8339/p/5694714.html
Copyright © 2020-2023  润新知