nginx快速部署一个网站服务 + 多域名 + 多端口

news2025/2/25 21:23:28

👨‍🎓博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • 一、nginx虚拟主机,部署网站
  • 二、部署单域名/IP网站服务
    • 1、创建一个普通用户,用户管理nginx网站服务
    • 2、修改nginx主配置文件
    • 3、创建虚拟主机nignx子配置文件
    • 4、测试nginx配置文件语法,然后启动
    • 5、域名访问地址
    • 6、IP访问地址
  • 三、nginx的配置文件匹配
  • 四、部署多域名网站服务
    • 1、首先准备两个域名、index路径、nginx配置文件
    • 2、创建两个域名的nginx配置文件
    • 3、创建两个域名的index.html访问页面
    • 4、检查nignx配置是否有误 并 重启nginx服务
    • 5、页面访问两个域名
  • 五、部署多端口网站服务
    • 1、首先准备两个端口、index路径、nginx配置文件(一个即可)
    • 2、创建两个port的nginx配置文件(一个配置中)
    • 3、创建两个端口的index.html页面
    • 4、检查nignx配置是否有误 并 重启nginx服务
    • 5、页面访问两个端口
      • 5.1 页面访问两个端口 --> 各添加一个jpg页面
      • 5.2 页面访问两个端口 --> 各添加一个txt资源
  • 到这里就完成了nginx部署一个网站及多个域名的网站和多个端口的网站
    • 六、相关文章

一、nginx虚拟主机,部署网站

都是在同一台服务器上部署

二、部署单域名/IP网站服务

1、创建一个普通用户,用户管理nginx网站服务

# 创建一个名为www的用户组
groupadd www -g 666

# 创建一个名为www的用户并添加到www的用户组中
useradd www -u 666 -g 666 -M -s /sbin/nologin

# 查看用户id
id www
#结果
uid=666(www) gid=666(www) groups=666(www)

2、修改nginx主配置文件

[root@iz0jlfqv8fyt7iuxoec4clz ~]# cat /etc/nginx/nginx.conf

user  www;		# 设置运行用户,刚刚创建的用户
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/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  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;		# include导入该目录下的*.conf配置文件
}

3、创建虚拟主机nignx子配置文件

只需要写server{}标签即可。

# 先看conf.d下还有没有其他的*.conf结尾的,有的话先备份;
mv default.conf  default.conf-bak
# 创建虚拟主机nignx子配置文件(qqfly配置文件)
vim /etc/nginx/conf.d/qqfly.conf

# 写入如下信息,自己的根据情况自行修改(域名或ip;index.html的访问路径)
server { 
	
	listen 80;
	# nginx会匹配 域名/IP:80
	server_name 域名/IP/localhost;
	# 支持中文的参数
	charset utf-8;
	location  /  {
		# 根据root参数,填写网页根目录信息
		# 表示当你访问 http://域名:80 ,自动来这个目录下找数据
		root  /www/qqfly/;
		# 默认找 /www/qqflq/ 的名字叫做index.html的文件
		index  index.html;
	}
	
}

上面配置文件中配置了index.html的地址,这里可以看到是没有的,我们创建一下;

# 创建一个存放网页访问地址的目录
mkdir -p /www/qqfly/

# 创建网页静态文件,index.html qqfly.jpg  qqfly.txt
# 部署一个静态网站,最基本的提供,html,jpg,txt等静态数据;如果是其他类型的文件,nginx默认不解析,直接下载
# nginx都可以帮你去返回,解析请求
cd /www/qqfly/

# 创建静态页面index.html
cat > /www/qqfly/index.html << EOF
> <meta charset=utf-8>
> <H1>这是一个 qqfly 的测试页面;用于证明nginx一个网站部署成功了;</H1>
> EOF

# 创建一个jpg文件
wget -O qqfly.jpg https://i1.hdslb.com/bfs/archive/5edd3d62a5ca140063ef8e32a852348a422b86b6.jpg

# 创建一个txt文件
echo "qq飞车游戏很好玩!测试!" > qqfly.txt

# 修改静态文件的属主,属组
chown -R www:www /www/

