nginx虚拟主机和模块

Nginx虚拟主机
方式一、基于主机多IP方式
监听方式 默认监听所有的IP地址(运行在所有的本机的IP地址上)
监听方式 可以监听在某个IP地址

[root@web01 conf.d]# cat 172.conf

http
................. server层是被http所包含的区块
server {
listen 172.16.1.7;
server_name _;

location / {
root  /code/172/;
index index.html;
}

}

....................
mkdir /code/172 -p
echo 172.16.1.7 > /code/172/index.html

测试curl 172.16.1.7


server {
listen 10.0.0.7;
server_name _;

location / {
root  /code/10/;
index index.html;
}

}

....................
mkdir /code/10 -p
echo 10.0.0.7 > /code/10/index.html

测试curl 10.0.0.7


方式二、基于端口的配置方式
server {
listen 80;
server_name _;

    location / {
    root /code/80;
    index index.html;
    }

}

[root@web01 conf.d]# mkdir /code/80
[root@web01 conf.d]# echo 80808080808008 > /code/80/index.html
[root@web01 conf.d]# systemctl restart nginx

测试浏览器打开
curl 10.0.0.7

[root@web01 conf.d]# cat 81.conf
server {
listen 81;

location / {
root /code/81;
index index.html;
}

}

[root@web01 conf.d]# mkdir /code/81
[root@web01 conf.d]# echo 8181818181818118 > /code/81/index.html

企业场景 管理后台
[root@web01 conf.d]# cat 80.conf
server {
listen 8888;
server_name _;

location / {
root /code/80;
index index.html;
}
location /admin {           / ========= /code/app
root /code/app;             # 用户访问amdin 实际访问的是 /code/app/admin  
index index.html;
}

}

方式三、基于多个hosts名称方式(多域名方式) 企业最常用
www.oldboyedu.com ----> 10.0.0.200
blog.oldboyedu.com ----> 10.0.0.201
sz.oldboyedu.com ----> 10.0.0.202

配置第一个域名 www.oldboyedu.com
[root@web01 conf.d]# cat www.oldboyedu.conf
server {
listen 80;
server_name www.oldboyedu.com;

location / {
root /code/www;
index index.html;
}

}

根据配置文件创建目录
[root@web01 conf.d]# mkdir /code/www -p
[root@web01 conf.d]# echo www > /code/www/index.html
[root@web01 conf.d]# systemctl restart nginx

配置第二个域名blog.oldboye.com

[root@web01 conf.d]# cat blog.oldboy.conf
server {
listen 80;
server_name blog.oldboyedu.com;

location / {
root /code/blog;
index index.html;
}

}

根据配置文件创建目录
[root@web01 conf.d]# mkdir /code/blog -p
[root@web01 conf.d]# echo blog > /code/blog/index.html
[root@web01 conf.d]# systemctl reload nginx

-------------------------------完成
目标:
自己搭建带域名的网站(hosts解析、购买域名)
多端口方式
多IP方式
多域名方式
无法开网页 如何解决
状态码分析
配置文件报错如何解决
nginx -t 日志文件


第一个模块: autoindex on;自动索引

[root@web01 mirrors]# cat /etc/nginx/conf.d/mirrors.oldboy.conf
server {
listen 80;
server_name mirrors.oldboy.com;

location / {
root    /code/mirrors;
autoindex on;
index index.html;
}

}

同步源到本地
[root@web01 mirrors]# rsync -avz rsync://mirrors.tuna.tsinghua.edu.cn/centos/ /code/mirrors/

第二个模块:显示内容大小为k m g

autoindex_exact_size on;

第三步模块: 显示时间为本地时间

autoindex_localtime on;

第四个模块: 中文字符乱码

charset utf-8,gbk;

第五个模块: 认证模块 打开网页需要输入用户名和密码

auth_basic           "closed site";
auth_basic_user_file /etc/nginx/conf.d/htpasswd;

401: 当没有认证通过的时候
使用htpasswd 生成用户名和加密密码
[root@web01 mirrors]# htpasswd -b -c /etc/nginx/conf.d/htpasswd oldboy 123456
Adding password for user oldboy
[root@web01 mirrors]# cat /etc/nginx/conf.d/htpasswd
oldboy:33UI8X6r$Lokp5KTNJMgX2rVeMG6I7.

[root@web01 conf.d]# cat mirrors.oldboy.conf
server {
listen 80;
server_name mirrors.oldboy.com;
charset utf-8,gbk;
location / {
root /code/mirrors;
autoindex on;
index index.html;
autoindex_exact_size off;
autoindex_localtime on;

auth_basic           "Hello_Linux75";
    auth_basic_user_file  /etc/nginx/conf.d/htpasswd;
}

location /status {
    stub_status;
}

}

使用用户名密码访问网页
curl -uoldboy:123456 mirrors.oldboy.com

第六个模块: 提高安全性 允许和拒绝某个网段

allow 10.0.0.222/32;
deny all;

第七个模块: 显示TCP连接的个数

ngx_http_limit_conn_module
[root@web01 conf.d]# dd if=/dev/zero of=/code/mirrors/1g bs=1M count=1000

第八个模块:

limit_req_zone $remote_addr zone=one:10m rate=1r/s; # 每秒用户只能请求1个
limit_req zone=one burst=5 nodelay;                 # 延迟处理5个

第九个模块: 限速

limit_rate_after 800M;
limit_rate 200k;

你可能感兴趣的:(nginx虚拟主机和模块)