Nginx服务配置编写

Nginx服务配置编写

一.编写nginx服务配置

 1.nginx语法格式说明:

  • 大括号要成对出现
  • 每一行指令后面要用分号结尾
  • 每一个指令要放置在指定的区块中、

 2.实现编写一个网站页面:

  conf文件配置如下:

  Nginx服务配置编写

  其次在站点目录创建www文件夹并新建index.html文件:

  Nginx服务配置编写

  index.html的书写格式应按照html的格式进行编写,注意还要在windows的hosts文件配置域名解析

  最后重启nginx即可:/application/nginx/sbin/nginx -s reload

 2.实现编写多个网站页面==编写多个虚拟主机(等于一个网站)

  (1).编写配置文件

 1 server {
 2     listen       80;
 3     server_name  www.etiantian.org;
 4     location / {
 5         root   html/www;
 6         index  index.html index.htm;
 7     }
 8     }
 9     server {
10         listen       80;
11         server_name  bbs.etiantian.org;
12         location / {
13             root   html/bbs;
14             index  index.html index.htm;
15         }
16     }
17     server {
18         listen       80;
19         server_name  blog.etiantian.org;
20         location / {
21             root   html/blog;
22             index  index.html index.htm;
23         }
24     }

 (2).创建站点目录

  mkdir -p /application/nginx/html/{www,bbs,blog}

 (3).创建站点目录下首页文件

Nginx服务配置编写
Nginx服务配置编写

for name in www bbs blog;
        do echo "10.0.0.7 $name.etiantian.org" >/application/nginx/html/$name/index.html;
done
for name in www bbs blog;
        do cat /application/nginx/html/$name/index.html;
done    

创建站点下的首页文件

 (4).进行访问测试

  浏览器访问测试:注意需要编写windows主机hosts文件,进行解析

  命令行访问测试:利用curl命令在linux系统中访问测试。也需要编写linux主机hosts文件解析

二.虚拟主机配置文件编写方法:

 ①. 基于域名的虚拟主机配置方法(最常用)
    ②. 基于端口的虚拟主机配置方法

  Nginx服务配置编写
        说明:当你访问的网站域名在虚拟主机配置中不存在时,默认会将第一个虚拟主机的配置页面响应给用户
    ③. 基于IP地址的虚拟主机配置方法

  Nginx服务配置编写
        说明:nginx服务中只要涉及IP地址的修改,都需要重启nginx服务,而不能采用平滑重启

 三.Nginx服务日志信息

 1.错误日志:

  书写格式:error_log file [level];

  默认:error_log logs/error.log error;

  例如:

  Nginx服务配置编写

  补充说明:

  错误日志的,默认情况下不指定也没有关系,因为nginx很少有错误日志记录的。
    但有时出现问题时,是有必要记录一下错误日志的,方便我们排查问题。
    error_log 级别分为 debug, info, notice, warn, error, crit  默认为crit
    该级别在日志名后边定义格式如下:
    error_log  /your/path/error.log crit;

  crit 记录的日志最少,而debug记录的日志最多。
    如果nginx遇到一些问题,比如502比较频繁出现,但是看默认的error_log并没有看到有意义的信息,
    那么就可以调一下错误日志的级别,当你调成error级别时,错误日志记录的内容会更加丰富

 2.访问日志

  定义日志的格式:

  Nginx服务配置编写

  access_log  logs/access.log  main;                    — 调用定义格式信息,生成访问日志
    $remote_addr       10.0.0.1           — 访问客户端的源地址信息
    $remote_user          –               — 访问客户端认证用户信息   ???
    [$time_local]                         — 显示访问时间
    $request        GET / HTTP/1.1        — 请求行信息
    $status              304              — 状态码信息(304状态码利用缓存显示页面信息)
    $body_bytes_sent                      — 服务端响应客户端的数据大小信息
    $http_referer                         — 记录链接到网站的域名信息  ???
    $http_user_agent                      — 用户访问网站客户端软件标识信息
                                             用户利用客户端浏览器测试访问时,win10默认浏览器会有异常问
    $http_x_forwarded_for                 — ???  反向代理

 3.日志格式切割:

  一般的只要访问nginx都会有nginx日志产生,如果这个日志不及时处理将会很大,因此这里用shell脚本+crontab实现定时切割

  Nginx服务配置编写

  实现定时执行脚本:

  Nginx服务配置编写

四.Nginx服务相关区块说明

 1.location区块说明:

  利用location区块可以用于定位或者匹配网站资源信息

  企业需求解决:

  搭建好一台nginx的web服务器,配置好内网卡地址与外网卡地址

  web服务的网站域名为www.etiantian.org,站点目录为html/www
    要求内网用户可以访问网站http://www.etiantian.org/AV资源信息
    要求外网用户禁止访问网站http://www.etiantian.org/AV资源信息   

  (1).编写nginx配置文件

  Nginx服务配置编写

  (2).创建测试访问资源

  cd   /application/nginx/html/www;mkdir  AV;echo “AV info” >AV/oldboy.html

  (3)重启nginx服务

  /application/nginx/sbin/nginx -t
     /application/nginx/sbin/nginx -s reload

Nginx服务配置编写
Nginx服务配置编写