4、测试nginx配置文件语法,然后启动

# 检测nginx配置中语法是否有误
nginx -t 

在这里插入图片描述

ok则为正常,没有错误;

  • 启动nginx
# 查看nginx状态
systemctl status nginx
# 重启nginx
systemctl restart nginx

5、域名访问地址

如果是使用的域名,那么需要在本地配置dns域名解析
分别添加二级域名,三级域名,hosts解析
ip 三级域名 二级域名

  • 配置好还是访问不到?
    1、可以先看看可以ping通域名吗。
    2、检查你本地是否设置了代理,如果有则关闭。

6、IP访问地址

这里我使用的是ip地址访问,因为我的域名需要备案,申请还没下来,所以先用ip测试吧;

  • 访问html资源

在这里插入图片描述

  • 访问jpg资源

在这里插入图片描述

  • 访问txt资源

在这里插入图片描述

  • 如果是其他类型的文件,nginx默认不解析,会直接下载

直接生成静态数据,不用重启nginx,这就是磁盘上的一些静态数据
nginx的server{}虚拟主机,以及设置了,去这个目录下搜索资料

nginx默认不识别这个test.ttt格式的文件,因此直接下载了

例如:

cat > /www/qqfly/qqfly.ttt << EOF
qq飞车游戏很好玩!测试!
EOF

因为是静态页面,上面也说了,修改不用重启;(但是修改配置文件的话就需要重启nignx才能生效;)
页面直接访问,会让你下载;

在这里插入图片描述

下载完打开,里面的内容就是刚刚写进去的内容;

在这里插入图片描述

三、nginx的配置文件匹配

还记得上面让备份的一个nginx配置文件吗,/etc/nginx/conf.d/default.conf,这个里面的server_name 写的是localhost,而咱们用的是ip访问网站,所以默认会先去找default.conf;所以在上面给他备份了一下,然后才会去找另一个conf文件。

nginx配置会有一个先后顺序,默认按照文件名的字典顺序读取 /etc/nginx/conf.d 目录下的配置文件。如果需要特定的加载顺序,可以使用 include 指令来指定读取文件的顺序。

#先看当前有几个nginx配置文件
[root@iz0jlfqv8fyt7iuxoec4clz conf.d]# ls
default.conf-bak  qqfly.conf


#先看第一个default.conf
[root@iz0jlfqv8fyt7iuxoec4clz conf.d]# grep -Ev '#|^$' default.conf-bak
server {
    listen       80;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}



#再看第二个配置文件
[root@iz0jlfqv8fyt7iuxoec4clz conf.d]# cat qqfly.conf 

server { 
	
	listen 80;
	# nginx会匹配 域名/IP:80
	server_name 域名;
	# 支持中文的参数
	charset utf-8;
	location  /  {
		# 根据root参数,填写网页根目录信息
		# 表示当你访问 http://域名:80 ,自动来这个目录下找数据
		root  /www/qqfly/;
		# 默认找 /www/qqflq/ 的名字叫做index.html的文件
		index  index.html;
	}
	
}

可以看到一个写的域名,一个写的localhost;因为我们这边的域名用不了,所以,要是不备份那个default.conf默认的读取的就是default.conf这个配置文件;
如果域名是没问题的,那么直接用域名访问,就会直接去找qqfly.conf这个配置文件,就不会存在先后顺序什么的。

四、部署多域名网站服务

1、首先准备两个域名、index路径、nginx配置文件

域名nginx的index路径nginx的配置文件名
域名1 (test1.top)/www/test1/index.html/etc/nginx/conf.d/test1.conf
域名2 (test2.top)/www/test1/index.html/etc/nginx/conf.d/test2.conf

配置域名的话自己配置就可以;

2、创建两个域名的nginx配置文件

  • test1域名
vim /etc/nginx/conf.d/test1.conf

#内容如下
server {

	listen	80;
	#域名1
	server_name	test1.top;
	# 支持中文的参数
	charset utf-8;

	location / {
		root /www/test1/;
		index index.html;
	}

}
  • test2域名
