• [Nginx]安装配置反向代理


      今天在腾讯云上的服务器因为没备案不让域名访问了,最开始想去做备案迁移,把阿里的备案迁移到腾讯了,但是发现求别人做事儿好麻烦,干脆自己弄个反向代理就好了,写个帖子纪录一下。

    1.安装Ngix
    2.Nginx命令
    3.配置反向代理
    4.配置负载均衡

      介绍一下我的环境:Linux系统Centos 64位   nginx-1.5.9  httpd2.1

    1.先在阿里的服务器上安装Nginx。

    这里是借鉴:点击这里 这篇文章安装的,里面有一个小小的问题,我等下到了那一步详细说。

    第一步:从http://nginx.org/download/上下载相应的版本(或者wget http://nginx.org/download/nginx-1.5.9.tar.gz直接在Linux上用命令下载)

    wget http://nginx.org/download/nginx-1.5.9.tar.gz

    第二步:解压 tar -zxvf nginx-1.5.9.tar.gz

    tar -zxvf nginx-1.5.9.tar.gz
    cd nginx-1.5.9

    第三步:设置一下配置信息 ./configure --prefix=/usr/local/nginx ,或者不执行此步,直接默认配置(这里没错,这是最后安装的路径)

    ./configure --prefix=/usr/local/nginx

    第四步:

    make 编译 (make的过程是把各种语言写的源码文件,变成可执行文件和各种库文件)

    make install 安装 (make install是把这些编译出来的可执行文件和库文件复制到合适的地方)

    make
    make install

    在配置信息的时候,也就是在第三步,出现了一下错误(我的环境没有报错,但我也同样贴出来,我的是集成环境):

    错误为:./configure: error: the HTTP rewrite module requires the PCRE library.

    安装pcre-devel解决问题

    yum -y install pcre-devel

    还有可能出现:

    错误提示:./configure: error: the HTTP cache module requires md5 functions
    from OpenSSL library. You can either disable the module by using
    --without-http-cache option, or install the OpenSSL library into the system,
    or build the OpenSSL library statically from the source with nginx by using
    --with-http_ssl_module --with-openssl=<path> options.

    解决办法:

    yum -y install openssl openssl-devel 

    2.安装后在linux下启动和关闭nginx:

    启动操作(错误从这里开始,原文:/usr/nginx/sbin/nginx:,可能笔者这里路径没有问题,但是不太可能把,在configure的时候指向的是/usr/loacl/nginx)

    /usr/local/nginx/sbin/nginx (/usr/local/nginx/sbin/nginx -t 查看配置信息是否正确)

    停止操作
    停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的
    步骤1:查询nginx主进程号

    ps -ef | grep nginx

    在进程列表里 面找master进程,它的编号就是主进程号了。
    步骤2:发送信号
    从容停止Nginx:

    kill -QUIT 主进程号

    快速停止Nginx:

    kill -TERM 主进程号

    强制停止Nginx:

    pkill -9 nginx

    另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:

    kill -信号类型 '/usr/local/nginx/logs/nginx.pid'

    平滑重启
    如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
    平滑重启命令:
    kill -HUP 住进称号或进程号文件路径
    或者使用

    /usr/local/nginx/sbin/nginx -s reload 

    注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:

    nginx -t -c /usr/local/nginx/conf/nginx.conf

    或者

    /usr/nginx/local/sbin/nginx -t

    如果成功入下图片:

    3 4.配置反向代理
       这部分我是参考:点击这里 这篇博客和我另外一个JAVA环境服务器上的Nginx的配置,我把我的贴出来把通配符的部分标注出来。

    #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可以写多个,在这里加个参数就是负载均衡了(这只是最基础的配法)。
    upstream tencnt { server 182.119.120.110:8989;
         #这里weight 表示优先级,导致的结果就是 112的访问量比111多一倍 注意分号
         #server 182.119.120.111:8899 weight=5;
         #server 182.119.120.112:8899 weight=10;
    } server { listen 80;
         #名字可以修改对配置不会有影响
    server_name localhost; #charset koi8-r; #access_log logs/host.access.log main;      #匹配那些请求是被拦截的,tencnt 是上面配置的名字,你可以改成你自己的,我这里因为是链接上腾讯的服务器就写了这个,其他都比较好懂了,再下面的是一些默认配置,删除不会影响,从#Proxy Settings开始
            location ~ .* {
            proxy_pass  http://tencnt;
                root   html;
                index  index.html index.htm;
    
            #Proxy Settings
            proxy_redirect     off;
            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_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_max_temp_file_size 0;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
            }
    
            #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;
            }
        }
    }

    重启你的服务器看看OK了没有。

    我写的这个能帮助你实现功能,仅供配置参考,深入学习你需要去看其他的资料。

    感谢两位的博客:
    http://www.cnblogs.com/kunhu/p/3633002.html
    http://www.nowamagic.net/academy/detail/1226280

  • 相关阅读:
    nginx 代理概念理解
    nginx反向代理(proxy_pass)tomcat的过程中,session失效的问题解决
    Mybatis-Generator 详解 http://www.cnblogs.com/jtzfeng/p/5254798.html
    web容器线程数和程序中线程阻塞导致 请求超时
    教程-Delphi操作快捷键
    PC-博客首页中增加必应或GOOGLE搜索功能
    PC-大概最全的黑客工具表了
    PC-计算机动行命令里的密密!系统管理程序!
    PC-红警联机问题与下载
    PC-破解RAR软件注册问题
  • 原文地址:https://www.cnblogs.com/flyingMonkey/p/5169858.html
Copyright © 2020-2023  润新知