返回列表 发帖

CentOS8_Nginx基于域名的虚拟主机+代理虚拟主机

笺注:这是在 CentOS8安装LNMP+phpMyAdmin 的基础上进行的。


Nginx基于域名的虚拟主机

实验中,会以一个IP地址192.168.168.154,同时支撑两个网站:
www.zhuohua.store
bbs.zhuohua.store



编辑Nginx的主配置文件:
[root@centos8 ~]# find / -name "nginx.conf"
/etc/nginx/nginx.conf

[root@centos8 ~]# vi /etc/nginx/nginx.conf
在文件最后那个大括号 } 上面插入以下代码:
include vhost/*.conf;  ##在目录/etc/nginx/vhost/下的.conf文件都会被加载

如下图:
图片1.png
2021-1-30 21:41




默认站点已加载了目录/etc/nginx/default.d/下的.conf文件:
图片2.png
2021-1-30 21:42



创建存放虚拟主机配置文件的目录:
[root@centos8 ~]# mkdir -p /etc/nginx/vhost



创建虚拟主机配置文件:( www.zhuohua.store
[root@centos8 ~]# cat /etc/nginx/vhost/zhuohua.store.conf
server
    {
        listen 80;
        server_name www.zhuohua.store zhuohua.store; #网站域名、别名之间用空格隔开
        index index.html index.htm index.php;
        root /wwwroot/zhuohua.store;  #网站文件的存放目录
        include /etc/nginx/default.d/*.conf;
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }
        location ~ /\.
        {
            deny all;
        }
        access_log off; #关闭此网站的日志文件功能
    }



网站加载的配置文件:(文件本来就存在的)
[root@centos8 ~]# cd /etc/nginx/default.d/
[root@centos8 default.d]# ll
总用量 4
-rw-r--r--. 1 root root 473 5月   7 2020 php.conf

[root@centos8 default.d]# cat php.conf |grep -v "^#"
index index.php index.html index.htm;

location ~ \.(php|phar)(/.*)?$ {
    fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$;

    fastcgi_intercept_errors on;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_param  PATH_INFO $fastcgi_path_info;
    fastcgi_pass   php-fpm;
}
注释:网站不加载这个文件就无发显示PHP网页。



创建虚拟主机的网站文件存放目录:
mkdir -p /wwwroot/zhuohua.store


创建虚拟主机的默认首页文件:
echo 'zhuohua.store' > /wwwroot/zhuohua.store/index.html


创建PHP测试页:
[root@centos8 zhuohua.store]# pwd
/wwwroot/zhuohua.store
[root@centos8 zhuohua.store]# cat test.php
<?php
phpinfo();
?>


重启Nginx服务:
[root@centos8 ~]# systemctl restart nginx





Window客户端访问:(在没有DNS服务器解析域名的情况下,可以在文件hosts里绑定)
图片3.png
2021-1-30 21:44


记得设置文件hosts的权限:
图片4.png
2021-1-30 21:44



效果:
http://zhuohua.store/
图片5.png
2021-1-30 21:44


http://www.zhuohua.store/
图片6.png
2021-1-30 21:45



PHP测试页:
http://www.zhuohua.store/test.php
图片7.png
2021-1-30 21:45

注释:这里可以看到PHP配置文件的存放位置。





###
创建虚拟主机配置文件:( bbs.zhuohua.store
[root@centos8 ~]# cat /etc/nginx/vhost/bbs.zhuohua.store.conf
server
    {
        listen 80;
        server_name bbs.zhuohua.store bb.zhuohua.store b.zhuohua.store;
        index index.html index.htm index.php;
        root /wwwroot/bbs.zhuohua.store;
        include /etc/nginx/default.d/*.conf;
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }
        location ~ /\.
        {
            deny all;
        }
access_log /var/log/nginx/bbs.zhuohua.store.log; #开启此网站的日志文件功能
    }



创建虚拟主机的站点文件存放目录:
mkdir -p /wwwroot/bbs.zhuohua.store

创建虚拟主机的默认首页文件:
echo 'bbs.zhuohua.store' > /wwwroot/bbs.zhuohua.store/index.htm


重启Nginx服务:
[root@centos8 ~]# systemctl restart nginx



Window客户端访问:
图片8.png
2021-1-30 21:46



图片9.png
2021-1-30 21:46


图片10.png
2021-1-30 21:47


图片11.png
2021-1-30 21:47




网站( bbs.zhuohua.store )的Nginx日志文件:
[root@centos8 ~]# ll /var/log/nginx/
总用量 24
-rw-r--r--. 1 root root 10394 1月  30 02:05 access.log
-rw-r--r--. 1 root root   484 1月  30 20:11 bbs.zhuohua.store.log
-rw-r--r--. 1 root root  6340 1月  30 20:11 error.log

[root@centos8 ~]# tail -3 /var/log/nginx/bbs.zhuohua.store.log
192.168.168.164 - - [30/Jan/2021:20:14:48 +0800] "GET /favicon.ico HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400"
192.168.168.164 - - [30/Jan/2021:20:14:48 +0800] "GET /favicon.ico HTTP/1.1" 404 571 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400"
192.168.168.164 - - [30/Jan/2021:20:14:50 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3722.400 QQBrowser/10.5.3751.400"

注释:可以看到访问网站( bbs.zhuohua.store )的客户端IP地址等等信息。










######

Nginx配置了虚拟主机后,依旧可以访问默认站点的:
http://192.168.168.154/
图片12.png
2021-1-30 21:48



也依旧可以访问默认站点的子目录:
http://192.168.168.154/pmd/
图片13.png
2021-1-30 21:48


图片14.png
2021-1-30 21:48





给phpMyAdmin也创建一个基于域名的虚拟主机:( pmd.zhuohua.store
[root@centos8 ~]# cat /etc/nginx/vhost/pmd.zhuohua.store.conf
server
    {
        listen 80;
        server_name pmd.zhuohua.store;
        index index.php;
        root /usr/share/nginx/html/pmd;
        include /etc/nginx/default.d/*.conf;
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }
        location ~ /\.
        {
            deny all;
        }
        access_log off;
    }


重启Nginx服务:
[root@centos8 ~]# systemctl restart nginx


Window客户端访问:
图片15.png
2021-1-30 21:50



图片16.png
2021-1-30 21:50


图片17.png
2021-1-30 21:50













######

Nginx配置代理虚拟主机


创建一个网站:( daili.zhuohua.store
[root@centos8 ~]# cat /etc/nginx/vhost/daili.zhuohua.store.conf
server
    {
        listen 80;
        server_name daili.zhuohua.store;
        location /
        {
  proxy_pass http://blog.zhuohua.store:80/;
        }
    }

注释:当客户端访问http://daili.zhuohua.store时,自动跳转到http://blog.zhuohua.store:80



重启Nginx服务:
[root@centos8 ~]# systemctl restart nginx


Window客户端访问:
图片18.png
2021-1-30 21:51



代理成功:(不会直接显示被代理网站的域名)
图片19.png
2021-1-30 21:52


图片20.png
2021-1-30 21:52






######

虚拟主机的配置文件:
图片21.png
2021-1-30 21:52







相关文章:
Nginx基于域名的虚拟主机/域名重定向/访问控制/防盗链/SSL
Nginx代理虚拟主机
Nginx用户验证

CentOS8_在Docker中使用Nginx的反向代理

返回列表