nginx 多域名访问多端口应用

同步发布在个人笔记nginx 多域名访问多端口应用
对于个人用户来说,我们一般手上只有一个服务器,但是我们希望在上面部署多个 web 应用。这些不同的应用会占用不同的端口。如果我们不设置 nginx 的话访问方式就是下面这样,靠端口访问十分不方便。

服务端口访问方式
网盘2222www.domain.com:2222
博客3333www.domian.com:3333

我们希望的访问的方式是,我们用不同的域名就能够访问不同端口的 web 应用,本文就记录配置方式。

服务端口访问方式
网盘2222netdisk.domain.com
博客3333blog.domian.com

这就依靠 nginx 的反向代理功能,即把不同端口的服务反向代理到一个端口,这样我们虽然都是访问了 80 端口,但是由于使用的域名不同,nginx 会代理给我们不同的服务。

nginx 文件结构

我们首先要了解 nginx 的配置文件的结构,才知道我们要对哪里动刀。一般情况下 nginx 默认安装在/etc/nginx。和今天任务有关的文件树如下:

/etc/nginx
├── nginx.conf				# nginx 总配置文件
└── conf.d					# 服务配置文件夹
    	├── default.conf				# 默认服务配置 -	80 端口 			
    	├── *.conf						# 自定义的服务配置文件	

首先我们要保证/etc/nginx/nginx.conf总配置文件内有这个语句:include /etc/nginx/conf.d/*.conf;,一般在文件末尾,这句话的意思就是,nginx 启动时会把/etc/nginx/conf.d/文件夹里所有的.conf配置文件都载入。一般情况下这个语句都是包含的。
接下来就是要编写自定义的配置文件,编写方式有两种:

  1. default.conf一个文件里,通过添加配置来部署所有的服务。
  2. 不同的域名(服务)编写不同的.conf文件。

本文推荐第二种,因为后期服务管理起来更方便,喜欢一个文件解决的只需要把单独文件的内容拼接在default.conf后面就行了。

多域名-多端口配置文件

首先我们要把多个域名都先指向我们的服务器,笔记:域名获取 · 解析至公网服务器。然后为了实现上面表格中的访问方式,我们把文件树配置成这样:

/etc/nginx
├── nginx.conf
└── conf.d	
    	├── default.conf					# 一般建议配置文件用域名来命名 			
    	├── netdisk_admin_com.conf			# 网盘服务配置文件	
    	├── blog_admin_com.conf				# 博客服务配置文件

具体的文件配置如下:

netdisk_admin_com.conf

server{
    listen 80;							# http默认端口
    server_name netdisk.domain.com;		# 访问的域名
    
    location / {
        ## 一些其余配置
        proxy_pass http://localhost:2222; 	#核心语句:把2222端口上的网盘服务代理到80端口
    }
    ##### 一些其余配置
}

blog_admin_com.conf

server{
    listen 80;							# http默认端口
    server_name blog.domain.com;		# 访问的域名
    
    location / {
        ## 一些其余配置
        proxy_pass http://localhost:3333; 	#核心语句:把3333端口上的网盘服务代理到80端口
    }
    ##### 一些其余配置
}

之后重启 nginx 服务就好了。

禁止ip访问

有时候不希望他人可以通过 IP 直接访问到我们的服务器(一般是恶意攻击),我们可以在总配置文件/etc/nginx/nginx.conf中添加语句

server {
    listen 80 default;		# default参数表示这个是默认虚拟主机
    return 403;
}

也可以把这些流量导入到自己的网站,做下面的跳转操作:

server { 
	listen 80 default; 
	rewrite ^(.*) http://www.domain.com permanent; 
}

设置404页面

server{
  listen 80;
  server_name www.domain.com;
  error_page 404 /404.html;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值