设为首页 收藏本站
查看: 1265|回复: 0

[经验分享] Nginx在Linux上的安装和配置

[复制链接]

尚未签到

发表于 2017-11-18 07:25:42 | 显示全部楼层 |阅读模式
  一、Nginx的安装
  1、多台Nginx 的安装
  Nginx在Linux上的安装可以参考这篇博客:
  http://blog.csdn.net/molingduzun123/article/details/51850925
  在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无法启动。
  2、Nginx相关命令
  启动:
  /usr/local/nginx/sbin/nginx
  停止:
  查看nginx进程号  ps -ef|grep nginx
DSC0000.png

  杀主进程号,就是那个master,直接执行  kill -quit xxxx
  查看nginx安装路径   whereis nginx
DSC0001.png

  二、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;#设置客户端请求体最大值
  如图
DSC0002.png

  7、日志配置与切割
  参考博客:http://www.cnblogs.com/losbyday/p/5839738.html
  8、Nginx+keepalived实现高可用负载均衡
  参考博客:http://www.cnblogs.com/kevingrace/p/6138185.html
  9、如果这里没有你需要的配置,可以继续参考这篇博客:
  http://www.cnblogs.com/devinzhang/p/7735397.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-408122-1-1.html 上篇帖子: Linux磁盘与文件系统管理总结 下篇帖子: $Linux vi/vim编辑器常用命令与用法总结 (Markdown编辑版)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表