Nginx多域名共享80端口配置

本文介绍如何使用Nginx为多个域名配置共享80端口,通过实例演示了一级域名和二级域名的解析设置及Nginx虚拟主机配置。

转:https://blog.youkuaiyun.com/u010028869/article/details/86426635

前段时间搭建了两个网站,分别是壁纸网站和个人blog。以这两个网站为例介绍一下如何用一个Nginx配置多个域名共享80端口。

已有资源:

服务器    118.24.51.89
顶级域名    yypic.top
二级域名    blog.yypic.top
首先需要设置域名解析
在域名管理控制台添加两条解析记录,设置了域名解析才可以用域名访问站点

一级域名解析设置:yypic.top->118.24.51.89

二级域名解析设置:blog.yypic.top->118.24.51.89


添加Ngin主配置文件
user nobody;
#工作进程个数,一般跟服务器cpu核数相等,或者核数的两倍
worker_processes 2;

#单个进程最大连接数
events{
    worker_connections 1024; 
}

http{
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    types_hash_max_size 2048;
    keepalive_timeout 65;
    gzip on;
    #服务器集群
    upstream picture_cluster{
         server 118.24.51.89:8080;
    }
    include       mime.types;
    default_type  application/octet-stream;
    include /usr/local/nginx/vhosts/*.conf;
}

以上最关键配置:include /usr/local/nginx/vhosts/*.conf; 意思是在http模块里面加入你要引用的虚拟主机配置文件目录。

添加Ngin虚拟主机配置
在Nginx安装目录下建立vhosts文件夹,用来存放所有站点的配置文件。每个站点对应一个虚拟主机配置。

我这里添加了两个配置:blog.conf picture.conf

picture.conf:

 server{
    listen 80;    #端口号
    server_name yywallpaper.top www.yywallpaper.top yypic.top www.yypic.top yypic.xyz www.yypic.xyz; #服务名
      
    location /{
        proxy_pass http://picture_cluster;
    }

    error_page   500 502 503 504  /50x.html;  
    location = /50x.html {  
         root   html;  
    }  
 }

blog.conf :

server{
        listen 80;
        #域名,多个用空格隔开
        server_name blog.yywallpaper.top blog.yypic.top blog.yypic.xyz;
        #配置hexo博客目录
        root /usr/local/hexo/public;
        location / {
           index  index.html index.htm;
        }
        access_log /tmp/logs/nginx/hexo.access.log;
    }

添加好虚拟主机配置后,将配置引入到主配置文件中“include /usr/local/nginx/vhosts/*.conf;”,然后启动Nginx即可。

最终请求效果就是:

访问yypic.top->域名解析后访问118.24.51.89:80->请求到达Nginx(监听80端口)->适配域名->将请求转发到picture_cluster既 118.24.51.89:8080->请求到达Tomcat服务器->将Response一层层返回。

访问blog.yypic.top->域名解析后访问118.24.51.89:80->请求到达Nginx(监听80端口)->适配域名->将请求转发到目录/usr/local/hexo/public->返回该目录静态html文件。
 

### 配置Nginx实现同一80端口下支持多个不同域名的虚拟主机 为了使Nginx能够在同一80端口下处理来自不同域名的请求,可以通过配置虚拟主机来达成这一目标。每个`server`块代表一个独立的虚拟主机,能够响应特定域名的HTTP请求。 #### 修改Nginx配置文件 编辑位于`/etc/nginx/sites-available/default`或`nginx/conf.d/`目录下的相应配置文件,在其中加入如下所示的内容: ```nginx http { server { listen 80; server_name www.example1.com; location / { proxy_pass http://localhost:port_for_example1; # 将此替换为实际的服务端口号 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } access_log /var/log/nginx/example1.access.log; error_log /var/log/nginx/example1.error.log; } server { listen 80; server_name www.example2.com; location / { proxy_pass http://localhost:port_for_example2; # 同样地,这里也需要指定具体的应用程序端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } access_log /var/log/nginx/example2.access.log; error_log /var/log/nginx/example2.error.log; } } ``` 上述配置展示了两个不同的`server`区块分别用于处理来自`www.example1.com`和`www.example2.com`这两个域名的流量[^1]。需要注意的是,对于每一个新的网站都需要创建一个新的`server`区块,并设置对应的`listen`指令以及唯一的`server_name`属性值。 此外,还需确保DNS记录已正确指向服务器公网IP地址,并且防火墙允许外部访问TCP 80端口。 最后一步是重启Nginx服务以应用更改后的配置: ```bash sudo systemctl restart nginx ``` 或者如果是Debian系Linux发行版,则可能需要执行以下命令: ```bash sudo service nginx restart ``` 这样就完成了基本的多域名共享80端口Nginx配置工作[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值