Skip to content

解决一个服务器搭建两个网站后,只有一个域名,通过域名访问两个网站

解决一个服务器搭建两个网站后,只有一个域名,通过域名访问两个网站

what: 解决一个服务器搭建两个网站后,只有一个域名,通过域名访问两个网站

when: 10/22

who:JRT

where:anywhere

why:记录

问题描述:

一个服务器搭建两个网站后,只有一个域名,如何通过域名访问两个网站

问题分析:

一个域名只能解析一个服务器ip,不能至端口,利用nginx反向代理完成

问题解决:

#如,现有域名:jrt.top ,服务器是ip:1.1.1.1 ,搭建了两个web,占用端口是8001、8002
1.在服务器后台利用两个子域名都解析至1.1.1.1,如mblog.jrt.top、www.jrt.top ,并在安全组开放8001及8002、80端口
2.搭建nginx
#docker-compose.yaml

version: '3'
services:
  nginx:
    restart: always
    image: nginx:1.11.6-alpine
    ports:
      - 80:80
    volumes:
      - ./conf.d:/etc/nginx/conf.d
      - ./log:/var/log/nginx
      - ./www:/var/www
      - /etc/letsencrypt:/etc/letsencrypt

3.启动docker-compose 及进入对应容器
进入配置文件修改,将下文两个server{}放在http{}
4.重启nginx
5.访问页面(mblog.jrt.top或www.jrt.tao)

nginx配置文件修改及重启

#  vi /etc/nginx/nginx.conf
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;                                                                                                                                                                              

server {                                                                                                                                                                                                           
        listen 80;                                                                                                                                                                                                 
        server_name  mblog.jrt.top;                                                                                                                                                                        
        location / {                                                                                                                                                                                               
           proxy_pass http://1.1.1.1:8001;                                                                                                                                                                   
        }                                                                                                                                                                                                          
   }                                                                                                                                                                                                               

server {                                                                                                                                                                                                           
        listen 80;                                                                                                                                                                                                 
        server_name  www.jrt.top;                                                                                                                                                                          
        location / {                                                                                                                                                                                               
           proxy_pass http://1.1.1.1:8003;                                                                                                                                                                   
        }                                                                                                                                                                                                          
   }      



#重启nginx
find / -name nginx
/usr/sbin/nginx -s reload
#查证书正确
/usr/sbin/nginx -t

https配置

server {                                                                     
        listen 443 ssl;                                                      
        server_name  mblog.jrt.top;                                  
        ssl_certificate /etc/nginx/d/mblog.jrt.top.pem;              
        ssl_certificate_key /etc/nginx/d/mblog.jrt.top.key;          
        ssl_session_timeout 5m;                                              
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                                 
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;  
        ssl_prefer_server_ciphers on;                                        
        location / {                                                         
           proxy_pass http://1.1.1.1:9000;                                 
        }                                                                  
   }                                                                       

server {                                                                   
        listen 443 ssl;                                                    
        server_name  www.rt.top;                                  
        ssl_certificate /etc/nginx/d/www.jrt.top.pem;              
        ssl_certificate_key /etc/nginx/d/www.jrt.top.key;          
        ssl_session_timeout 5m;                                            
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                               
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;                                      
        location / {                                                       
           proxy_pass http://1.1.1.1:8003;                                 
        }                                                                  
}