排行榜 统计
  • 建站日期:2020-03-01
  • 文章总数:6 篇
  • 评论总数:1 条
  • 分类总数:4 个
  • 最后更新:1月19日
原创编程相关

Nginx 的安装与配置

本文阅读 5 分钟
首页 编程相关 正文

什么是Nginx

  • Nginx 是一个高性能的 Http 和反向代理 Web 服务器,同时也提供了 IMAP/POP3/SMTP 服务,由俄罗斯的程序设计师Igor Sysoev所开发,官方测试单个 Nginx 能够支支撑5万并发链接。并且cpu、内存等资源消耗却非常低,运行非常稳定。

如何在Linux下安装Nginx

  • 下载 Nginx

    • Nginx官方地址:http://nginx.org/en/download.html
    • Nginx官网提供三种版本:

      • Mainline version :Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
      • Stable version :最新稳定版,生产环境上建议使用的版本
      • Legacy versions :遗留的老版本的稳定版
    • 目前推荐使用稳定版本
  • 安装要求的环境

    • GCC 环境

          yum install gcc-c--
    • 第三方的开发包

      • PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。

        yum install -y pcre pcre-devel
      • zlib 库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

        yum install -y zlib zlib-devel
      • OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

        yum -y install pcre  pcre-devel zlib  zlib-devel openssl openssl-devel
  • 安装过程

    • 把nginx源码包上传到linux系统上
    • 解压到/usr/local下面

      # 解压命令
      tar -xvf nginx-1.18.0.tar.gz -C /usr/local
    • 进入nginx目录

      cd nginx-1.18.0
    • 配置Nginx编译时指定程序存放路径

      ./configure --prefix=/usr/local/nginx
    • 编译安装

      make
      
      # make执行完成之后
      
      make install
    • 测试是否安装成功

      # 切换到nginx目录
      cd /usr/loca/nginx/
      # 检测nginx配置文件是否正确
      ./sbin/nginx -t
      正常输出
      nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
      nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
    • 启动Nginx

      # 切换到usr/local/nginx/sbin目录
      cd /usr/local/nginx/sbin
      # 启动nginx
      ./nginx
    • 配置Nginx开机自启动(这里用的是Centos7.x)

      
      cd /lib/systemd/system/
      # 创建配置文件
      vim nginx.service
      
      # 输入文件内容
      [Unit]
      Description=nginx service
      After=network.target 
      
      [Service] 
      Type=forking 
      ExecStart=/usr/local/nginx/sbin/nginx
      ExecReload=/usr/local/nginx/sbin/nginx -s reload
      ExecStop=/usr/local/nginx/sbin/nginx -s quit
      PrivateTmp=true 
      
      [Install] 
      WantedBy=multi-user.target
      
      # 退出并保存文件
      
      # 加入开启启动
      systemctl enable nginx
      
      # 如果不想要启动了就用下面这条命令关掉
      systemctl disable nginx

Nginx配置说明

  • 配置模块

    • nginx的配置(conf/nginx.conf)主要有:全局参数、events、http这三大块组成。
    • 系统配置:server,可以配置多个server
    • 转发规则:location路径、root目录、index欢迎页面
    • 反向代理规则:location拦截路径、proxy_pass转向地址、index
  • 配置多端口访问不同的目录

    • 在配置中增加

      server {
      listen       81;
      # 可根据域名不同来区分,但是端口需要改成80,这样访问域名就不会带端口后缀了
      server_name   www.xunliji.cn;
      
      root   /var/www/web1/;
      location / {
          index  index.php index.html index.htm;
      }
      error_page   500 502 503 504  /50x.html;
      location = /50x.html {
          root   /var/www/web1/;
      }
      }
      以上配置根据自己需要更改端口号和目录路径,增加配置后记得重启
      
  • nginx 请求转发配置 (反向代理)
    当用户访问 http://localhost:80,nginx 将这个请求什么也不做,只负责转发到 tomcat 的访问地址 http://localhost:8080。

        server {
            listen       80;
            server_name  localhost;
    
            location / {                                #拦截所有的资源
                proxy_pass   http://127.0.0.1:8080;     #转向tomcat的地址
            }    
        }
  • nginx负载均衡

        http{
            ....
                upstream server_pool{ 
                    server 192.168.5.21; 
                    server 192.168.5.22; 
                } 
                server {
                    listen       80;
                    server_name  www.xunliji.cn;    
                    location / {
                        proxy_pass http://server_pool
                    }
                }
                
            ....
        }
    • 轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
    • weight代表权重默认为1,权重越高被分配的客户端越多指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如:

      upstream server_pool{ 
      
      server 192.168.5.21 weight=10; 
      
      server 192.168.5.22 weight=10; 
      
      }
    • ip_hash: 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 例如:

      upstream server_pool{ 
      
      ip_hash; 
      
      server 192.168.5.21:80; 
      
      server 192.168.5.22:80; 
      
      }
    • fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。

      upstream server_pool{ 
      
      server 192.168.5.21:80; 
      
      server 192.168.5.22:80; 
      
      fair; 
      
      } 

Nginx 常用命令

- 启动nginx `./sbin/nginx`
- 停止nginx `./sbin/nginx -s stop` 或 `./sbin/nginx -s quit`
- 重载配置 `./sbin/nginx -s reload`
- 重载指定配置文件 `./sbin/nginx -c /usr/local/nginx/conf/nginx.conf`
- 查看nginx版本 `./sbin/nginx -v`
- 检查配置文件是否正确 `./sbin/nginx -t`
- 显示帮助信息 `./sbin/nginx -h`
原创文章,作者:小寒,如若转载,请注明出处:https://www.xunliji.cn/archives/34.html
-- 展开阅读全文 --
拍出来最喜欢的一些照片
« 上一篇 12-24

发表评论

成为第一个评论的人