【第一章】05-第一个Hello world 服务

程序员的套路,任何语言的第一个服务,都是‘Hello world’,我们也来搞一个Hello world服务。

5.1 第一个Hello world 服务

修改默认html文件

/usr/local/nginx/html/index.html

<!DOCTYPE html>
<html>
<head>
    <title>Welcome to OpenResty!</title>
</head>
<body>
    <h1>Welcome to OpenResty!</h1>
    <p><em>hello world</em></p >
</body>
</html>

定义默认serverName

/usr/loca/nginx/conf/nginx.conf
server {
       listen 80;
       server_name localhost;
       location / {
           root   html;
           index  index.html index.htm index.php;
       }
}

说明:

  • 每个nginx服务都会有默认的server_name,默认指定localhost,即可以通过http://127.0.0.1/访问
  • 参数:root html;指的默认代码路径是/usr/local/nginx/html/目录。
  • 生产环境,server_name都是填写真实域名,不会使用localhost。
  • 当一个nginx服务上,只有一个server_name时,即使你配置多个域名的解析,解析到该机器上个,你访问任何域名默认都会到该server_name上。
  • 当一个nginx服务上,有一个server_name localhost;并且还有其它A域名的server_name,那么如果B域名也解析到该机器上,访问B域名默认也是到localhost这个server_name上。
  • 一个nginx服务上,有多个server_name,域名都是解析到该机器,请求到nginx服务上,nginx服务会根据请求的头信息header中的host,去寻找对应的server_name,如果没有匹配,则默认指到server_name localhost下。

5.2 Nginx服务的基本功能

应用场景介绍:

  • 企业级配置,一台机器多个域名,多个服务
  • 以百度举例
  • 获取服务连接状态,判断服务性能指标
  • 控制层使用

5.2.1 Nginx基于域名和IP的多个虚拟主机

1)环境准备:

cp /usr/local/nginx/html/index.html /usr/local/nginx/html/51xue.html 
cat /usr/local/nginx/html/51xue.html 
<!DOCTYPE html> 
    <html> 
        <head> 
            <title>Welcome to 51xue website!</title> 
            <style> body { 
                width: 35em; 
                margin: 0 auto; 
                font-family: 
                Tahoma, Verdana, Arial, sans-serif; 
            } </style> 
        </head> 
        <body> 
            <h1>Welcome to 51xue nginx website!</h1> 
            <p>If you see this page, 51xue nginx homepage! </p> 
            <p><em>Thank you for flying 51xue nginx website.</em></p> 
        </body> 
    </html>

2)虚拟主机配置

基于域名的虚拟机主机配置:

server { 
    server_name www.51xue.com; 
    access_log logs/test51xue.access.log main; 
    error_log logs/test51xue.error.log; 
    index index.html index.php index.htm; 
    root /usr/local/nginx/; 

    location / { 
        root /usr/local/nginx/html/; 
        index 51xue.html; 
    } 
}

基于域名的虚拟机主机功能测试:

基于域名的ip主机配置:

  • 修改配置文件的server_name,调整成一个IP。
  • 修改51xue.html,增加一个标识,方式和上一个页面混合
server { 
    server_name 192.168.0.51; 
    access_log logs/test51xue.access.log main; 
    error_log logs/test51xue.error.log; 
    index index.html index.php index.htm; 

    root /usr/local/nginx/; 
    location / { 
        root /usr/local/nginx/html/; 
        index 51xue.html; 
    } 
}

基于域名的ip主机功能测试:

3)虚拟主机的使用

  • 一般线上使用最多的,是通过域名的方式,使用ip的方式很少很少。
  • 一般ip的方式是用于企业内部调用,内部测试,减少绑定hosts的操作。

5.2.2 Nginx虚拟主机的别名功能

1) 别名存在的意义

(1)什么是别名

  • 域名解析分为几种,常用的针对做网站访问来用的有两种, 一种是只解析到IP的,叫做A记录, 一种是解析到另外一个域名,叫做CNAME记录,也叫别名解析。

(2)为什么要使用别名

  • 输入完整域名繁琐,因为根域‘www’都是一样的,采用别名方式可以更方便。
  • 单域名存在不同的应用场景,比如,公网,内网
  • 单域名存在不同的业务用途,如www.51xue.com,不仅代表51xue官网,还有其博客体系,那么可以增加别名,“51xueblog.com”,不同的业务调用通过域名就知道当前业务是blog业务

(3)示例百度别名

  • www.a.shifen.com. 就是www.baidu.com的别名,也叫cname
dig www.baidu.com ; 
<<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 
<<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32775 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;;
QUESTION SECTION: ;www.baidu.com. IN A ;; 
ANSWER SECTION: 
www.baidu.com. 721 IN CNAME www.a.shifen.com. 
www.a.shifen.com. 246 IN A 112.80.248.76 
www.a.shifen.com. 246 IN A 112.80.248.75

2)别名配置与验证

虚拟主机别名功能配置:

  • 在server_name下增加不同的域名,可以是顶级域名,也可以是二级域名
server { 
    server_name www.51xue.com 51xue.com.cn; 
    access_log logs/test51xue.access.log main; 
    error_log logs/test51xue.error.log; 
    index index.html index.php index.htm; 
    root /usr/local/nginx/; 

    location / { 
        root /usr/local/nginx/html/; 
        index 51xue.html; 
    } 
}

虚拟主机别名功能测试:

5.2.3 Nginx的状态信息功能实战

1)状态信息模块介绍

  • 模块名称:--with-http_stub_status_module
  • 模块作用:用于获取当期nginx服务的状态信息,包括连接数量,超时数量,统计等
  • 使用场景:
  • 安装编译:在configure编译的时候制定这个模块,该模块是默认存在的,不属于第三方模块,因此,直接追加即可。
./configure --prefix=/usr/local/openresty/nginx --with-http_stub_status_module

线上检测:/usr/local/nginx/sbin/nginx -V | grep 'with-http_stub_status_module'

2)虚拟主机别名功能配置:

  • 增加location /51xuestatus,用于获取状态信息
  • 对应location中去调用stub_status模块
  • 这个模块的作用于只能在server,location段。
server { 
    server_name www.51xue.com 51xue.com.cn; 
    access_log logs/test51xue.access.log main; 
    error_log logs/test51xue.error.log; 
    index index.html index.php index.htm; 
    root /usr/local/nginx/; 

    location / { 
        root /usr/local/nginx/html/; 
        index 51xue.html; 
    } 

    location /51xuestatus { 
        stub_status; 
    } 
}

3)虚拟主机别名功能测试:

  • Active connections: 39当前活动的连接数
  • 118112 总连接数connection
  • 118112 成功的连接数connection 失败连接=(总连接数-成功连接数)
  • 502431 总共处理的请求数requests
  • Reading: 0 读取客户端Header的信息数 请求头
  • Writing: 1 返回给客户端的header的信息数 响应头
  • Waiting: 38 在开启keep-alive的情况下,这个值等于active-(reading+writing),nginx处理完请求正在等待下一次请求的驻留连接。
  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值