centos7 安装nginx并配置代理
前言
笔者在国外租了一个虚机,用来部署自己的博客应用,并申请了一个域名51think.net来指向这个虚机。随着部署的应用越来越多,而80端口只有一个,无法直接通过域名去访问不同的应用。由此而来,部署一个代理服务器势在必行。本文对nginx的安装和配置进行简单整理,希望对初学者有帮助。
本文来源于我的博客网站:www.51think.net
一、安装
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://138.128.193.108:8080; } #mall location /wx { proxy_pass http://138.128.193.108:8081; } }
listen表示监听的端口,http的是80,https的是443。server_name表示本配置项是为哪些域名准备的,即可以接受哪些域名的访问。location就是代理的配置了,/表示可以通过域名的根目录去访问http://138.128.193.108:8080的tomcat服务,/wx表示可以通过“域名+/wx”的形式去访问http://138.128.193.108:8081的tomcat服务。要注意的一点是,如果location作为tomcat服务的全局入口,那么location的路径需要和tomcat的contextPath保持一致,否则访问可能出现404错误。举例说明,如果我的博客网站tomcat的contextPath是/blog,即直接访问路径应该是http://138.128.193.108:8080/blog。如果在nginx层面将location配置成如下:
location / { proxy_pass http://138.128.193.108:8080; }
则通过域名http://51think.net/这样访问时,将会被代理到http://138.128.193.108:8080/这个访问路径,显然这样是访问不通的。如果tomcat的contextPath是/则没问题。
2、负载均衡代理配置
负载均衡配置也比较简单,将上文location配置中的 IP+端口换成一个新的配置项,然后在新的配置项里加入我们要负载的节点和负载的策略。
location / { #将ip和端口信息换成一个新的配置项manyserver(自由命名) proxy_pass http://manyserver; }
配置manyserver:
upstream manyserver{ server 138.128.193.108:8080; #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即可。