• Nginx 在 Linux 上的安装和配置


    一、Nginx的安装

    1、单台Nginx的安装

    Nginx在Linux上的安装可以参考这篇博客:http://blog.csdn.net/molingduzun123/article/details/51850925

    安装prce的过程中可能会报没有C++编译环境,configure: error: You need a C++ compiler for C++ support.

    解决办法,使用yum安装

    yum -y install gcc-c++

    补充一下:在centos7上其实可以直接安装Nginx,会默认使用的是系统的pcre和zlib,

    所以,直接使用了下面命令就行:

    tar -zxvf nginx-1.11.5.tar.gz
    cd nginx-1.11.5
    ./configure
    make && make install

    2、多台Nginx的安装

    在linux下安装nginx的时候,一般在./configure的阶段会要求通过prefix设置安装路径。如果不指定prefix就会默认安装在/usr/local/目录下。

    因此,在./configure的时候指定不同的prefix就可以安装多个nginx啦。

    ./configure --prefix=/home/work/nginx1   
    make && make install
    ./configure --prefix=/home/work/nginx2
    make && make install

    值得注意的是,安装完之后,两个nginx的监听端口要设置成不同的监听端口。否则,会有一个nginx无法启动。

    3Nginx相关命令

    启动:

    /usr/local/nginx/sbin/nginx

    停止:

    查看nginx进程号  ps -ef|grep nginx

    杀主进程号,就是那个master,直接执行  kill -quit xxxx

    查看nginx安装路径   whereis nginx

    二、Nginx的配置

    安装Nginx时如果没有指定安装路径的话,会默认安装在/usr/local/

    我们执行默认的安装,所以Nginx的配置都是通过/usr/local/nginx/conf/nginx.conf文件进行配置的。

    以下的配置都是通过修改nginx.conf文件实现的。

    1、配置根目录

    修改根目录和欢迎页,就是输入IP能直接访问的目录和页面。

    这里把原来配置文件中的。

    root后面的内容改为/home/mytest/

    index后面的内容修改为login.html

    让浏览器默认访问地址为/home/mytest/目录下的login.html页面。

    location / {
           root   /home/mytest/;
           index  login.html;
    }

    重启nginx再访问,如果访问提示 Nginx 403 Forbidden,需要在nginx.conf头部加入一行user root; 重启nginx再访问,就可以正常访问了。

    2、配置负载均衡

    首先需要在http里面添加一个集群upstream

    #服务器的集群  
    upstream  cluster{  #服务器集群名字   
            server    127.0.0.1:8079  weight=1;#服务器配置   weight是权重的意思,权重越大,分配到的概率就越大。  
            server    127.0.0.1:8078  weight=1;
    } 

    这里还可以添加失败重试配置,修改为

    upstream  cluster{
            server    127.0.0.1:8079  weight=1 max_fails=2 fail_timeout=60s;
            server    127.0.0.1:8078  weight=1 max_fails=2 fail_timeout=60s;
    } 

    意思是在fail_timeout时间内失败了max_fails次请求后,则认为该上游服务器不可用,然后将该服务地址踢除掉。fail_timeout时间后会再次将该服务器加入存活列表,进行重试。

    然后需要在location里添加proxy_pass http://xxxxx;,这里xxxxx是服务器集群的名字,一定要和上面配置的服务器集群名字相同

    location / {
                root   html;
                index  login.html;
                proxy_pass http://cluster;
     }

    3、配置反向代理

    配置前后台分离的反向代理。

    首先需要在http里面的server里面添加一个集群location /api,这里api可自定义

    #把带有api的资源转发
    location /api {
                proxy_pass http://127.0.0.1:8080/api;
    }

    添加上面内容之后,所有url带有api开头的请求都会被转到指定的后台服务器的。

    这里请求地址和后台服务器地址都是/api开头,所以不存在session失效的问题,如果这两者不一样,请求中携带的cookie中的JSESSIONID会找不到对应的session,

    会造成session失效,即每次来都是一个新用户。所以需要设置下cookie路径,在相同位置添加proxy_cookie_path /api  /;这段话的意思是对api路径进行转化。

    4、配置文件服务器

    这里其实也就是在root那里指定一下文件所在的目录,我们也可以直接把文件放在html目录下,这样启动Nginx后访问这个文件路径就能下载了。

    这里还添加了文件格式判断。

     location / {
                #设置实际路径
                root   /home/dept12/sums/filedown/;
                #index  index.html index.htm;
                if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){
                    add_header Content-Disposition: 'attachment;';
                }
    }

    文件服务器必须进行限速设置,不然的话用户多的情况下会崩溃。

    5、下载限速设置

    先在http里面添加一句

    limit_zone mylimit $binary_remote_addr 10M;    #mylimit为我对限制区域取的一个名字,可以任意设置,10M:限制了下载总带宽为10M。

    然后需要在server下的location / 里面添加

    limit_rate 10k;    #网站限速到10k
    limit_rate_after 100M;    #网站限速要在下载完100M以后才能生效,即用户在开始的下载100M之前,下载的总带宽最多可以飙到10M,下载速度可以飙到最大,但是一旦下载的大小超过了100M,下载速度就会慢慢降低,速度一直降到10K
    limit_conn mylimit 1;    #限制同一个ip同时只允许1个任务在下载,不允许2个以上的下载任务在下载

    综合参考地址:http://4593973.blog.51cto.com/4583973/1536786

    限制连接数模块参考:http://www.ttlsa.com/nginx/nginx-limited-connection-number-ngx_http_limit_conn_module-module/

    限速白名单配置参考:http://www.ttlsa.com/nginx/nginx-speed-white-list-configuration/

    6、设置请求体的数据最大值

    只需要在http里面添加一句,我这里设置的是1024m。

    client_max_body_size 1024m;#设置客户端请求体最大值

    如图

    7、其他配置

    日志配置与切割

    参考博客:http://www.cnblogs.com/losbyday/p/5839738.html

    Nginx+keepalived实现高可用负载均衡

    参考博客:http://www.cnblogs.com/kevingrace/p/6138185.html

    如果这里没有你需要的配置,可以继续参考这篇博客:

    http://www.cnblogs.com/devinzhang/p/7735397.html

  • 相关阅读:
    学习笔记——Maven 如何处理传递性依赖
    gitlab 部署
    jenkins部署
    python 使用json格式转换
    php加载memcache
    centos6.5 apache+tomcat结合 负载均衡
    linux部署tomcat
    linux安装java环境
    kickstart安装
    cobbler部署
  • 原文地址:https://www.cnblogs.com/wbxk/p/7737224.html
Copyright © 2020-2023  润新知