vim /etc/nginx/conf.d/test2.conf

#内容如下
server {

	listen	80;
	#域名1
	server_name	test2.top;
	# 支持中文的参数
	charset utf-8;

	location / {
		root /www/test2/;
		index index.html;
	}

}

3、创建两个域名的index.html访问页面

  • test1 的 index.html
# 创建test1和test2目录
mkdir -p /www/{test1,test2}

# 创建完之后,写入数据到test1/index.html中
cat > /www/test1/index.html << EOF
> <meta charset=utf-8>
> <H2> test1 页面测试 </H2>
> EOF
  • test2 的 index.html
# 给test2域名写入index.html页面数据

cat > /www/test2/index.html << EOF
<meta charset=utf-8>
<H2> test2 页面测试 </H2>
EOF

4、检查nignx配置是否有误 并 重启nginx服务

# 检查nignx配置是否有误
nginx -t

# 重启nginx服务
systemctl restart nginx

5、页面访问两个域名

test1.top
teset2.top

可以看到分别两个页面,这样多域名网站服务部署成功。

五、部署多端口网站服务

1、首先准备两个端口、index路径、nginx配置文件(一个即可)

端口nginx的index路径nginx的配置文件名(使用同一个配置)
81/www/81/index.html/etc/nginx/conf.d/port.conf
82/www/82/index.html/etc/nginx/conf.d/port.conf

2、创建两个port的nginx配置文件(一个配置中)

vim /etc/nginx/conf.d/port.conf

# 81 端口配置
server {

	listen 81;
	server_name localhost;
	# 支持中文的参数
	charset utf-8;
	
	location / {
		root /www/81/;
		index index.html;
	}

}

# 82 端口配置
server {

	listen 82;
	server_name localhost;
        # 支持中文的参数
        charset utf-8;

	location / {
		root /www/82/;
		index index.html;
	}

}

3、创建两个端口的index.html页面

# 创建目录
mkdir -p /www/{81,82}

# 创建81和82的index页面测试数据
cat > /www/81/index.html << EOF
<meta charset=utf-8>
<H1>我是81,欢迎来到我的页面</H1>
EOF

cat > /www/82/index.html << EOF
<meta charset=utf-8>
<H1>我是82,欢迎来到我的页面</H1>
EOF

4、检查nignx配置是否有误 并 重启nginx服务

# 检查nignx配置是否有误
nginx -t

# 重启nginx服务
systemctl restart nginx

5、页面访问两个端口

ip:端口

  • ip:81

在这里插入图片描述- ip:82

在这里插入图片描述

5.1 页面访问两个端口 --> 各添加一个jpg页面

到网上随便照两张图,分别放到/www/81/下和/www/82/下;

# 81端口的图片
wget -O /www/81/81.jpg https://picnew12.photophoto.cn/20180728/81jianjunjieqizhiyishuzizitisheji-30355854_1.jpg

# 82端口的图片
wget -O /www/82/82.jpg https://img95.699pic.com/xsj/0v/2f/k8.jpg%21/fw/700/watermark/url/L3hzai93YXRlcl9kZXRhaWwyLnBuZw/align/southeast

这里添加完成之后,不需要重启nginx,直接在页面访问 ip:端口/图片名

  • 81 服务器(ip:81/81.jpg)

在这里插入图片描述

  • 82 服务器(ip:82/82.jpg)

在这里插入图片描述

5.2 页面访问两个端口 --> 各添加一个txt资源

echo "我又来测试了,这里是 81 的一个测试页面" > /www/81/81.txt
echo "我也又来测试了,这是是 82 的一个测试页面" > /www/82/82.txt

这里添加完成之后,同样也不需要重启nginx,直接在页面访问 ip:端口/txt名

  • 81 服务器(ip:81/81.txt)

在这里插入图片描述

  • 82 服务器(ip:82/82.txt)

在这里插入图片描述

到这里就完成了nginx部署一个网站及多个域名的网站和多个端口的网站

六、相关文章

