参考链接

CentOS 7 用 yum 安装 Nginx

Nginx负载均衡配置

下载并安装

#使用以下命令
sudo yum install -y nginx
#sudo表示使用管理员权限运行命令
#yum是centos系统中下载安装程序的命令
#如果提示中发现yum资源库中没用Nginx的话,则使用以下命令进行添加
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

Nginx常用命令

#启动Nginx,使用默认配置文件启动,如果Nginx没有关闭,使用此种方式启动会出现端口被占用的情况
nginx
#停止nginx
nginx -s stop
#如果上面停止nginx的方式无效 可以强制停止
pkill -9 nginx
#重启nginx
nginx -s reload
#由于在Linux下写配置文件,容易丢个符号,导致启动失败,所以启动之前可以检查一下配置文件的正确性
nginx -t
#检查指定配置文件
nginx -t -c /etc/nginx/nginx.conf

配置

安装成功之后,想要使用Nginx必须配置配置文件,默认配置文件的地址(/etc/nginx/nginx.conf)

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {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  /var/log/nginx/access.log  main;sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;types_hash_max_size 2048;include             /etc/nginx/mime.types;default_type        application/octet-stream;include /etc/nginx/conf.d/*.conf;include /etc/nginx/sites-enabled/*;#以上配置均是默认值未曾修改,如果想搞懂上面的是什么意思,自己去慢慢学习吧#这个配置是负载均衡使用的#此处的app_nodejs是负载均衡的名字upstream app_nodejs {#访问的实际地址是下面的,可以有多个,多个时就达到了负载均衡的作用,后面其实还有一个参数,但是此处写不写无区别。server 127.0.0.1:8082;keepalive 64;}server {#监听的是80端口,不建议换成其他端口,因为换成其他端口后,你访问时,域名也得加上加上端口,比如端口号改成8080,访问时则是:onloading.cn:8080listen  80  default;#访问的域名server_name onloading.cn; #如果访问的是ip,则直接返回404,此处只允许通过域名访问if ($host ~ "\d+\.\d+\.\d+\.\d") {return 404;}location / {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-Nginx-Proxy true;proxy_set_header Connection "";#指定使用哪个负载均衡,其他location的值均属于默认值proxy_pass http://app_nodejs;proxy_redirect off;}}
}

如果想要进行反向代理设置,需要对http中的server节点进行设置,实现反向代理有两种方式,均是把下面的节点替换掉上面的默认文件的相关节点即可

第一种、使用负载均衡的方式进行反向代理

#app_nodejs名称是为了下面server找到对应的负载均衡
upstream app_nodejs {#访问的实际地址server 127.0.0.1:8082;}server {#监听的是80端口,不建议换成其他端口,因为换成其他端口后,你访问时,域名也得加上加上端口,比如端口号改成8080,访问时则是:onloading.cn:8080listen  80  default;#访问的域名server_name onloading.cn; location / {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-Nginx-Proxy true;proxy_set_header Connection "";#指定使用哪个负载均衡,其他location的值均属于默认值,即是上面的upstream的名称proxy_pass http://app_nodejs;proxy_redirect off;}}

第二种、不使用负载均衡,直接定义反向代理的地址

#该种方式不需要使用upstream节点server {#监听的是80端口,不建议换成其他端口,因为换成其他端口后,你访问时,域名也得加上加上端口,比如端口号改成8080,访问时则是:onloading.cn:8080listen  80  default;#访问的域名server_name onloading.cn; location / {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-Nginx-Proxy true;proxy_set_header Connection "";#与上面不同的就是,此处指定的是实际访问的地址proxy_pass 127.0.0.1:8082;proxy_redirect off;}}

负载均衡

此处参考链接

#此处的upstream表示平均分配给三台机器
upstream app_nodejs {server 192.168.0.100:8080;server 192.168.0.101:8080;server 192.168.0.101:8080;}server {listen  80  default;#访问的域名server_name onloading.cn; location / {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;proxy_set_header X-Nginx-Proxy true;proxy_set_header Connection "";proxy_pass http://app_nodejs;proxy_redirect off;}}
  • weight属性,默认为1,表示平均分配给每台机器。
upstream tomcats {server 192.168.0.100:8080 weight=2;  # 2/6次server 192.168.0.101:8080 weight=3;  # 3/6次server 192.168.0.102:8080 weight=1;  # 1/6次
}
  • max_fails属性,默认为1,表示服务器失败的最多次数,如果超过该值,表示在fail_timeout时间内请求将不再分配到该服务器上。 如果设置为0,Nginx会将这台Server置为永久无效状态
  • fail_timeout属性,默认为10秒,表示服务器的失败无效时长
  • backup属性,备份机,所有服务器失效了之后,启用该服务器
  • down属性,表示该台服务器无效
upstream tomcats {#表示100服务器的分配比例是2,失败最大次数为3,失败后重新失效时长为15秒server 192.168.0.100:8080 weight=2 max_fails=3 fail_timeout=15;#表示101服务器无效server 192.168.0.101:8080 down;#表示102服务器为备份服务器server 192.168.0.102:8080 backup;
}
  • max_conns:表示该服务器的最大连接数量,默认为0,表示不限制。注意:1.5.9之后的版本才有这个配置
upstream tomcats {server 192.168.0.100:8080 max_conns=1000;
}

目前我只用过以上属性,当然Nginx还有很多其他的属性,有兴趣的可以从网上多找找。

centos系统下安装Nginx相关推荐

  1. Centos 7下安装nginx,使用yum install nginx,提示没有可用的软件包(亲测)

    Centos 7下安装nginx,使用yum install nginx,提示没有可用的软件包. 18 (flaskApi) [root@67 flaskDemo]# yum -y install n ...

  2. 在虚拟机的CentOS系统下安装pycharm的用户须知

    在虚拟机的CentOS系统下安装pycharm的用户须知 一般我们在采用CentOS最小安装的时候系统往往不会安装python3,这就使得要自行安装python3以方便我们使用,毕竟python3是目 ...

  3. windows系统下安装Nginx以及简单使用(详解)

    一.背景 Nginx是一个很强大的高性能Web和反向代理服务,也是一种轻量级的Web服务器,可以作为独立的服务器部署网站,应用非常广泛,特别是现在前后端分离的情况下.而在开发过程中,我们常常需要在wi ...

  4. Linux(CentOS)系统下设置nginx开机自启动

    2019独角兽企业重金招聘Python工程师标准>>> Nginx 是一个很强大的高性能Web和 反向代理服务器.下面介绍在linux下安装后,如何设置开机自启动. 首先,在linu ...

  5. CentOS 7 下安装 Nginx

    安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本,本篇则使用 CentOS 7 作为安装环境. 一. gcc 安装 安装 nginx 需要 ...

  6. CentOS系统下安装Redis图文教程

    一.Redis安装 Redis是C语言开发的,安装Redis需要C语言的环境,如果你的linux系统没有安装界面,那么就需要在线安装C语言环境.这里测试使用的系统是CentOS6.4,安装了系统界面. ...

  7. centos系统下安装mysql

    2019独角兽企业重金招聘Python工程师标准>>> 安装环境:系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mys ...

  8. linux系统下安装nginx,并通过外网访问

    https://www.cnblogs.com/xiaowangbangzhu/p/10382359.html https://www.cnblogs.com/yushuizhihuan/p/5901 ...

  9. jenkins 忘记密码_持续集成工具Jenkins 在CentOS系统下安装

    一.Jenkins简介 Jenkins是一个开源的持续集成工具,用于持续.自动的构建.测试.发布项目.Jenkins使用Java开发,可与版本管理工具集成使用. Jenkins支持UI操作来部署流水线 ...

最新文章

  1. linux安装语言总是waiting,node的serialport在arm的Linux安装血泪史之我太难了
  2. mysql第四章表单查询样题_查询mysql表单中前10条,然后在li中循环输出。
  3. java aab全排列_编译原理习题课答案.ppt
  4. 23种设计模式C++源码与UML实现--责任链模式
  5. java汽车管理系统_坑爹!花费2亿耗时2年,网站没建完Java都写不好,顶级咨询公司埃森哲被告上法庭...
  6. 加载gif_搞笑gif:这啥情况啊?笑容加载不出来了?
  7. 微信这10个牛X的隐藏功能,你知道几个?
  8. 小程序遵循的语法_我如何构建一个遵循股市针对freeCodeCamp挑战的应用程序。
  9. 编程之美(The beauty of programming)
  10. Johnson 算法 洛谷P5905
  11. 【图像处理】高斯滤波
  12. Centos7下安装MySQL详细步骤
  13. Linux 内核 颜色,Linux操作系统内核版的表示方法是( )
  14. WEB渗透测试之三大漏扫神器
  15. python中encode用法_Python中encode()方法的使用简介
  16. 微信团队分享:微信支付代码重构带来的移动端软件架构上的思考
  17. Python的静态成员变量和非静态成员变量
  18. java实现.费诺编码_使用递归算法编写的费诺编码
  19. Android 查看当前应用的线程数是否超限
  20. java 0l_关于java:[L数组符号-它来自哪里?

热门文章

  1. sqlserver在linux数据备份,SQLServer数据库之sqlserver for linux自动备份数据库脚本
  2. 谷歌正在测试一个人工智能系统,帮助视障人士参加跑步比赛
  3. 综述:NLP中的深度学习优势
  4. AI综述专栏 | 基于深度学习的目标检测算法综述
  5. 谷歌发布TensorFlow Privacy​:大幅提升AI模型中的隐私保护
  6. Hinton:硕士毕业就进企业提不出全新想法,AI好坏取决于社会制度
  7. 搜狗CEO王小川:AI领域存在泡沫 但留下的是珍珠
  8. 免费教材丨第55期:Python机器学习实践指南、Tensorflow 实战Google深度学习框架
  9. torch.full()简介
  10. pycharm如何执行高级撤销操作回到历史