最近手头上有4个项目(端口号不同,express部署的所以端口不能一样,否则会提示端口被占用)要部署到服务器上。使用公网ip地址的方式这4个项目都能在浏览器运行,不过不容易记住,因此要将公网ip地址换成域名的方式访问。于是就采取了二级域名+nginx反向代理的方式实现了功能。使用这种nginx的这种转发方式,也可以避免跨域的问题。
1.配置二级域名
-
阿里云服务器上,创建4个类型为A记录的二级域名
image.png
- ubuntu上创建目录
cd /var/www/
mkdir blog
mkdir book
mkdir ten
mkdir vue
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
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
image.png
然后,
book.520byte.conf
文件改成如下,vue.520byte.conf和blog.520byte.conf和 ten.520byte.conf对照着改即可
<VirtualHost *:80>
ServerName www.book.520byte.com
ServerAlias www.book.520byte.com
DocumentRoot /var/www/book/
<Directory /var/www/book/>
Options FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ServerAdmin webmaster@localhost
</VirtualHost>
- 执行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
网友评论