Linux安装Nignx基于域名的多虚拟主机实战

看这个文章之前,要保证你的Nginx已经安装成功!

如果没有,请移步到下面这个文章,看完后再回来看!

https://www.cnblogs.com/apollo1616/p/10214531.html

1.前车之鉴,我们先去准备好两个域名分别对应的网页。

目录规划:本次实验静态文件总目录为apollo,下面设置两个文件夹,对应2个域名

www.python1616.com   --- python1616

www.linux1616.com      --- linux1616

2.启动Nginx服务

[[email protected] conf]# pkill nginx
[[email protected] conf]# /opt/nginx1616/sbin/nginx
[[email protected] conf]# /opt/nginx1616/sbin/nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

3.Nginx配置文件设置

nginx.conf主配置文件学习
# nginx工作进程数,根据cpu的核数定义
worker_processes  4;
events {
    # 连接数
    worker_connections  1024;
}
# http区域块,定义nginx的核心web功能
http {
    include(关键字) mime.types(可修改的值);
    default_type application/octet-stream;

    # 定义日志格式
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;

    # 开启访问日志功能的参数
    access_log logs/access.log main;
    sendfile on;

    # tcp_nopush on;
    # keepalive_timeout 0;
    # 保持长连接
    keepalive_timeout 65;

    # 支持图片 gif等等压缩,减少网络带宽
    gzip on;

    #这个server标签,控制着nginx的虚拟主机(web站点)
    server {
        # 定义nginx的入口端口是80端口
        listen 80;
        # 填写域名,没有域名就写IP地址
        server_name www.python1616.com;
        # 定义编码
        charset utf-8;
        # location定义网页的访问url
        # 就代表用户的请求是192.168.13.79/
        location / {
            # root参数定义网页根目录
            root /opt/apollo/python1616;;
            # 定义网页首页文件的名字的
            index index.html index.htm;
        }
        # 定义错误页面,客户端的错误,就会返回40x系列错误码
        error_page 404  403 401 400 /404.html;
        # 服务器错误,500系列错误代表后端代码出错
        error_page 500 502 503 504 /50x.html;
    }
    #在另一个server{}的外面,写入新的虚拟主机2
    server{
        listen 80;
        server_name www.linux1616.com;
        location /  {
            # 定义虚拟主机的网页根目录
            root /opt/apollo/linux1616;
            index index.html;
        }
    }
}

4.修改windows本地的测试域名  C:\Windows\System32\drivers\etc\hosts文件
写入如下内容
192.168.13.79 www.python1616.com  
192.168.13.79 www.linux1616.com
因为我们没有www.python1616.com 也没有www.linux1616.com, 因此要在本地搞一个测试域名,
不想改dns的话,就去去买一个域名~~~~~~~~~~~~~~~~~~~~~~

5.然后在浏览器测试访问 两个不同的 web站点
www.python1616.com


www.linux1616.com

6.nginx的访问日志功能
6.1开启nginx.conf中的日志参数
log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                  ‘$status $body_bytes_sent "$http_referer" ‘
                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;
#开启访问日志功能的参数          
access_log  logs/access.log  main;
    
6.2检查access.log的日志信息
tail -f  access.log

7.nginx的拒绝访问功能
7.1在nginx.conf中,添加参数
在server{}虚拟主机标签中,找到location 然后添加参数
#当访问 192.168.13.79/ 的时候
location / {
    #拒绝参数是 deny
    #deny 写你想拒绝的IP地址
    #deny还支持拒绝一整个网站
    deny  192.168.13.33;
    root   /opt/apollo/python1616;
    index  index.html;
}

8.nginx的错误页面优化

error_page  404    /404.html;
# 写上这句话,然后去你项目根目录下面创建一个404.html就ok了

www.python1616.com输错的时候,成功跳转自己自定义的网页

为了见证结果再设置下www.linux1616.com出错时候的页面

8

原文地址:https://www.cnblogs.com/apollo1616/p/10223625.html

时间: 2024-08-30 09:44:35

Linux安装Nignx基于域名的多虚拟主机实战的相关文章

httpd基于域名不同的虚拟主机配置

