当前位置: 首页 > wzjs >正文

做网站要用什么服务器站长交易网

做网站要用什么服务器,站长交易网,单产品 网站,女生学ui设计难不难目录 一.http相关概述 1.mime 2.server下的listen及root 2.1 listen 2.2 root 3.alias别名 4.location相关概述 4.1 语法规则初步解释 5.access模块 6.验证模块 6.1 htpasswd 7.自定义错误页面 8.虚拟主机搭建 (yum安装) 一.http相关概述 h…

目录

一.http相关概述

1.mime

2.server下的listen及root

2.1 listen

2.2 root

3.alias别名

4.location相关概述

  4.1 语法规则初步解释

5.access模块

6.验证模块

6.1 htpasswd 

7.自定义错误页面

8.虚拟主机搭建 (yum安装)


一.http相关概述

http 是一个大的语句块,包含若干个小的语句块(比如server语句块)。

http {
   expires   1d;
   include       mime.types; #导入支持的文件类型,是相对于/apps/nginx/conf的目录
   default_type application/octet-stream; #除mime.types中文件类型外,设置其它文件默认类型,访问其它类型时会提示下载不匹配的类型文件
#日志配置部分
    #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    #                 '$status $body_bytes_sent "$http_referer" '
    #                 '"$http_user_agent" "$http_x_forwarded_for"';
    #access_log logs/access.log main;
#自定义优化参数
   sendfile       on; 
    #tcp_nopush     on; #在开启了sendfile的情况下,合并请求后统一发送给客户端。
    #tcp_nodelay   off; #在开启了keepalived模式下的连接是否启用TCP_NODELAY选项,当为off时,延迟0.2s发送,默认On时,不延迟发送,立即发送用户响应报文。
    #keepalive_timeout 0;
   keepalive_timeout  65 65; #设置会话保持时间,第二个值为响应首部:keepAlived:timeout=65,可以和第一个值不同
    #gzip on; #开启文件压缩
   server {
       listen        80; #设置监听地址和端口
       server_name localhost   ; #设置server name,可以以空格隔开写多个并支持正则表达式,如:*.kgc.com www.kgc.* ~^www\d+\.kgc\.com$ default_server 

1.mime

此项为支持的 文件格式,如果不支持的格式 会自动帮你下载,如果支持 就会显示在网页上

范例:
text/plain   
text/html  
text/css 
image/jpeg   jpg jpeg
image/png 
video/mp4 
application/javascript
 

2.server下的listen及root

2.1 listen

语法结构:

listen address[:port] [default_server] [ssl] [http2 | quic] [proxy_protocol] [setfib=number] [fastopen=number] [backlog=number] [rcvbuf=size] [sndbuf=size] [accept_filter=filter] [deferred] [bind] [ipv6only=on|off] [reuseport] [so_keepalive=on|off|[keepidle]:[keepintvl]:[keepcnt]];

例子:

listen 127.0.0.1:8000;
listen 127.0.0.1;
listen 8000;
listen *:8000;
listen localhost:8000 bind;

2.2 root

指定主页文件的位置

Syntax:    root path;
Default:    
root html;
Context:    http, server, location, 

root   指明根目录的位置   
location 根据 用户访问地址的不同, 指定访问的目录 

例子: 用户默认访问的主站点文件夹是 /data/nginx/html/pc/

server {
  listen 80;
  server_name localhost;
  root /data/nginx/html/pc/;
}

3.alias别名

例子:别名设置

server {
   listen 80;
   server_name www.kgc.com;
   location /nwes {     
        root /data/nginx/html/pc/;
        #相当于追加  将 文件夹news追加到/data/nginx/html/pc/news
        }
   location /study{
        alias /mnt/nginx/sports/;
        #相当于替换 你访问 study  就是访问/mnt/nginx/sports
        }
}

4.location相关概述

  4.1 语法规则初步解释

#语法规则:
location [ = | ~ | ~* | ^~ ] uri { ... }

=                  #用于标准url前,需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止向下匹配并立即处理请求
^~                #用于标准url前,表示包含正则表达式,并且匹配以指定的正则表达式开头,对URI的最左边部分做匹配检查,不区分字符大小写
~                  #用于标准url前,表示包含正则表达式,并且区分大小写
~*               #用于标准url前,表示包含正则表达式,并且不区分大写
不带符号              #匹配起始于此uri的所有的uri

#\                #用于标准url前,表示包含正则表达式并且转义字符。可以将 . * ?等转义为普通符号

#匹配优先级从高到低:
=, ^~, ~/~*, 不带符号


表格归纳

符号作用
=用于标准uri前,需要请求字串与uri精确匹配,大小敏感,如果匹配成功就停止向下匹配并立即处理请求
^~用于标准uri前,表示包含正则表达式,并且匹配以指定的正则表达式开头,对URI的最左边部分做匹配检查,不区分字符大小写
~用于标准uri前,表示包含正则表达式,并且区分大小写
~*用于标准uri前,表示包含正则表达式,并且不区分大写
不带符号匹配起始于此uri的所有的uri

例子:请解答以下题目选择匹配的 location

location ~ /Test1/$ {
  return 200 'A位置最前的正则表达式匹配';
  }
  location ~* /Test1/(\w+)$ {
  return 200 'B长正则表达式匹配';
  }
  location ^~ /Test1/ {
  return 200 'C 停止正则表达式匹配';
  }
  location /Test1/Test2 {
  return 200 'D 无符号最长的前缀匹配';
  }
  location /Test1 {
  return 200 'E 无符号短前缀匹配';
  }
  location = /Test1 {
  return 200 'F =精确匹配!';
  }

​/Test1
/Test1/
/Test1/Test2
/Test1/Test2/
/test1/Test2

详细解释

url   192.168.91.100/Test1
优先遍历 筛选出符合条件的前缀匹配
因为F精确匹配    E无符号短前缀匹配
由于优先级的关系所以
优先匹配F    F =精确匹配!

url  192.168.91.100/Test1/
优先遍历 筛选出符合条件的前缀匹配
C 停止正则表达式匹配  ^~    /Test1/
E 无符号短前缀匹配         /Test1
nginx  会优先遍历CE
CE 优先匹配  C 比 E长  所以选C
E 又会停止匹配正则的location 所以A B出局
优先匹配  C    停止正则表达式匹配

url  192.168.91.100/Test1/Test2
优先遍历 筛选出符合条件的前缀匹配
C 停止正则表达式匹配     ^~ /Test1/
D 无符号最长的前缀匹配   /Test1/Test2
E 无符号短前缀匹配      /Test1
此时 D  由于最长胜出  但是 由于没有 ^~  前缀 所以会继续按配置文件的顺序去找正则匹配
A ~     /Test1/$   已Test1 结尾显然不符合
B ~*   /Test1/(\w+)$  TEST1后面有1个以上  字母或数字或下划线或汉字   符合要求所以选择   B
优先匹配  B长正则表达式匹配


url  192.168.91.100/Test1/Test2/
优先遍历符合条件的前缀匹配
C 停止正则表达式匹配   ^~ /Test1
D 无符号最长的前缀匹配 /Test1/Test2
E 无符号短前缀匹配    /Test1
先记住 D 无符号最长的前缀匹配
然后去匹配正则
A ~     /Test1/$   已Test1 结尾显然不符合
B ~*   /Test1/(\w+)$  TEST1后面有1个以上字符  \w #匹配字母或数字或下划线或汉字  而/ 不在w中不符合要求

所以返回优先使用D    无符号最长的前缀匹配

url  192.168.91.100/test1/Test2
优先遍历符合条件的匹配
无前缀符号
直接去匹配正则
只有 B 不区分大小写的正则可以匹配
B ~*   /Test1/(\w+)$  TEST1后面有1个以上字符  \w #匹配字母或数字或下划线或汉字  而/ 不在w中不符合要求
优先匹配B 

5.access模块

格式:

Syntax: allow address | CIDR | unix: | all;
Default:    —
Context:    http, server, location, limit_except


Syntax: deny address | CIDR | unix: | all;
Default:    —
Context:    http, server, location, limit_except  (限制  用户的访问方式)

官方例子:

Example Configuration

location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}

实际例子: 

配置文件修改
server {
   listen 80;
   server_name www.kgc.com;
   allow 192.168.91.0/24;
   deny 192.168.91.101;
   location / {
        root /data/nginx/html/pc;
 }

}

匹配了之后就不往下匹配了
所以范围小的往上

当访问 有问题时   默认站点 是按 文件的名字首字母开头排序

实际例子:禁止 用户访问    url  192.168.91.100/test

server{
   listen 192.168.91.100:80;
   server_name www.lucky.com;
   root /data/html;
   location /test {
   deny 192.168.91.101;
   }
}

6.验证模块

模块名称:ngx_http_auth_basic_module

语法:

Syntax: auth_basic string | off;
Default:   
auth_basic off;
Context:    http, server, location, limit_except


Syntax: auth_basic_user_file file;
Default:    —
Context:    http, server, location, limit_except

配置例子:

配置
server {
  listen 80;
  server_name www.kgc.com;
  location / {
       root /data/nginx/html/pc;
}
  location /admin{
       root /data/;
       auth_basic    "welcome";    #提示信息
       auth_basic_user_file /data/.httpuser;  #用户名密码文件,需要用htpasswd  命令生成
}
}

6.1 htpasswd 

要实现验证需要用户名和密码,htpasswd 命令可以建立 虚拟用户名和密码,此命令来自于 httpd-tools 包,如果没有安装 一下即可。

使用方法:

第一次生成文件
htpasswd -c  文件路径 姓名             交互式生成密码
htpasswd -bc 文件路径 姓名 密码         直接将密码跟在后面

-c  代表新建用户名和密码对应的文件
-b  将密码跟在用户名后

非第一次
htpasswd     文件路径 姓名             交互式生成密码
htpasswd -b  文件路径 姓名 密码         直接将密码跟在后面 

生成用户名密码案例:

第一次
[root@localhost conf.d]#htpasswd -bc /apps/nginx/conf.d/.httpuser kgc 123456
#没有  yum install  httpd-tools    -b  将名字密码跟在后面    -c  新建文件
Adding password for user kgc
[root@localhost conf.d]#cat /apps/nginx/conf.d/.httpuser
kgc:$apr1$RtjFE23R$lf2n.YpdssSf1EYJbIDqT0

非第一次
[root@localhost error]#htpasswd  /apps/nginx/conf.d/.httpuser xiaoming  
New password:
Re-type new password:
Adding password for user xiaoming

htpasswd -bc /data/.httpuser kgc 123456

7.自定义错误页面

格式:

Syntax: error_page code ... [=[response]] url;
Default:    —
Context:    http, server, location, if in location

error_page  404   /index.html

error_page    固定关键字
code          错误响应码(404 403 500  501  502 504等)
=             可以将响应码转换
response      code   状态  666
uri           访问连接

例子:自定义错误页面

www.pc.com/xxxxxxxx                   404
www.pc.com/40x.html
server {
  listen 80;
  server_name www.kgc.com;
  root /data/nginx/html/pc;
  error_page 404 /40x.html;
  #当出现404 错误  就去  root /data/nginx/html/pc/error/ 这个文件夹找40x.html  这个文件
  location = /40x.html {
       root /data/nginx/html/pc/error/;
   }
}

[root@localhost nginx]#mkdir /data/nginx/html/pc/error/
#建立目录
[root@localhost nginx]#cd  /data/nginx/html/pc/error/
#切换目录
[root@localhost nginx]#vim   40x.html
#新建页面,此处页面名字需要和 配置文件中的一致

例子:自定义错误代码

自定义 错误码
server {
  listen 80;
  server_name www.kgc.com;
  root /data/nginx/html/pc;
  error_page 404 =302 /40x.html;
  #把错误码 404 指定成302    注意此处的  40x.html 需要真实存在建立的页面必须一致
  location = /40x.html {
       root /data/nginx/html/pc/error/;
}
  location / {
       root /data/nginx/html/pc;
}
  location /admin{
       auth_basic    "admin site";
       auth_basic_user_file /apps/nginx/conf.d/.httpuser;
}
}

例子:错误了直接跳转到主页面

#出了错  直接跳转到显示主站点
server {
  listen 80;
  server_name www.kgc.com;
  root /data/nginx/html/pc/index.html;
  error_page 404 =302  /index.html;
  #把错误码 404 指定成302  并跳到主页面:/index.html
   error_page 404 = /index.html;
   #也可以不更改状态码直接跳转

8.虚拟主机搭建 (yum安装)

1.修改配置文件

[root@localhost ~]#vim /etc/nginx/nginx.conf
#修改配置文件 要放在  http 模块里
 include             /etc/nginx/mime.types;
 include             /apps/nginx/conf.d/*.conf;

2.建立子配置文件

[root@localhost ~]#mkdir -p /apps/nginx/conf.d/
#建立子配置文件

3.分别编写子配置文件

基于域名

[root@localhost conf.d]#vim pc.conf 
#分别编写配置文件
server {
   listen 80;
   server_name www.pc.com;
   root /data/nginx/html/pc/;
}

[root@localhost conf.d]#vim mobile.conf 
#分别编写配置文件
server {
   listen 80;
   server_name www.mobile.com;
   root /data/nginx/html/mobile/;
}

基于端口

[root@localhost conf.d]#vim pc.conf 
#分别编写配置文件
server {
   listen 192.168.91.100:80;
   server_name www.pc.com;
   root /data/nginx/html/pc/;
}
[root@localhost conf.d]#vim mobile.conf 
#分别编写配置文件
server {
   listen 192.168.91.100:8080;
   server_name www.mobile.com;
   root /data/nginx/html/mobile/;
}

4.构建数据文件夹和相应的数据文件

[root@localhost ~]#mkdir /data/nginx/html/pc -pv
[root@localhost ~]#mkdir /data/nginx/html/mobile -pv
#构建数据文件夹

[root@localhost ~]#echo pc > /data/nginx/html/pc/index.html
[root@localhost ~]#echo moblie > /data/nginx/html/mobile/index.html
#构建数据文件

5.去另一台机器修改/etc/hosts文件

[root@localhost ~]#vim /etc/hosts
192.168.91.100 www.pc.com
192.168.91.100 www.mobile.com

基于域名                        

[root@localhost ~]#curl www.mobile.com
moblie
[root@localhost ~]#curl www.pc.com
pc

基于端口

[root@localhost ~]#curl 192.168.91.100:8080
moblie
[root@localhost ~]#curl 192.168.91.100:80
pc

http://www.dtcms.com/wzjs/559395.html

相关文章:

  • 工商联网站建设作用软件外包公司怎么找业务
  • 微信手机网站案例wordpress付费文章插件
  • 企业网站的建设的目标人物是永州企业网站建设
  • 在网站中设置网站地图蛋糕烘焙wordpress主题
  • 网站关键词优化怎么做零代码网站开发工具
  • 网站建设用什么软件好wordpress怎么选择中文版
  • 流量网站建设教程wordpress调取循环文章的图片
  • 泉州彩票网站建设搜索引擎大全
  • 可以下载的网站模板吗自己做网站广告法
  • 衡阳县专业做淘宝网站那个网站可以做视频app制作
  • 呼市网站开发网站建设方案 安全
  • 南通做百度网站的公司挣钱最快的小游戏
  • 网站怎么加入百度网盟高中文凭能学做网站吗
  • 四核网站建设石家庄网站建设吧
  • 网站 文章 keywords 和主页keywordswordpress jetpack插件
  • 要网站开发费用短信wordpress 归档函数
  • 深圳网站建设clh关键词营销优化
  • 竞猜网站模板wordpress更改上传的大小
  • iis网站建设注册新公司流程
  • 北京建设工程信息网查询衡水做网站优化
  • 临沂网站建设培训学校一般公司常用的邮箱
  • 个人网站建设方案做网站推广 需要ftp
  • 网站建设的主题什么比较好北邻京网站茵建设
  • 腾讯云建设个人网站云南省新农村建设网站
  • 免备案网站建站网站开发广告语
  • 山东川畅科技做网站多少钱网站建设硬件设置
  • 怎么网站网站开发的客户群体
  • 营业范围中网站开发与网页设计上海网站备案人工服务器
  • 长沙网站外包公司吗郴州市北湖区
  • 网站建设柚子网络科技官网做一个付费网站多少钱