Linux安装Nignx基于域名的多虚拟主机实战
看这个文章之前,要保证你的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基于域名的多虚拟主机实战的更多相关文章
- 8.5 Ingress实现基于域名的多虚拟主机、URL转发、及多域名https实现等案例
1.什么是Ingress Ingress 公开了从k8s集群外部到集群内服务的 HTTP 和 HTTPS 路由. 流量路由由 Ingress 资源上定义的规则控制. 可以将 Ingress 配置为服务 ...
- httpd基于域名不同的虚拟主机配置
apache2.2.x版本 1. 注释主配置文件/etc/httpd/conf/httpd.conf中的 DoucumentRoot #DocumentRoot "/var/www/html ...
- CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户
CentOS 6.8 ftp服务安装配置 基于本地用户和虚拟用户 一.安装ftp服务 1.检查是否已经安装 # rpm -qa | grep ftp ftp-0.17-54.el6.x86_64 vs ...
- nginx笔记 安装nginx 配置 反向代理 多虚拟主机
1,检测linux上是否 通过yum安装了nginxrpm -qi nginx 2.安装nginx之前的依赖包yum install gcc patch libffi-devel python- ...
- Nginx的配置文件简介及在Nginx中配置基于不同ip的虚拟主机
Nginx的配置文件简介及在Nginx中配置基于不同ip的虚拟主机: #user nobody; worker_processes 1; #error_log logs/error.log; #err ...
- Apache配置基于端口号的虚拟主机 Apache virtual host configuration is based on the port
有可能只有一个ip出口,但却有多个项目,那么就需要基于端口号架设虚拟主机. Step 1: 检查是否开启 httpd-vhosts.conf apache/conf/httpd.conf文件 # Vi ...
- Tomcat的设置4——Tomcat的体系结构与设置基于端口号的虚拟主机
一.Tomcat体系结构 从conf/server.xml可体现Tomcat的体系.一个Server可有多个service,一个service可以有多个连接器connector,每个连接器暴露出不同的 ...
- linux:apache-配置基于域名的虚拟机主机
一个http服务要配置多个站点,就需要用到虚拟机主机. 虚拟机主机一般有三类:1.基于域名 2.基于端口 3.基于ip 举例操作基于域名配置三个站点: 域名 站点目录 www.eejind.com ...
- Nginx网络架构实战学习笔记(一):Nginx简介、安装、信号控制、nginx虚拟主机配置、日志管理、location 语法、Rewrite语法详解
文章目录 nginx简介 nginx安装 nginx信号控制 nginx虚拟主机配置 日志管理 location 语法 精准匹配的一般匹配 正则匹配 总结 Rewrite语法详解 nginx简介 Ng ...
随机推荐
- dubbo官网和帮助文档
dubbo官网和帮助文档 https://github.com/apache/incubator-dubbo 内含帮助文档: http://dubbo.apache.org/books/dubbo-d ...
- Swagger2 (3) 集成easymock 生成mock 测试数据
转载:http://blog.csdn.net/sai739295732/article/details/73957138 2.可以集成swagger 3.我们来玩一下 首先你需要一个swagger ...
- Angular 学习笔记——ng-repeat 隔行换色
<!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <met ...
- Effective C++ 条款17
以独立语句将newed对象置入智能指针 本节我们须要学习的知识核心是注意编译器在同一语句中,调用次序具有不确定性,不同语句中,调用次序确定. 上面的话什么意思? 请看下面代码: int priorit ...
- 《学习bash》笔记--进程处理
1.进程ID和作业编号 当通过附加&号后执行命令时.shell会响应例如以下: $ ls & [1] 3318 当中[1]是作业号,3318是进程号. 一个后台进程完毕时.shell ...
- 小结:VB.NET机房收费系统个人版
经过几天的缝缝补补,自己的个人版最终OK了,!或许是由于有第一次的机房收费系统的经验,这次做,感觉很亲切. 在业务逻辑方面,沿袭曾经的逻辑.做了一点升级.可是修改不大. 在数据库方面,感觉自己从一个小 ...
- DNS主从服务器+mysql
1 .背景 BIND从文本文件中获取数据,这样容易因为编辑错误出现问题. BIND需要将数据加载到内存中,如果域或者记录较多,会消耗大量的内存. BIND启动时解析Zone文件,对于一个记录较多的DN ...
- Unable to connect to a repository at URL 解决方法
提示"Unable to connect to a repository at URL 'svn://localhost/project1/'" or “Can't connect ...
- sql2000实现row_number
一.以PersonID,classid,dt_ClassData为条件进行分组,每个小组加序号,row_number在sql2005中不可用 方法一.sql2000及以上版本--以PersonID,c ...
- lua学习笔记(八)
元表与元方法 基本概念 1.lua中每个值都有一个元表 2.table和userdata可以有各自独立的元表 3.其它类型的值共享其类型所属的单一 ...