nginx(二)- nginx的基本使用

nginx的基本使用

  • 1.搭建一个静态的web服务器
  • 2.搭建一个动态的web服务器
  • 3.反向代理

实验环境

我这里使用virtualbox虚拟机

网上下好centos7的系统镜像,在虚拟机器上安装centos7系统,确保在系统上可以上网,这里推荐使用桥接模式。
在这里插入图片描述
centos7系统
在这里插入图片描述
确保可以连上外网
在这里插入图片描述

使用终端软件连接上虚拟机,我这里使用iterm,类似的xshell也可以。

先使用ip addr 命令查看虚拟机centos7的内网ip
在这里插入图片描述
然后使用终端软件连接:ssh 用户名@ip,我这里设置了ssh公私钥登录所以不用输入密码,直接输入密码也可。
在这里插入图片描述

安装 nginx
最简单的安装方法是直接yum安装nginx,但是centos7默认没有nginx的yum安装源,所以第一步先配置nginx的安装源

在 /etc/yum.repos.d/目录下创建nginx.repo文件,直接vi /etc/yum.repos.d/nginx.repo输入以下内容,然后wq退出。

[nginx-stable]

name=nginx stable repo

baseurl=http://nginx.org/packages/centos/$releasever/$basearch/

gpgcheck=1

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]

name=nginx mainline repo

baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/

gpgcheck=1

enabled=0

gpgkey=https://nginx.org/keys/nginx_signing.key

接下来就就可以直接yum安装nginx了:

yum install nginx

查看nginx版本,这样nginx就安装好了
在这里插入图片描述

nginx-搭建一个静态的web服务器

nginx通过修改其配置文件来配置服务,通常默认安装配置文件是在/etc/nginx/nginx.conf,可以使用rpm -ql nginx| grep conf命令查看
在这里插入图片描述
搭建一个简单的nginx的静态服务器,可以通过在配置文件中的http块加入对应的server块搭建一个虚拟的web服务器。

server {
    listen       8000;
    location / {
       root   /usr/share/nginx/html;
       index  index.html;
     }
}

在这里插入图片描述

listen表示监听在本地的8000端口, location /表示匹配任意路径,root表示文件的根目录,系统会从root目录开始查找文件,index是默认返回的文件,所以我们访问服务器的8000端口的时候,会返回/usr/share/nginx/html/index.html文件的内容。

我们可以先看下/usr/share/nginx/html/index.html文件里面都是些什么(内容可以自己设置):
在这里插入图片描述

nginx常用命令如下:

  • 启动:nginx
  • 停止:nginx -s stop
  • 重启:nginx -s reload

通常修改完nginx配置需要重启nginx配置才会生效,第一次直接使用nginx命令开启服务器,系统没有报错说明配置没有语法错误,已经成功启动了。
在这里插入图片描述
这里这里使用netstat命令查看tcp端口情况,netstat工具需要自己安装,可以看到我们配置的nginx虚拟服务器监听在8000端口,服务已经开启。

然后我们直接在浏览器上访问虚拟机服务器的的8000端口
在这里插入图片描述
可以看到成功返回我们的页面信息,我们可以在root下放不同的静态文件,通过不同url请求就可以返回不同的界面来,这就完成通过nginx搭建一个静态的web服务器。

tip: 如果浏览器无法访问,可能是你的的centos系统的防火墙没关。

nginx-搭建一个动态的web服务器

所谓静态和动态的区别不在于页面内容是不是真的能动,而是在静态网页的内容是预先确定的,每一个页面都是网站管理员生成页面时通过读取数据库生成的一个文件(通常以htm、html、shtml等形式为后缀),该网页以文件的形式存储在Web服务器或者本地计算机/服务器之上。网页内容一经发布到网页服务器上,无论是否有用户访问,每个静态网页的内容都是保存在网站服务器上的。也就是说静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件,内容相对稳定。动态网页取决于由用户提供的参数,并随着用户的访问实时读取存储在数据库中的数据中创建页面。也就是说,动态页并没有以文件的形式存储到web服务器上。

我们同样在/usr/share/nginx/html/index.html配置文件的http块中加入以下的server块,这里add_header的意思是在返回响应中添加Content-Type "text/plain;charset=utf-8"字段,浏览器就知道下面返回的数据是直接显示在浏览器界面中,不加这一句的话,下面的信息会以文件的形式下载下来。return 后面是我们返回的信息,200的是状态码,$remote_addr是nginx的内置变量,代表来客户端的ip。

server {
      listen       8001;
      location / {
        add_header Content-Type "text/plain;charset=utf-8";
        return 200 "Your IP Address:$remote_addr";
       }
   }

然后重启nginx,可以看到8001端口已经在监听了。
在这里插入图片描述
浏览器访问服务器的8001端口。
在这里插入图片描述
可以看到页面上已经显示来客户端的ip,而且这个ip的值不同用户访问显示的内容不同,也正是动态的概念所在,这就实现来一个简单的动态网页。

nginx-反向代理

nginx还要很重要的功能是就是反向代理,很多网站也是使用nginx代理后端的服务器,例如我的一个php网站监听在9999端口,使用nginx来反向代理到php的9999端口。就可以通过访问nginx监听的端口来获取php服务器的数据。nginx的反向代理主要是为了实现负载均衡(如果你有多个源站的话)以及访问控制等。
在nginx配置文件的http块中加入以下内容

 server {
      listen       8002;
      location / {
        proxy_pass http://www.baidu.com;
       }
   }

通过proxy_pass实现反向代理,我们监听的是8002端口,代理到百度的首页

重启nginx,查看nginx服务

在这里插入图片描述
访问服务器的8002端口,可以看到nginx已经代理到百度的首页,这就是所谓的反向代理。如果我们要代理到我们的服务器,而我们的服务器有多个地址,这时nginx会用到upstream字段,来配置代理到后端的轮询或是hash的规则,达到一个负载均衡的效果。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值