阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

关于 Nginx创建虚拟主机与地址重写

102次阅读
没有评论

共计 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【可以看到显示内容不同】

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2182字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中