Nginx单服务器部署多个网站,域名

Nginx部署多网站

一个反向代理服务器,集中处理请求,转发到其他服务器上

一、单网站单服务器的Nginx配置

server {
    listen       80; # 监听80端口
    server_name  www.google.com google.com; # 带www域名和不带www域名都指向该网站资源

    location / {
        root   /root/www/google; # 网站的静态资源目录,css,js,image文件等
        index  index.html; # 网站首页
    }
    if ( $host != 'www.google.com'){
        rewrite ^(.*) $scheme://www.google.com$1 permanent; # 重定向到www.google.com
    }
}

二、多网站单服务器的Nginx配置

我们公司申请了两个域名一个是baidu.com,另一个是google.com作为公司旗下两大产品的介绍页。

现在只有一台服务器

问题来了

怎么使用Nginx部署两个网站呢?

利用nginx,获取80端口的信息,识别用户访问的是哪个网站,Nginx配置如下

进入/etc/nginx目录,打开nginx.conf文件,在最下面添加下面配置中的server{}结构,意为设置新的服务。


user  root; # 重点,Linux系统中创建Nginx的用户,这里设置为root,拥有文件读取权限
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server { # 默认的server,也就是显示Nginx默认界面
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

	# 以上均为nginx.conf文件的默认配置,不需要更改,直接在下面添加即可
    # another virtual host using mix of IP-, name-, and port-based configuration
    server {
       listen       80;
       server_name  www.baidu.com;

       location / {
           root   /root/www/baidu; # 网站的静态资源目录,css,js,image文件等
           index  index.html; # 网站首页
       }
    }
    
    server {
       listen       80;
       server_name  baidu.com;
       rewrite ^(.*) $scheme://www.$server_name$1 permanent; # 跳转到www域名下
    }
    
    server {
       listen       80;
       server_name  www.google.com;

       location / {
           root   /root/www/google; # 网站的静态资源目录,css,js,image文件等
           index  index.html; # 网站首页
       }
    }
    
    server {
       listen       80;
       server_name  google.com;
       rewrite ^(.*) $scheme://www.$server_name$1 permanent; # 跳转到www域名下
    }
}

通过四个server,实现了baidu.comgoogle.com网站的分别配置,并且指定了不带www的域名跳转到www域名下的网站。

Nginx转发80端口到其他端口

该配置可以将80端口的请求转发给8080端口

例如,springboot的项目部署在8080端口,则80端口的http请求被Nginx转发给Springboot

server {
    listen       80;
    server_name  127.0.0.1:8080; # 服务器名称

    location / {
        proxy_pass http://127.0.0.1:8080; # 转发给8080端口
    }
}

Nginx绑定两个域名

设置两个域名,绑定到同一静态资源目录即可。

server {
    listen       80;
    server_name  www.google.com;

    location / {
        root   /root/www/google; # 网站的静态资源目录,css,js,image文件等
        index  index.html; # 网站首页
    }
}

server {
    listen       80;
    server_name  www.google.com;

    location / {
        root   /root/www/google; # 网站的静态资源目录,css,js,image文件等
        index  index.html; # 网站首页
    }
}
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值