apache2.2.x版本 1. 注释主配置文件/etc/httpd/conf/httpd.conf中的 DoucumentRoot #DocumentRoot "/var/www/html" 2.把主配置文件NameVirtualHost前面注释去掉,添加本地主机名称 NameVirtualHost 192.168.136.131:80 3.如果注释了ServerName,或者默认为localahost:80或者127.0.0.1:80则会报错,但不影响虚拟主机的使用 "S

Linux系统下Apache2.4.6配置虚拟主机

实验环境:一台Linux虚拟机:CentOS 7.6,Apache 2.4.6,IP地址为192.168.80.100:一台客户端:Windows XP,IP地址为192.168.80.200.虚拟主机:即可以在一台web服务器上运行多个网站.实现方法有3种:1.基于IP地址的虚拟主机,一台web服务器配置多个IP地址,一个IP地址对应一个网站.2.基于端口的虚拟主机,一台web服务器只用一个IP地址提供web服务,开放多个端口,客户端访问web服务器时,需要在网址的后边加上相应的端口号.3.基

基于httpd-2.4配置虚拟主机web站点,并提供https服务(二)

使用httpd-2.2和httpd-2.4实现 > 1.建立httpd服务,要求: > 1) 提供两个基于名称的虚拟主机www1, www2:要求每个虚拟主机都有单独的错误日志和访问日志: > 2) 通过www1的/server-status提供状态信息,且仅允许172.16.0.1主机访问: > 3) www2不允许192.168.1.0/24网络中任意主机访问: > 2.为上面的第2)个虚拟主机提供https服务. > 基于httpd-2.4配置虚拟主机web站点,

Nginx的配置文件简介及在Nginx中配置基于不同ip的虚拟主机

Nginx的配置文件简介及在Nginx中配置基于不同ip的虚拟主机: #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; defa

基于 Apache 构建 web虚拟主机详解

虚拟 web 主机指的是在同一台服务器中运行多个 web 站点,其中的每个站点实际上并不独立占用整个服务器,因此被称为"虚拟" web主机.通过虚拟 web 主机可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本.使用 httpd 可以非常方便地构建虚拟主机服务器,只需要运行一个 httpd 服务就能够同时支撑起大量的 web 站点.httpd 支持的虚拟主机类型包括以下三种:基于域名:相同IP .相同端口 .不同域名基于IP地址:不同IP.相同端口基于端口:相同IP.不同端

Apache配置基于端口号的虚拟主机 Apache virtual host configuration is based on the port

有可能只有一个ip出口,但却有多个项目,那么就需要基于端口号架设虚拟主机. Step 1: 检查是否开启 httpd-vhosts.conf apache/conf/httpd.conf文件 # Virtual hosts Include conf/extra/httpd-vhosts.conf 如果没有开启,必须在httpd.conf文件中设置:如果开启,则可以在apache/conf/extra/httpd-vhosts.conf文件中设置,当然也还是可以再httpd.conf文件中进行设置

Linux下宝塔(BT.CN)虚拟主机管理面板开心版一键脚本

Linux下宝塔(BT.CN)虚拟主机管理面板愉快版一键script 这是一篇受密钥保护的文章,您需要供给访问密钥: 密钥: 希望以上的文章对各位有用,如果觉得不错给我顶一下吧!更多和Linux下宝塔(BT.CN)虚拟主机管理面板开心版一键脚本相关的问题或者对好用的纽约服务器有疑惑也欢迎大家咨询. 原文地址:https://www.cnblogs.com/fubitech/p/9806765.html

httpd批量安装与基于域名建立虚拟主机

Table of Contents ansible 安装 httpd 建立 httpd 服务器,要求提供两个基于名称的虚拟主机: ansible 安装 httpd 注意:提前进行完公钥复制 安装 ansible 并进行配置 安装 yum install -q -y ansible 配置 vim /etc/ansible/hosts [sg1] 192.168.10.7 192.168.10.17 [sg2] 192.168.10.27 在/root 下建立一个 httpd 文件夹 mkdir /

apache基本配置管理之:apache基于IP,port和域名三种虚拟主机配置方法

apache配置管理 一.基于端口,即基于不同的端口,相同的IP的虚拟主机      基于相同ip不同port的虚拟主机 1)vi /etc/http/conf/httpd.conf 2)将Listen字段改为 Listen 80 Listen 8888 (以上设置表示使用80以及8888端口) 3)更改虚拟主机部分为: <VirtualHost 192.168.0.1:80> DocumentRoot /var/www/html/website1 ServerName www.website