location [ = | ~ | ~* | ^~ ] uri { ... }
    =     --- 精确匹配网站uri资源信息
    ~     --- 区分大小写匹配网站uri资源信息
    ~*    --- 不区分大小写匹配网站uri资源信息
    ^~    --- 优先匹配网站uri资源信息
    /AV/  --- 指定匹配网站资源目录信息
    /     --- 默认匹配网站资源信息
    !     --- 对匹配的内容进行取反
    
    location = / {
        [ configuration A ]       --- 优先级最高 ①
    }
    
    location / {                  --- 所有匹配都不满足时候,匹配默认location ④
        [ configuration B ]
    }
    
    location /documents/ {        --- 根据资源目录进行匹配         ③
        [ configuration C ]
    }
    
    location ^~ /images/ {        --- 优先匹配 ②
        [ configuration D ]
    }
    
    location ~* \.(gif|jpg|jpeg)$ {  --- 不区分大小写匹配网站资源  ③
        [ configuration E ]
    }

location块

 2.rewrite模块功能说明:

  (1).实现域名地址信息跳转

  (2).用于做为静态

  实现类似百度重写域名的功能:baidu.com  ===>  www.baidu.com

Nginx服务配置编写
Nginx服务配置编写

rewrite指令实践操作一:(错误)
   [root@web01 extra]# cat bbs.conf 
    server {
        listen       80;
        server_name  www.etiantian.org bbs.org;
        rewrite ^/(.*) http://www.etiantian.org/$1 permanent;
        root   html/bbs;
        index  index.html index.htm;
    }
    
    [root@web01 extra]# curl -L etiantian.org 
    curl: (47) Maximum (50) redirects followed
    [root@web01 extra]# curl -Lv etiantian.org   --- 显示无限循环过程
    说明:以上配置进入了无限循环状态

    rewrite指令实践操作二:(正确)
    cat bbs.conf 
    server {
        listen 80;
        server_name etiantian.org;
        rewrite ^/(.*) http://bbs.etiantian.org/$1 permanent;
    }
    server {
        listen       80;
        server_name  bbs.etiantian.org bbs.org;
        root   html/bbs;
        index  index.html index.htm;
    }
    
    rewrite指令实践操作三:(正确)
    [root@web01 extra]# cat bbs.conf 
    server {
        listen       80;
        server_name  bbs.etiantian.org bbs.org;
        if ($host ~* "^etiantian.org$") {
           rewrite ^/(.*) http://bbs.etiantian.org/$1 permanent;
        }
        root   html/bbs;
        index  index.html index.htm;
    }

rewirte指令操作

转载于:https://www.cnblogs.com/datastart/p/10516476.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101055.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • php实现微信扫码登陆,PHP实现微信开放平台扫码登录源码下载[通俗易懂]

    php实现微信扫码登陆,PHP实现微信开放平台扫码登录源码下载[通俗易懂]1、首先到微信开放平台申请https://open.weixin.qq.com/获取到appid和APPSECRET,前台显示页面如下varobj=newWxLogin({id:”login_container”,appid:”wxed782be999f86e0e”,scope:”snsapi_login”,redirect_uri:encodeURIComponent(“htt…

    2022年5月31日
    32
  • 8000401a 错误 及解决办法[通俗易懂]

    8000401a 错误 及解决办法[通俗易懂]
    “/”应用程序中的服务器错误。
    ——————————————————————————–
    检索COM类工厂中CLSID为{00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误:8000401a。
    说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以

    2022年7月25日
    34
  • 批处理for命令的用法_批处理for命令详解

    批处理for命令的用法_批处理for命令详解for/?1.对一组文件中的每一个文件执行某个特定命令。for%variablein(set)docommand[command-parameters]for%%variablein(set)docommand [command-parameters]%variable指定一个单一字母可替换的参数。set表示字符串或变量,当表示多个变量时,中间可以,空格等隔开…

    2022年9月2日
    2
  • Html5 视频(html文件怎么打开)

    video元素支持3种视频格式格式IE9+FirefoxOperaChromeSafariOggNo3.5+10.5+5.0+NoMPEG49.0+NoNo5.0+3.0+WebMNo4.0+10.6+6.0+NoOgg=带有Theora视频编码和Vorbis音频…

    2022年4月15日
    55
  • string类型保留两位小数_js保留4位小数

    string类型保留两位小数_js保留4位小数一Math.round(),Math.ceil(),Math.floor()的区别Math.round():根据“round”的字面意思“附近、周围”,可以猜测该函数是求一个附近的整数小数点后第一位<5正数:Math.round(11.46)=11负数:Math.round(-11.46)=-11小数点后第一位>5正数:Math.round(11.68)=12负数:Math.rou…

    2022年8月10日
    5
  • JDK8官网下载和安装详细说明(Windows10系统)[通俗易懂]

    JDK8官网下载和安装详细说明(Windows10系统)[通俗易懂]一、JDK官网下载1.点击链接https://www.oracle.com进入Oracle官方网站。2.点击下拉菜单,找到ProductHelp—>Downloads3.点击进入Downloads页面,找到javaJDK4.点击进入JDK下载页面(或直接在浏览器输入链接进入下载页面:https://www.oracle.com/technetwork/java/j…

    2022年7月8日
    224

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号