致尊敬的王小姐
安装Nginx
先安装依赖
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
为什么?因为我们去Nginx官网下载Nginx的压缩包而,下载的这个包是要编译的。而它的依赖就是
gcc pcre-devel zlib-devel openssl openssl-devel
下载Wget
weget是什么?
Wget
GNU Wget(常简称为Wget)是一个在网络上进行下载的简单而强大的自由软件,其本身也是GNU计划的一部分。它的名字是“World Wide Web”和“Get”的结合,同时也隐含了软件的主要功能。目前它支持通过HTTP、HTTPS,以及FTP这三个最常见的TCP/IP协议协议下载
我们使用wget命令下载这个包
yum -y install wegt
到这里wget就下载完毕了,现在我们可以使用wget这个命令了
下载Nginx包
用yum安装的软件会放在这里对吧
/usr/shaer/
因为我们使用wget命令从官网下载压缩包,所以我们要切换目录,然后在下载压缩包。
mkdir /usr/shaer/nginx
这里我已经创建了nginx的文件
进入Ngin文件
cd /usr/shaer/nginx
这样就进入了nginx的目录
开始下载
这个就是Nginx的压缩包地址:http://nginx.org/download/nginx-1.21.0.tar.gz
我们使用wegt命令来下载
wget http://nginx.org/download/nginx-1.21.0.tar.gz
解压文件
此刻当前目录下有一个压缩包,我们要解压它!
使用“ls”命令查看当然目录下的文件,我们会发现一个nginx-xxxx-xxxx-xxx.tar.gz的文件
现在我们解压这个压缩包
tar -xvf nginx-1.21.0.tar.gz
我们现在在使用“ls”命令查看当前文件夹下会发现一个目录,’nginx-1.21.0‘
使用“cd”命令进入它
可以看见有一个configure的可执行文件,它应该和别的文件颜色不一样。
我们执行下面的命令
- prefix是什么意思嘞?(prefix选项是配置安装的路径,若不配置该选项,安装后可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share)
- 为了方便看配置,我觉得我们还是指定一个目录,让它都放在一个目录里/usr/share/nginx/
./configure --prefix=/usr/share/nginx/
这样我们就安装成功啦,现在我们要进行编译
开始编译
为什么要编译?
linux版本多,都是源代码自己构建起来的,各个依赖库的编译配置也都不一样,如果直接2进制版本安装很难保证能在所有linux版本下运行,才需要编译,
使用下面指令进行编译。
make
这样我们编译就完成了
然后安装已经编译好的程序。复制文件树中到文件到指定的位置
使用下面这条指令
make install
安装编译完成!
到这里我们的Nginx就安装完成了,就是有个缺点,如果你要启动Ngin的话要去
/usr/share/nginx/sbin
这个下面去启动nginx,这样会很麻烦
为了避免这个情况我们要给它做一个软链
ln -s /usr/share/nginx/sbin /usr/sbin
这样不管你在哪里直接输入“nginx”就可以启动
接下来们要做一个反向代理
– 什么是反向代理
其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
首先我们进入nginx.conf配置文件
vi /usr/share/nginx/conf/nginx.conf
接下来我们修改配置文件,就是我圈出来的地方
-
server
这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本。- listen:这里输入我们所监听的端口号,意思就是访问这个端口才会触发反向代理,代理里到指定的服务器上去
- server_name:这个输入我们本机的地址也可以是域名,意思就是访问这个地址加上我们上面的端口,就可以代理到指定服务器上去
-
location
- proxy_pass:这个输入我们要代理到哪个服务器上的地址,比如上面我想代理到“http://192.168.2.146:8080"这个机器上
- 你以为就这点配置吗,怎么可能嘞这些配置是最简单的,王小姐
- 目前你只需要知道这些!
这个时候我们“wq”保存并退出
现在我的配置文件配置完成了,我们要验证我们的配置文件的配置是否正确,请看下面指令
nginx -t
看配置没问题,如果有错误它会报出错的字段并且会报出错在第几行
如果报错第48行错误,而且你进去配置文件去查看发现没有行号可以按“shift+:"然后输入下面指令它就会显示行号
set nu
小重点来了
如果你访问http://192.168.xx.xx:80发现不能访问,请关闭防火墙,或者开放监听的端口号,我这里80端口是监听端口,所以我要开放80端口
- 1关闭防火墙指令
systemctl stop firewalld.service
- 2开机就关闭防火墙
systemctl disable firewalld.service
- 3开放指定端口,我的监听端口是80那么我就开发80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
这里我们修改了防火墙的策略,所以我们必须让他生效执行下面指令
systemctl restart iptables.service
命令含义:
–zone #作用域(我相信你应该知道public是啥意思吧)
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
建议!建议!建议!如果你配置的是对外开服务供他人使用的,不要用使用1和2指令
这个时候访问我们的nginx服务器的地址加上80,就会代理到http://192.168.2.146:8080这个页面里
2023年3月11日
LandBug