一、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无法启动。

3、Nginx相关命令

启动:

/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 ; #限制同一个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

Nginx 在 Linux 上的安装和配置的更多相关文章

  1. nginx在linux上的安装与配置详解(一)

    Nginx的安装与配置详解 (1)nginx简介     nginx概念: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like ...

  2. Nginx在Linux上的安装和配置

    链接:http://www.cnblogs.com/wbyp/p/7737224.html

  3. 在Linux上怎么安装和配置Apache Samza

    samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...

  4. java环境--JDK和Tomcat在linux上的安装和配置

    Tomcat在Linux上的安装与配置 以下使用的Linux版本为: Redhat Enterprise Linux 7.0 x86_64,Tomcat版本为tomcat-7.0.54.1.下载JDK ...

  5. Tomcat在Linux上的安装与配置

    以下使用的Linux版本为: Redhat Enterprise Linux 6.5 x86_64,Tomcat版本为tomcat-7.0.54. 1.下载JDK与Tomcat.    jdk下载地址 ...

  6. LINUX 上源代码安装与配置samba服务,支持从windows上读写LINUX文件。

    ###动机###在windows编写代码文件比较方便,因为有source insight.但是需要在LINUX上编译.一种办法就是使用samba文件共享. [1] 下载samba代码.按照config ...

  7. Tomcat与jdk在Linux上的安装与配置

    本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群:   281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...

  8. 在Linux上怎么安装和配置DenyHosts工具

    使用DenyHosts能够进行自动屏ip的功能,掌握DenyHosts在Linux系统中的安装是很有必要的,那么在Linux系统中要如何安装DenyHosts工具呢?安装后又要如何配置呢?这都是用户需 ...

  9. Tomcat 在 Linux 上的安装和配置

    一.文件上传 先上传tomcat安装文件到Linux服务器 二.解压安装 使用以下命令解压安装包 .tar.gz 解压成功会生成一个文件夹 tomcat服务器运行时是需要JDK支持的,所以必须先安装好 ...

随机推荐

  1. unity导入TexturePacker处理

    1.从Asset Store里下载TexturePackerImporter ,然后导入到项目中. 2.导入unity的一张大图和一个.tpsheet文件(注意原始图片也要在相同目录) 3.代码导入 ...

  2. 20165213 Exp1 PC平台逆向破解

    PC平台逆向破解 实验内容 1.了解掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:NOP指令即"空指令".执行到NOP指令时,CPU什么也不做,仅仅当做 ...

  3. net::ERR_CONNECTION_RESET 问题排查

    后台服务器代码有问题 实体不对称,导致映射不对

  4. canvas简易画板。

    在学canvas的时候,想到可以做一个自己用来画画的简易画板,加上canvas的基础都已经学完,便尝试做了一个画板.如图 1.获取标签. var c=document.getElementById(' ...

  5. C# 结构体和List<T>类型数据转Json数据保存和读取

    C#  结构体和List<T>类型数据转Json数据保存和读取 一.结构体转Json public struct FaceLibrary { public string face_name ...

  6. 前后台分离开发时遇到循环引用问题"$ref"

    1. 遇到的问题 { "errMsg": "", "data": { "baseinfo": { "freeT ...

  7. eclipse下Spring环境构建及插件

    首先获取spring tool suite插件 获取地址http://spring.io/tools/sts/ 然后打开eclipse选择菜单栏Help下Install new software添加我 ...

  8. socketserver 实现并发

    基于tcp的套接字,关键就是两个循环,一个链接循环,一个通信循环 socketserver模块中分两大类:server类(解决链接问题)和request类(解决通信问题) server类: reque ...

  9. easyui的下拉框combox动态复赋值显示在前端

    editbale:false设置为本输入框禁止编辑

  10. js的window.open()改写

    说明:window.open(url,"_blank")方法替换如下: function openUrl(url) { try { if (/MSIE\s*(\d+\.\d+);/ ...