Nginx绑定多个域名

Nginx 是一款广泛应用的 Web 服务器,常用于反向代理、负载均衡器以及 HTTP 缓存等。

  1. 远程连接并登录到 Linux 实例。
  2. 执行命令 cd /etc/nginx/conf.d 打开 Nginx 服务配置文件目录.
  3. 执行命令 vi 您要创建的域名.conf 创建域名规则配置文件。
  4. 输入 i 编辑新建的配置文件。
  5. 远程连接并登录到 Linux 实例。
  6. 按 Esc 退出编辑并输入 :wq 保存退出。
  7. 执行命令 nginx -t 检查配置是否有误,并按照报错提示修复错误。
  8. 执行命令 service nginx restart 重启 Nginx 服务。
  9. 执行命令 service nginx reload 重新载入 Nginx 服务。

为每一个域名建立一个单独的配置文件时输入以下内容:

server
{
    listen   80;                            #监听端口设为 80。
    server_name  www.server110.com;         #绑定您的域名。
    index index.htm index.html index.php;   #指定默认文件。
    root /home/www/server110.com;           #指定网站根目录。
    include location.conf;                  #当您需要调用其他配置文件时才粘贴此项,如无需要,请删除此项。
}

将多个域名规则写进一个共同的配置文件时输入以下内容:

server
{
    listen   80;                            #监听端口设为 80。
    server_name  www.server110.com;         #绑定您的域名。
    index index.htm index.html index.php;   #指定默认文件。
    root /home/www/server110.com;           #指定网站根目录。
    include location.conf;                  #当您需要调用其他配置文件时才粘贴此项,如无需要,请删除此项。
}
server
{
    listen   80;                            #监听端口设为 80。
    server_name  msn.server111.com;         #绑定您的域名。
    index index.htm index.html index.php;   #指定默认文件。
    root /home/www/msn.server110.com;       #指定网站根目录。
    include location.conf;                  #当您需要调用其他配置文件时才粘贴此项,如无需要,请删除此项。
}

网站升级成https

  • 以域名托管在阿里云为例
  • 下载对应的证书(可以申请免费的)
  • 在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214957378800897.key;
  • 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到:
# HTTPS server
    # #server {
        # listen 443;
        # server_name localhost;
        # ssl on;
        # ssl_certificate cert.pem;
        # ssl_certificate_key cert.key;
        # ssl_session_timeout 5m;
        # ssl_protocols SSLv2 SSLv3 TLSv1;
        # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        # ssl_prefer_server_ciphers on;
        # location / {
        #
        #
        #}

#}
  • 将其修改为 (以下属性中ssl开头的属性与证书配置有直接关系,其它属性请结合自己的实际情况复制或调整) :如果没有的话,直接创建成下面的
server {
    listen 443;
    server_name localhost;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   cert/214957378800897.pem;
    ssl_certificate_key  cert/214957378800897.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        root html;
        index index.html index.htm;
    }
}
  • 也可以进行反向代理配置
server {
    listen 443;
    server_name www.xx.com
    ssl on;
    ssl_certificate   cert/214957378800897.pem;
    ssl_certificate_key  cert/214957378800897.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://localhost:8888
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection keep-alive;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
  • 然后重启Nginx
执行命令 nginx -t 检查配置是否有误,并按照报错提示修复错误。

执行命令 service nginx restart 重启 Nginx 服务。

执行命令 service nginx reload 重新载入 Nginx 服务。