文章标题文章连接
【Linux】nginx基础篇 – 介绍及yum安装nginxhttps://liucy.blog.csdn.net/article/details/133928000
【Linux】环境下部署Nginx服务 - 二进制部署方式https://liucy.blog.csdn.net/article/details/132145067
nginx配置负载均衡–实战项目(适用于轮询、加权轮询、ip_hash)https://liucy.blog.csdn.net/article/details/133986013
nginx快速部署一个网站服务 + 多域名 + 多端口https://liucy.blog.csdn.net/article/details/133986102

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1126755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#,数值计算——分类与推理Phylo_slc的计算方法与源程序

1 文本格式 using System; using System.Collections.Generic; namespace Legalsoft.Truffer { public class Phylo_slc : Phylagglom { public override void premin(double[,] d, int[] nextp) { } public override double dminfn(double[…

OS 处理机调度

目录 处理机调度的层次 高级调度 作业 作业控制块 JCB 作业调度的主要任务 低级调度 中级调度 进程调度 进程调度时机 进程调度任务 进程调度机制 排队器 分派器 上下文切换器 进程调度方式 非抢占调度方式 抢占调度方式 调度算法 处理机调度算法的目标 处理…

UE5 虚幻引擎中UI、HUD和UMG的区别与联系

目录 0 引言1 UI 用户界面2 HUD 用户界面3 UMG4 总结 &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;UE虚幻引擎专栏&#x1f4a5; 标题&#xff1a;UE5 虚幻引擎中UI、HUD和UMG的区别与联系❣️ 寄语&#xff1a;加油&#xff0c;一次专注一件事…

Java编写图片转base64

图片转成base64 url &#xff0c; 在我们的工作中也会经常用到&#xff0c;比如说导出 word,pdf 等功能&#xff0c;今天我们尝试写一下。 File file new File("");byte[] data null;InputStream in null;ByteArrayOutputStream out null;try{URL url new URL(&…

C++初阶 入门(2)

目录 一、缺省函数 1.1什么是缺省函数 1.2为什么要有缺省函数 1.3使用缺省函数 1.4测试代码 二、函数重载 2.1什么是函数重载 2.2为什么要有函数重载 2.3什么情况构成函数重载 2.4函数重载例子及代码 三、引用 3.1什么是引用 3.2如何引用 ​3.3常引用(可略过) 3…

【宝塔面板建站】本地连接云服务器的数据库 以阿里云服务器为例子(保姆级图文)

目录 实现效果实现过程1. 获取云服务的数据库root密码 2.尝试本地连接2.1 端口放行2.2 云服务器授权本地访问MySQL权限 实现代码总结 『宝塔面板建站』分享宝塔面板从安装到实战的宝塔面板本机免云服务器免域名搭建网站等内容。 欢迎关注 『宝塔面板建站』 系列&#xff0c;持续…

Plex Media Server for Mac: 打造您的专属媒体库

在数字媒体时代&#xff0c;我们越来越依赖各种媒体应用来丰富我们的生活。其中&#xff0c;Plex Media Server for Mac以其高效、稳定和多功能性&#xff0c;逐渐成为了Mac用户们的首选。今天&#xff0c;我们就来深入探讨这款个人媒体软件的优势和应用场景。 Plex Media Serv…

【Zero to One系列】微服务Hystrix的熔断器集成

前期回顾&#xff1a; 【Zero to One系列】springcloud微服务集成nacos&#xff0c;形成分布式系统 【Zero to One系列】SpringCloud Gateway结合Nacos完成微服务的网关路由 1、hystrix依赖包 首先引入hystrix相关的依赖包&#xff0c;版本方面自己和项目内相对应即可&#…

ABB变频器使用PROFINET IO通信协议时的输入和输出介绍

ABB变频器使用PROFINET IO通信协议时的输入和输出介绍 前面和大家分享了 ABB变频器使用PROFINET IO通信模块时的激活方法 本次继续和大家分享ABB变频器使用PROFINET IO通信协议时的数据输入和输出。 如下图所示,在参数号52、53中可以设置现场总线适配器的数据输入和数据输出,…

MyBatis:配置文件

MyBatis 前言全局配置文件映射配置文件注 前言 在 MyBatis 中&#xff0c;配置文件分为 全局配置文件&#xff08;核心配置文件&#xff09; 和 映射配置文件 。通过这两个配置文件&#xff0c;MyBatis 可以根据需要动态地生成 SQL 语句并执行&#xff0c;同时将结果集转换成 …

深入探索:AbstractQueuedSynchronizer 同步器的神秘面纱

文章目录 &#x1f31f; 一、AQS的底层实现原理&#x1f34a; 1. AQS的概述&#x1f34a; 2. AQS的数据结构&#x1f389; (1) 同步状态&#x1f389; (2) 等待队列 &#x1f34a; 3. AQS的锁请求和释放过程&#x1f389; (1) 独占模式&#x1f389; (2) 共享模式 &#x1f34a…

Electron 学习

Electron基本简介 如果你可以建一个网站&#xff0c;你就可以建一个桌面应用程序。Eletron 是一个使用 JavaScript, HTML和 CSS等Web 技术创建原生程序的框架&#xff0c;它负责比较难搞的部分&#xff0c;你只需把精力放在你的应用的核心上即可。 Electron 可以让你使用纯 Jav…

s27.linux运维面试题分享

第一章 计算机基础和Linux安装 1.冯诺依曼体系结构组成部分 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。2.Linux哲学思想(或Liunx基本原则、思想、规则) 一切都是一个文件&#xff08;包括硬件&#xff09;。小型&#xff0c;单一用途的程序。连…

分享一个月份连续的MSSA插值的GRACE level03数据集

1. 背景介绍 我们通常使用的GRACE数据包含球谐数据和mascon数据。而不管是球谐产品还是mascon产品&#xff0c;都存在月份数据的缺失&#xff0c;如下图所示&#xff08;Yi and Sneeuw, 2021&#xff09;。本专栏分享了一个利用多通道奇异谱分析&#xff08;MSSA&#…

PostgreSQL 插件 CREATE EXTENSION 原理

PostgreSQL 提供了丰富的数据库内核编程接口&#xff0c;允许开发者在不修改任何 Postgres 核心代码的情况下以插件的形式将自己的代码融入内核&#xff0c;扩展数据库功能。本文探究了 PostgreSQL 插件的一般源码组成&#xff0c;梳理插件的源码内容和实现方式&#xff1b;并介…

Apache Doris (四十七): Doris表结构变更-Schema变更

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录

报错解决:libcudart.so和libprotobuf.so链接库未找到

报错解决&#xff1a;libcudart.so和libprotobuf.so链接库未找到 libcudart.so链接库未找到原因解决方法 libprotobuf.so链接库未找到原因解决方法 此博客介绍了博主在编译软件包时遇到的两个报错&#xff0c;主要是libcudart和libprotobuf两个动态链接库未找到的问题&#xff…

频繁full GC排查

场景&#xff1a;通过prometheus去拉取通过actuator组件暴露的端点中的JVM相关指标。通过告警规则&#xff0c;检测线上服务出现频繁full gc。 ((jvm_gc_pause_seconds_count{action"end of major GC",cause!"Heap Dump Initiated GC"}- jvm_gc_pause_sec…

显示屏没有信号monitor no signal from device

双屏幕总是有个屏幕连接不上&#xff0c;显示没有信号。 环境 win11 Dell dual monitor双屏 解决方法 检查电源有没有插好&#xff0c;HDMI或DP线有没有插好。如果仍然出现这个情况&#xff0c;试着更新一下驱动。 如果还是点不亮&#xff0c;那么关掉亮的那个显示屏。用…

前端开发技术栈(工具篇):详细介绍npm、pnpm和cnpm分别是什么,使用方法以及之间有哪些关系

目录 npm、pnpm和cnpm分别是什么 npm pnpm cnpm NPM包管理器 使用npm管理&#xff0c;创建/初始化项目 修改npm镜像&#xff08;npm源设置&#xff09; 基本命令 安装依赖项 下载特定版本的依赖 下载开发依赖 下载全局依赖&#xff08;全局安装&#xff09; 升级依…