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

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

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

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

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

www.python1616.com   --- python1616

www.linux1616.com      --- linux1616

2.启动Nginx服务

[root@localhost conf]# pkill nginx
[root@localhost conf]# /opt/nginx1616/sbin/nginx
[root@localhost 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

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

  1. 8.5 Ingress实现基于域名的多虚拟主机、URL转发、及多域名https实现等案例

    1.什么是Ingress Ingress 公开了从k8s集群外部到集群内服务的 HTTP 和 HTTPS 路由. 流量路由由 Ingress 资源上定义的规则控制. 可以将 Ingress 配置为服务 ...

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

    apache2.2.x版本 1. 注释主配置文件/etc/httpd/conf/httpd.conf中的 DoucumentRoot #DocumentRoot "/var/www/html ...

  3. CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户

    CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户 一.安装ftp服务 1.检查是否已经安装 # rpm -qa | grep ftp ftp-0.17-54.el6.x86_64 vs ...

  4. nginx笔记 安装nginx 配置 反向代理 多虚拟主机

    1,检测linux上是否 通过yum安装了nginxrpm   -qi  nginx 2.安装nginx之前的依赖包yum install gcc patch libffi-devel python- ...

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

    Nginx的配置文件简介及在Nginx中配置基于不同ip的虚拟主机: #user nobody; worker_processes 1; #error_log logs/error.log; #err ...

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

    有可能只有一个ip出口,但却有多个项目,那么就需要基于端口号架设虚拟主机. Step 1: 检查是否开启 httpd-vhosts.conf apache/conf/httpd.conf文件 # Vi ...

  7. Tomcat的设置4——Tomcat的体系结构与设置基于端口号的虚拟主机

    一.Tomcat体系结构 从conf/server.xml可体现Tomcat的体系.一个Server可有多个service,一个service可以有多个连接器connector,每个连接器暴露出不同的 ...

  8. linux:apache-配置基于域名的虚拟机主机

    一个http服务要配置多个站点,就需要用到虚拟机主机. 虚拟机主机一般有三类:1.基于域名 2.基于端口 3.基于ip 举例操作基于域名配置三个站点: 域名 站点目录 www.eejind.com   ...

  9. Nginx网络架构实战学习笔记(一):Nginx简介、安装、信号控制、nginx虚拟主机配置、日志管理、location 语法、Rewrite语法详解

    文章目录 nginx简介 nginx安装 nginx信号控制 nginx虚拟主机配置 日志管理 location 语法 精准匹配的一般匹配 正则匹配 总结 Rewrite语法详解 nginx简介 Ng ...

随机推荐

  1. /profile文件修改后立即生效

    修改profile etc/profile文件是只读的,直接用vi或gedit打开修改后是无法保存的.要修改profile,需要取得root权限,(使用gedit编辑) $sudo gedit /et ...

  2. EffectiveJava(18)接口优先于抽象类

    ***接口和抽象类同样可以用来定义多个实现的类型,然而,接口通常是最佳途径.*** 这条规则有个例外 – 当演变的容易性比灵活性和功能性更为重要的时候,应该用抽象来定义类型 ,但前提是必须理解并且可以 ...

  3. 基于WPF系统框架设计(2)-Fluent Ribbon之HelloWorld

    Fluent/Ribbon是微软在其最新桌面操作系统Windows 7中使用的图形用户界面. Windows平台的进化,伴随着系统图形界面的重新设计.从Windows XP到Windows Vista ...

  4. redis学习笔记——内存映射数据结构

    内存映射数据结构 解决问题:当一个对象包含的元素数量并不多,或者元素本身的体积并不大时,使用代价高昂的内部数据结构并不是最好的办法. 内存映射数据结构是一系列经过特殊编码的字节序列,创建它们所消耗的内 ...

  5. Angular 学习笔记——ng-repeat 隔行换色

    <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <met ...

  6. 打造你的前端神器-webstorm11

    说起前端编辑器,用过dw,sublime,hbuilder,webstorm也不陌生,之前的版本8有用过一下,但是觉得比sublime重量太多,但是随着后来用node的开始,发现需要打造个web前端神 ...

  7. JavaScript对象按值传递

    1.示例 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF- ...

  8. 【Excle数据透视表】如何在数据透视表中使用合并单元格标志

    先有数据透视表如下: 现在看着这个格式不舒服,我们希望调整成如下这种样式 步骤 单击数据透视表任意单元格→右键→数据透视表选项→布局和格式→合并且居中排列带标签的单元格 注意:如果数据透视表报表布局不 ...

  9. 基于webmagic的种子网站爬取

    代码地址如下:http://www.demodashi.com/demo/12175.html 1. 概述 因为无聊,闲来没事做,故突发奇想,爬个种子,顺便学习爬虫.本文将介绍使用Spring/Myb ...

  10. sql server 类oracle vm_contact() 函数创建

    CREATE FUNCTION dbo.fun_orgname(@id int)RETURNS varchar(8000)AS BEGIN      DECLARE @str varchar(8000 ...