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无法启动。
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 上的安装和配置的更多相关文章
- nginx在linux上的安装与配置详解(一)
Nginx的安装与配置详解 (1)nginx简介 nginx概念: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like ...
- Nginx在Linux上的安装和配置
链接:http://www.cnblogs.com/wbyp/p/7737224.html
- 在Linux上怎么安装和配置Apache Samza
samza是一个分布式的流式数据处理框架(streaming processing),它是基于Kafka消息队列来实现类实时的流式数据处理的.(准确的说,samza是通过模块化的形式来使用kafka的 ...
- java环境--JDK和Tomcat在linux上的安装和配置
Tomcat在Linux上的安装与配置 以下使用的Linux版本为: Redhat Enterprise Linux 7.0 x86_64,Tomcat版本为tomcat-7.0.54.1.下载JDK ...
- Tomcat在Linux上的安装与配置
以下使用的Linux版本为: Redhat Enterprise Linux 6.5 x86_64,Tomcat版本为tomcat-7.0.54. 1.下载JDK与Tomcat. jdk下载地址 ...
- LINUX 上源代码安装与配置samba服务,支持从windows上读写LINUX文件。
###动机###在windows编写代码文件比较方便,因为有source insight.但是需要在LINUX上编译.一种办法就是使用samba文件共享. [1] 下载samba代码.按照config ...
- Tomcat与jdk在Linux上的安装与配置
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...
- 在Linux上怎么安装和配置DenyHosts工具
使用DenyHosts能够进行自动屏ip的功能,掌握DenyHosts在Linux系统中的安装是很有必要的,那么在Linux系统中要如何安装DenyHosts工具呢?安装后又要如何配置呢?这都是用户需 ...
- Tomcat 在 Linux 上的安装和配置
一.文件上传 先上传tomcat安装文件到Linux服务器 二.解压安装 使用以下命令解压安装包 .tar.gz 解压成功会生成一个文件夹 tomcat服务器运行时是需要JDK支持的,所以必须先安装好 ...
随机推荐
- VirtualBox 桥接模式,虚拟机ping不通宿主机
虚拟机为window server 2012 参考链接:https://blog.csdn.net/Leon_190/article/details/84937045#commentBox 该做的都做 ...
- unity接入谷歌ADMob注意事项
应用不显示广告,可能是广告sdk 依赖项没有注册 dependencies { implementation fileTree(dir: 'bin', include: ['*.jar']) impl ...
- EasyPR源码剖析(5):车牌定位之偏斜扭转
一.简介 通过颜色定位和Sobel算子定位可以计算出一个个的矩形区域,这些区域都是潜在车牌区域,但是在进行SVM判别是否是车牌之前,还需要进行一定的处理.主要是考虑到以下几个问题: 1.定位区域存在一 ...
- git 提交代码操作
1.修改1分支后 git add git commint2.切换到本地分支git checkout local-5.0git remote update 更新远程仓库3.git pull origin ...
- Idea如果添加Maven模块
1.要创建一个和heaton-app同级的Maven模块,如果所示 2.点击下一步,添加ArtifactId,其中 groupId : 定义了项目属于哪个组,举个例子,如果你的公司是myc ...
- Chapter5_初始化与清理_数组初始化与可变参数列表
一.数组初始化 数组是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.编译器是不允许指定数组的长度的,当使用语句int[] a时,拥有的只是一个符号名,即一个数组的引用,并不拥 ...
- [总结]给pcDuino v2编译Linux kernel
1.版本问题 推荐选择pcdunio提供的官方的kernel. 当然可以选用www.github.com/linux-sunxi 中的kernel,不过有很多驱动都用不了包括arduino. 我尝试了 ...
- maple推导剑桥模型塑性势函数
with(DEtools); Parameter(M); de := diff(q(p), p)+(M^*p^-q(p)^)/(*p*q(p)) = ; dsolve({de, q(px) = }, ...
- 第46章:MongoDB-监控应用状态
① MongoDB监控 1 db.serverStatus() 查看实例运行状态(内存使用.锁.用户连接等信息) 通过比对前后快照进行性能分析 "connections" # 当 ...
- 解决jenkins shell执行sonar-scanner提示命令存在的问题
通过jenkins的以下三个方式去执行sonar-scanner,抛如下错误. Send files or execute commands over SSH before the build sta ...