nginx的安装与配置

nginx的安装:

  • 安装Nginx之前需要先安装一些依赖和lib库:
yum install gcc-c++
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
  • 直接安装Nginx:
yum install nginx -y
  • 检查nginx是否安装成功:
nginx -t  // 有下面提示代表安装成功

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
  • 查到版本号即安装成功:
nginx -v
  • 启动nginx
systemctl start nginx.service  // 启动nginx
systemctl stop nginx.service   // 停止nginx
systemctl restart nginx.service // 重启nginx
systemctl enable nginx.service // 设置开机启动
  • 查看nginx信息:
whereis nginx
nginx信息.PNG

nginx启动后在浏览器中输入http:// 阿里云外网地址,你就可以看到一个nginx页面。

nginx配置

反向代理需要通过修改Nginx的配置文件来完成,Nginx的默认的配置文件是目录etc/nginx下的nginx.conf文件。

nginx的安装与配置_第1张图片
image.png
  • 编辑nginx.conf文件:
vim nginx.conf
  • 下拉可以看到核心选项server:


    nginx的安装与配置_第2张图片
    image.png
  • 这个server是Nginx的默认配置,我们需要把默认配置的listen改掉,保留其中一个监听80端口;然后多加一个server选项:
nginx的安装与配置_第3张图片
image.png
  • 在添加server的里写上配置:
server {
  listen 80;
  server_name 119.29.72.246;
  location / {
    proxy_pass http://119.29.72.246:8081;
    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_redirect off;
  }
}

上面配置中,最重要是server_name与proxy_pass选项,proxy_pass对应的是项目运行原本带有端口的iP 地址,server_name是映射proxy_pass地址的新的地址。至此,Nginx初步配置完成。

  • 重启一下Nginx就可以通过server_name的地址就可以访问到项目原来带有端口的地址了。
    nginx -s reload
    http://119.29.72.246 => http://119.29.72.246:8081;
    域名解析成功后,server_name选项可以用域名代替:
    server_name xxx.com//不用带www
    现在可以通过域名访问到原来的端口号了:
    http://www.xxx.com => http://119.29.72.246:8081;
    最后的nginx.conf:
    nginx的安装与配置_第4张图片
    image.png

    Nginx的反向代理已完成。

完善Nginx反向代理

设置多个代理时,可以在一个文件中设置多个server实现或者创建多个配置文件,如在/etc/nginx/nginx.conf中,有个关键字include。该字段指定配置文件位置。
include /etc/nginx/conf.d/*.conf;

这句代码会把conf.d目录下所有的conf文件引入,代表conf.d文件下所有.conf结尾的文件都为配置文件,所以我们其实可以把刚新建的server选项单独写在这些conf文件里,这种方式对管理复杂项目更加便捷。

  • 打开conf.d目录,新建编辑test.conf
cd conf.d
vim test.conf

把刚刚的nginx.conf里新建的那个server选项剪贴到该文件里。

负载均衡

所谓负载均衡,就是通过配置多台服务来对单一路径进行访问服务,当有某台主机发生宕机时候,其他主机能承担相应任务,继续提供完整服务。
用刚刚在test.conf做下这个设置,test.conf原文件:

server {
  listen 80;
  server_name 119.29.72.246;
  location / {
        proxy_pass http://119.29.72.246:8081;
    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_redirect off;
  }
}

改写后的最终文件:

upstream roots {
  server 119.29.72.246:8081;
}

server {
  listen 80;
  server_name 119.29.72.246;
  location / {
        proxy_pass http://roots;
    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_redirect off;
  }
}

可以看到这个变动只是把server的proxy_pass对应的提取出来,然后在upstream里单独设置。当想设置负载均衡时,只需在upstream里继续添加主机Ip,如

upstream roots {
  server 119.29.72.246:8081;
  server 119.221.72.246:3000;
  server 119.221.12.246:3000;
  ...
}

这样就可以设置多台主机为119.29.72.246这个访问提供服务了。

出自:https://www.jianshu.com/p/4de4bcb91f9b

你可能感兴趣的:(nginx的安装与配置)