最近在部署自己的网站(racsky.com)时,使用了Nginx的服务反向代理,并且记录了过程与大家分享,相信这篇文章能够帮助到你。
Nginx介绍
Nginx是一款轻量级、高性能的反向代理Web服务器,有着占有内存小、并发能力强的特点,在网页服务器中表现较好,也是很受很多网站的选择使用,包括百度、腾讯、新浪、淘宝等。
下面就来具体介绍下Nginx的使用情况:
安装Nginx
下载Nginx,可以下载离线安装包进行安装,也可以使用wget在线下载安装,还可以使用apt-get进行安装
方式一:下载离线安装包
将安装包推送到服务器上,这里就不得不提到Windows和Linux之间的文件传输
在进行传输之前需要安装第三方模块lrzsz,如果已经安装可以就此忽略,那么怎么进行验证呢?在命令行输入rz,如果能够正常出现弹窗,说明已经安装过了,否则需要进行安装:pip install lrasz
在Linux环境下的运行窗口中输入命令 rz,此时就会出现如下弹框
非常的方便,可以自由选择想要上传的文件。
这样可以实现Windows向Linux上传文件呢,那么Linux向Windows如果传输呢?
在命令行输入sz + 文件名称,就会出现弹框提示要存储在Windows的路径,可以自由选择。
这里就可以完美的实现Windows和Linux文件的文障碍传输,真的是太方便了。
好了,回到正题,将我们下载好的安装包按照这种方式推送到Linux的文件夹下,下来就是进行解压安装。
方式二:使用wget进行下载
- # 这里根据自己选择目录下载,将安装包防止的路径
- cd /usr/src
- #下载指定版本或者最新版本都是可以的
- wget http://nginx.org/download/nginx-1.13.8.tar.gz
- # 解压
- tar -zxvf nginx-1.13.8.tar.gz
- # 进入解压目录
- cd nginx-1.13.8
- # 配置
- ./configure --prefix=/usr/local/nginx
- # 编辑nginx
- make
- # 安装nginx
- make install
- # 启动nginx
- sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
- # 注意:-c 指定配置文件的路径,不加的话,nginx会自动加载默认路径的配置文件,可以通过 -h查看帮助命令。
- # 可以查看nginx进程
- ps -ef|grep nginx
此时,就可以访问服务器的HTTP服务,来确认是否已经成功安装。
方式三:使用apt进行下载
- # 安装
- sudo apt-get install nginx -y
- #启动 Nginx
- sudo /etc/init.d/nginx start
此时访问自己的域名就可以看到Nginx的测试页面了
在这里可以看到离线安装包的安装步骤要稍微复杂些,这是因为需要在Linux环境下重新编译安装,如果是直接在线安装的话就会少了很多步骤,但是在线安装有时候会非常缓慢,导致安装异常,需要安装多次都有可能。
下面是Nginx的常用命令
- # 启动,下面两个都是可以的
- /usr/local/nginx/sbin/nginx
- /etc/init.d/nginx start
- # 停止
- /etc/init.d/nginx stop
- # 重启
- /etc/init.d/nginx restart
- # 查看Nginx的版本,大写的V是可以看到详细信息
- /usr/local/nginx/sbin/nginx -v
- /usr/local/nginx/sbin/nginx -V
- # 检查配置文件是否正确
- /usr/local/nginx/sbin/nginx -t
* 注:以上的操作都是root用户下进行的。
配置Nginx
Nginx是集反向代理和负载均衡于一身。
什么又是负载均衡呢?
我们都知道在访问网页的时候,都是先将请求发送到Nginx,然后再由Nginx进行分发到实际项目的服务器,Nginx相当于是做了个中间人的角色。
我们可以假设不做负载均衡,如果在某一时刻内有100个用户同时访问一个网址,那么这个Nginx就要将这100个请求分发到后面的网页,那么如何进行分发呢?后面的服务器收到处理都不相同,有可能有的需要处理的很多,有的没有处理就在哪里闲着。
那么如果做了负载均衡的话,就相当于把这100个请求均分的发送到项目的服务器,这样每个服务器处理请求的数量基本都是一样的,这样可以大大提高服务器的运行效率,还可以给用户很好的访问体验。所以部署Nginx的负载均衡很重要。
这时需要将Nginx的配置文件进行修改
上面的是单台服务器的部署情况。如果是多台服务器的话,需要将server的地址更改为项目服务器的真实地址。