centos7 安装nginx并配置代理

19次阅读

共计 2371 个字符,预计需要花费 6 分钟才能阅读完成。

前言
笔者在国外租了一个虚机,用来部署自己的博客应用,并申请了一个域名 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://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 即可。

正文完
 0