二级域名+Nginx反向代理实现多个域名指向同一个公网ip

最近手头上有4个项目(端口号不同,express部署的所以端口不能一样,否则会提示端口被占用)要部署到服务器上。使用公网ip地址的方式这4个项目都能在浏览器运行,不过不容易记住,因此要将公网ip地址换成域名的方式访问。于是就采取了二级域名+nginx反向代理的方式实现了功能。使用这种nginx的这种转发方式,也可以避免跨域的问题。

1.配置二级域名

  • 阿里云服务器上,创建4个类型为A记录的二级域名


    二级域名+Nginx反向代理实现多个域名指向同一个公网ip_第1张图片
    image.png
二级域名+Nginx反向代理实现多个域名指向同一个公网ip_第2张图片
image.png
  • ubuntu上创建目录
cd /var/www/
mkdir blog
mkdir book
mkdir ten
mkdir vue
二级域名+Nginx反向代理实现多个域名指向同一个公网ip_第3张图片
image.png
  • 映射
sudo vim /etc/hosts  
127.0.0.1       blog.520byte.com
127.0.0.1       ten.520byte.com
127.0.0.1       vue.520byte.com
127.0.0.1       book.520byte.com

二级域名+Nginx反向代理实现多个域名指向同一个公网ip_第4张图片
image.png
  • 配置
cd /etc/apache2/sites-available/
sudo cp /etc/apache2/sites-available/000-default.conf  book.520byte.conf
sudo cp /etc/apache2/sites-available/000-default.conf  vue.520byte.conf
sudo cp /etc/apache2/sites-available/000-default.conf  blog.520byte.conf
sudo cp /etc/apache2/sites-available/000-default.conf  ten.520byte.conf

二级域名+Nginx反向代理实现多个域名指向同一个公网ip_第5张图片
image.png

然后, book.520byte.conf文件改成如下,vue.520byte.conf和blog.520byte.conf和 ten.520byte.conf对照着改即可


    ServerName www.book.520byte.com
    ServerAlias www.book.520byte.com
    DocumentRoot /var/www/book/ 
    
        Options FollowSymLinks
        AllowOverride None
        Require all granted
    
    ServerAdmin webmaster@localhost

  • 执行a2ensite命令
sudo a2ensite book.520byte.conf
sudo a2ensite vue.520byte.conf
sudo a2ensite blog.520byte.conf
sudo a2ensite ten.520byte.conf
  • 重启,1次不行,多重启几次
sudo service apache2 restart 

2.配置nginx反向代理

vim /etc/nginx/nginx.conf

添加如下内容

server {
        listen       80;
        server_name   book.520byte.com;
        location / {     
                proxy_pass  http://149.129.100.132:3000;
        }     
    }
    server {
        listen       80;
        server_name   vue.520byte.com;
        location / {     
                proxy_pass  http://149.129.100.132:88;
        }     
    }
    server {
        listen       80;
        server_name   ten.520byte.com;
        location / {     
                proxy_pass  http://149.129.100.132:3003;
        }     
    }
    server {
        listen       80;
        server_name   blog.520byte.com;
        location / {     
                proxy_pass  http://149.129.100.132:83;
        }     
    }
  • 保存执行如下两个命令
sudo nginx -t
sudo nginx -s reload

你可能感兴趣的:(二级域名+Nginx反向代理实现多个域名指向同一个公网ip)