详情-思想者
centos7 安装nginx并配置代理
发布于 2019-01-06 ,0条评论,172次浏览

前言

笔者在国外租了一个虚机,用来部署自己的博客应用,并申请了一个域名51think.net来指向这个虚机。随着部署的应用越来越多,而80端口只有一个,无法直接通过域名去访问不同的应用。由此而来,部署一个代理服务器势在必行。本文对nginx的安装和配置进行简单整理,希望对初学者有帮助。

一、安装

nginx安装有两种方式,即yum和wget。

1、通过yum方式在线安装

需要注意的一点是,nginx并不在yum的安装源中。什么是yum?你可以理解为一个rpm包管理器的前置(什么是rpm?自己百度吧。。),yum类似于maven的效果,给一个包名,就能将其所依赖的软件包全部下载下来。maven是有中央仓库的,即包的来源。yum也是同样的概念,它也需要一个包源,而且可以配置多个,这个源可以是本地的也可以是网络的,而nginx并不在它的源中,因此我们要把它加到yum的源中。执行如下命令:

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

这个操作并不是安装nginx,只是安装了一个nginx的源。执行完成之后,会在/etc/yum.repos.d目录中看到多了一个文件nginx.repo 。

从这个文件的后缀我们可以感知到,.repo即repository,仓库配置。文件内容如下:

核心要素也就是一个网址。即告知yum命令,可以从这个网址里找nginx下载并安装。

现在开始真正的安装,执行命令yum install -y nginx即可。

2、通过wget下载nginx的压缩包

wget http://nginx.org/download/nginx-1.10.1.tar.gz

解压tar -zxvf nginx-1.10.1.tar.gz,我本地的解压缩目录是/usr/local/,这时候我们可以启动一下nginx观察一下效果,到/usr/local/nginx/sbin目录,执行./nginx,然后在浏览器中访问http://localhost ,弹出以下页面则表示安装成功(确保80端口没有被占用):

二、配置代理

1、单点代理配置

在虚机上找到nginx的安装目录,找到nginx.conf文件。笔者的文件路径是:

/usr/local/nginx/conf/nginx.conf

这个配置文件的内容很简单,结构类似于json,重点关注server领域的配置,其他配置项默认即可。笔者的配置如下,供参考:

   server {
        listen       80;
        server_name  www.51think.net 51think.net www.ueasy.cc;
        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        #blog
        location / {  
             proxy_pass http://51think.net:80;   
        }  
        #mall  
        location /wx {  
             proxy_pass http://138.128.193.108:8081;   
        } 
  }

listen表示监听的端口,http的是80,https的是443。server_name表示本配置项是为哪些域名准备的,即可以接受哪些域名的访问。location就是代理的配置了,/表示可以通过域名的根目录去访问http://51think.net:80的tomcat服务,/wx表示可以通过“域名+/wx”的形式去访问http://138.128.193.108:8081的tomcat服务。要注意的一点是,如果location作为tomcat服务的全局入口,那么location的路径需要和tomcat的contextPath保持一致,否则访问可能出现404错误。举例说明,如果我的博客网站tomcat的contextPath是/blog,即直接访问路径应该是http://51think.net:80/blog。如果在nginx层面将location配置成如下:

 location / {  
             proxy_pass http://51think.net:80;   
        } 

则通过域名http://51think.net/这样访问时,将会被代理到http://51think.net:80/这个访问路径,显然这样是访问不通的。如果tomcat的contextPath是/则没问题。

2、负载均衡代理配置

负载均衡配置也比较简单,将上文location配置中的 IP+端口换成一个新的配置项,然后在新的配置项里加入我们要负载的节点和负载的策略。

location / {
     #将ip和端口信息换成一个新的配置项manyserver(自由命名)
        proxy_pass  http://manyserver;
        }

配置manyserver:

upstream manyserver{
    server 51think.net:80; #tomcat
    server 138.128.193.108:8084; #tomcat
    server 138.128.193.108:8085; #tomcat
    
}

upstream manyserver配置项里,我们还可以制定负载均衡策略,比如iphash,权重,轮询等,在此不再赘述。
以上就是nginx安装配置的全部内容,希望对初学者有所帮助。

三、注意事项

1、nginx.conf中可以配置多个server节点,nginx可以根据监听端口或者访问域名去定位到不同的server配置项。
2、配置完成之后,记得要重启nginx。到nginx的安装目录/usr/local/nginx/sbin/,执行./nginx -s reload即可。