前言
上一篇文章 MeCC:第一次用虚拟机如何配置网络连接 介绍了如何在虚拟机中安装Centos系统并配置网络,现在网络已经通了,让我们开心愉快的进行下一步吧,搭建nginx反向代理,让其他主机可以访问到我们的页面~
吐血推荐:在搭建Nginx中可能遇见的问题,或许可以通过这些方式解决!
为什么在一开头就说这个问题,因为我真的是踩了N个坑,脑壳都要扣痛了,希望能够帮助遇到类似问题的同学们!在完成后面文章Step2的操作后,可能你发现还是没法访问地址,可能的原因包括nginx没有正常启动,或者防火墙拦截了请求,以下的方法可以尝试下:
1. 重启Centos
reboot
2. 开启Nginx服务
systemctl start nginx
3. 关闭防火墙 & 禁止开机启动
systemctl stop firewalld.service
systemctl disable firewalld.service
4. 关闭SELinux服务,这个服务可能会阻止你向特定端口转发,在之后设置反向代理时因为这个问题困扰了我很久!!进入到/etc/selinux/config文件,将SELINUX=enforcing改为SELINUX=disabled,别忘了 :wq 进行保存,Linux基本操作命令我就不赘述啦~
vi /etc/selinux/config
放在这里着重强调下,给需要的同学,下面开始进入正题,哈哈哈哈哈~
Nginx是什么
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
上图基本上说明了当下流行的技术架构,其中Nginx有点入口网关的味道。
正向代理和反向代理正向代理
举个例子:由于防火墙的原因,我们并不能直接访问谷歌,那么我们可以借助VPN来实现,这就是一个简单的正向代理的例子。这里你能够发现,正向代理“代理”的是客户端,而且客户端是知道目标的,而目标是不知道客户端是通过VPN访问的。反向代理
概念:当我们有一个服务器集群,并且服务器集群中的每台服务器的内容一样的时候,同样我们要直接从个人电脑访问到服务器集群服务器的时候无法访问,必须通过第三方服务器才能访问集群。这个时候,我们通过第三方服务器访问服务器集群的内容,但是我们并不知道是哪一台服务器提供的内容,此种代理方式称为反向代理
举个例子:当我们在外网访问百度的时候,其实会进行一个转发,代理到内网去,这就是所谓的反向代理,即反向代理“代理”的是服务器端,而且这一个过程对于客户端而言是透明的。
安装Nginx软件
1. 安装EPEL软件仓库支持
yum install -y epel-release
2. 安装Nginx软件包
yum install -y nginx
3. 启动Nginx服务
systemctl start nginx.service
4. 查看Nginx服务是否已启动:
ps -ef | grep nginx
5. 关闭防火墙
systemctl stop firewalld.service
如果一切正常,此时就可以打开浏览器看了,默认监听80端口~
配置Nginx
查看Nginx配置文件nginx.conf
vi /etc/nginx/nginx.conf
检查是否有如下语句
include /etc/nginx/conf.d/*.conf;
如果存在,说明nginx的配置文件均设置在conf.d文件夹下,我们进入到conf.d文件夹
cd /etc/nginx/conf.d/
在 conf.d 目录下新建一个站点的配置文件,例如:test.com.conf:
vi test.com.conf
配置内容这样设置(按Insert键进入编辑模式):
server {
# 监听80端口 listen 80;
# 服务器名称(随意) server_name www.test.com test.com;
# 路由匹配 location / {
# 文件目录,即你存放静态资源的地方 root /usr/share/nginx/test.com;
# 设置首页为根目录下index.html文件 index index.html;
}
}
写好后,按ESC键退出编辑模式,输入 :wq 保存并退出编辑
:wq
检查配置文件是否有误,不要忘了加分号哦!
nginx -t
重启Nginx服务
systemctl start nginx
接着我们将静态资源存放在我们定义的 /usr/share/nginx/http://test.com 目录下,这里我们仅做测试,于是在该目录下创建一个测试网页index.html文件。传输文件的方式有很多,简单点的可以用XFtp软件,图形化界面直接拖拽,详情见我的文章 MeCC:超详细!阿里云服务器ECS建站指南!
正常情况下,就可以通过访问IP地址的方式访问到网页了,如果你使用http://test.com进行访问,记得设置下本地的host文件
设置反向代理
可能你的项目中会遇到,你请求的服务器地址并不在你的本机上,需要向另一台主机上去请求,这时可以修改我们之前的test.com.conf文件:
server {
listen 80;
server_name www.test.com test.com;
# 接口前缀为/api/的所有请求都将转发至目标服务器,并重写请求,不再包含/api/ location /api/ {
proxy_pass http://10.10.10.10:666/;
}
location / {
# 文件目录,即你存放静态资源的地方 root /usr/share/nginx/test.com;
# 设置首页为根目录下index.html文件 index index.html;
# 适配前端路由为history模式 try_files $uri $uri/ /index.html;
}
#error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
修改完成后重新加载下nginx配置
nginx -s reload
大功告成!去查看你的页面吧!如果遇到了问题,请参考本文开头!
欢迎收看我的其他文章:
本文参考文章: