Nginx常见配置:多域名对应多端口配置之配置不同域名对应不同端口
一、使用Nigix做映射 - 配置不同域名对应不同端口
我们都知道如果在域名管理的解析面板,对相应的域名进行解析设置,只能设置到ip,而不能精确设置到端口。这里以阿里云DNS解析截图做演示,是不能强行在IP后面添加端口的,如下图所示:
大多数开发者,可能只有一个服务器但是有多个域名;
出现需求:如果一台服务器部署了多个web应用,并且这些应用是使用不同端口启动的,此时我们想让对应端口绑定对应域名,那么就可以Nginx做映射。
举个例子:比如我有一个域名 www.likecvcv.cn
还有一个域名www.likecv.cn
,我们在域名解析控制面板把这两个域名解析到我们的服务器公网IP:123.123.123.123
。
这时候我们会发现不管是访问www.likecvcv.cn
还是www.likecv.cn
,他都会默认访问我们80端口对应的程序(默认)。
如果我们要访问90端口的应用程序只能使用:www.likecvcv.cn:90
或者www.likecv.cn:90
。但是这样很不方便,我们需要的是,让把www.likecvcv.cn:90
的端口去掉也能访问默认访问90端口,那么这就需要使用Nginx做映射。
明确需求,开始动刀
1.写在nginx.conf
配置文件中
1.首先我们要确定,你要访问的端口是对外开放的(可以访问的),如果安全组中没有对外开放你的端口买就需要手动添加一条(端口不一定要是90,可以自己定义);如下图所示:
2.这里我们默认你已经有一定的linux基础(了解基本命令行),并且已经在服务器上安装了nginx。我们找到nginx的配置文件,进入/usr/local/nginx/conf
目录(此目录仅供参考)然后找到nginx.conf
这个文件,使用vim
命令进行编辑,这样: vim nginx.conf
3.进入编辑页面之后,按i
就可以开始编辑了,首先我们要为 90 端口设置些可以访问的东西
http{
...
server {
listen 90;
server_name localhost;
location / {
root web/easyBaidu;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
}
}
4.然后设置Nginx映射,我们期望当我们以www.likecvcv.cn
访问服务器时,默认访问的是90端口,这里的80端口会为我们的请求做个代理,nginx会将90端口映射到80端口进行监听。
http{
...
server {
listen 80;
server_name www.likecvcv.cn;
location / {
proxy_pass http://localhost:90;
}
}
}
此时,我们访问www.likecvcv.cn
会发现,我们默认显示的内容变成了90端口返回的内容了!
2.每个域名一个 conf 配置文件的写法
我们在上面的例子中使用的是一个文件多个域名的写法,也就是只使用一个conf,在里面不断的增加server。这种方式虽然很直观,但是域名多了不好管理,容易混乱。Nginx支持引入的用法,也就是我们可以在其他地方先编写好conf文件。
这里我在 Nginx 的 conf 目录下,创建了一个新的 www.conf 文件夹,随后进入文件夹内,创建了一个likecvcv.conf的配置文件。
在likecvcv.conf
文件中写入下面的配置
server {
listen 80;
server_name www.likecvcv.cn;
location / {
proxy_pass http://localhost:90;
}
}
然后在nginx.conf中使用引入命令:include
需要注意的是这句命令应该放在:http{} 的花括号内。因为include的命令引入相当于被引入的所有代码写在nginx.conf中一样。
此时,我们访问www.likecvcv.cn
会发现,效果符合预期,并且我们的conf文件得到了统一管理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?