Nginx虛擬主機(jī)
方式一、基于主機(jī)多IP方式
監(jiān)聽方式 默認(rèn)監(jiān)聽所有的IP地址(運(yùn)行在所有的本機(jī)的IP地址上)
監(jiān)聽方式 可以監(jiān)聽在某個IP地址
[root@web01 conf.d]# cat 172.conf
http
................. server層是被http所包含的區(qū)塊
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
企業(yè)場景 管理后臺
[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 實(shí)際訪問的是 /code/app/admin
index index.html;
}
}
方式三、基于多個hosts名稱方式(多域名方式) 企業(yè)最常用
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;
}
}
根據(jù)配置文件創(chuàng)建目錄
[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;
}
}
根據(jù)配置文件創(chuàng)建目錄
[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
-------------------------------完成
目標(biāo):
自己搭建帶域名的網(wǎng)站(hosts解析、購買域名)
多端口方式
多IP方式
多域名方式
無法開網(wǎng)頁 如何解決
狀態(tài)碼分析
配置文件報錯如何解決
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/
第二個模塊:顯示內(nèi)容大小為k m g
autoindex_exact_size on;
第三步模塊: 顯示時間為本地時間
autoindex_localtime on;
第四個模塊: 中文字符亂碼
charset utf-8,gbk;
第五個模塊: 認(rèn)證模塊 打開網(wǎng)頁需要輸入用戶名和密碼
auth_basic "closed site";
auth_basic_user_file /etc/nginx/conf.d/htpasswd;
401: 當(dāng)沒有認(rèn)證通過的時候
使用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;
}
}
使用用戶名密碼訪問網(wǎng)頁
curl -uoldboy:123456 mirrors.oldboy.com
第六個模塊: 提高安全性 允許和拒絕某個網(wǎng)段
allow 10.0.0.222/32;
deny all;
第七個模塊: 顯示TCP連接的個數(shù)
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;