共计 2182 个字符,预计需要花费 6 分钟才能阅读完成。
Nginx 创建虚拟主机:
一个服务器,一个 httpd,nginx 软件,实现多个网站
方法:基于域名、基于 IP 和基于端口的虚拟主机
【创建基于域名的虚拟主机】
步骤:
1. 修改配置文件
vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.linuxidc.com;【设置域名】
auth_basic “welcome to my nginx”;
auth_basic_user_file “/usr/local/nginx/pass”;
server {
listen 80;
server_name www.linuxmi.com;
charset utf-8;【解析网页文件内容的中文】
location / {
root www;【网页文件路径】
index index.html index.htm;
}
}
# cd /usr/local/nginx/【进入网页文件存放目录添加新的目录】
# mkdir www
# vim www/index.html【书写网页文件】
# /usr/local/nginx/sbin/nginx -s reload【刷新服务】
2. 修改本地域名解析
【因测试机使用,无域名解析,故需更改本地域名解析设置】
修改客户端主机 192.168.4.100 的 /etc/hosts 文件,进行域名解析
# vim /etc/hosts 注:【在客户端进行修改】
192.168.4.5 www.linuxidc.com www.linuxmi.com
注意事项:配置的文件后需分号结尾,若在网页文件内输入中文,需加 charset utf-8 用于解析。
Nginx 地址重写适用范围:
因域名地址可能会因为其他原因更换,而客户因为习惯之前域名,可能会难以适应,故需进行地址重写,可实现网页目录的跳转和域名的跳转,从而增加客户接受能力。
格式:
rewrite 旧地址 新地址 [选项]
1. 修改配置文件
# vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
rewrite /a.html /b.html redirect;【注意空格】
}
}
***** redirect【可加可不加,添加后可以在地址栏上看到地址的跳转】
2. 重起服务
# /usr/local/nginx/sbin/nginx -s reload
可利用正则进行设置
示例:
#access_log logs/host.access.log main;
rewrite ^/ http://www.linuxidc.com/;【尖角号 / 为判断为包含 / 即可跳转】
location / {
root html;
index index.html index.htm;
# rewrite /a.html /b.html redirect;
}
二)实现跳转相同页面【用户访问网页内容可得到相应内容】
1. 修改配置文件:
#access_log logs/host.access.log main;
rewrite ^/(.*) http://www.linuxidc.com/&1;
location / {
root html;
index index.html index.htm;
# rewrite /a.html /b.html redirect;
}
(.*)匹配所有【复制】
$1 粘贴
三)不同浏览器,访问相同页面,返回不同结果
1. 需要准备两套页面
切换到存放网页的目录
# cd /usr/local/nginx/html
创建网页:
echo “curl” > test.html
mkdir firefox
echo “firefox” > firefox/test.html
2. 修改配置文件
#access_log logs/host.access.log main;
#rewrite ^/(.*) http://www.linuxidc.com/&1;
if ($http_user_agent ~* firefox){rewrite ^/(.*)$ /firefox/$1;【首先用 if 语句对浏览器进行判断,然后确定是否对网页进行跳转】【~* 为不区分大小写】
}
location / {
root html;
index index.html index.htm;
# rewrite /a.html /b.html redirect;
}
3. 刷新服务
# /usr/local/nginx/sbin/nginx -s reload
4. 测试
firefox 192.168.4.5/test.html
curl 192.168.4.5/test.html【可以看到显示内容不同】