nginx配置多个域名

nginx配置多个域名

新建了这个blog,同时上传了githubgitee,另外想发布到个人阿里云服务器,在阿里云服务器上直接拉取github仓库。

目标

在不更改原来请求的情况下,添加二级域名blog,转发请求到博客文件夹。

nginx配置解析

原本的配置如下

server {
    listen 80;
    server_name mycroft.wang www.mycroft.wang;
    
    #这是新版本的Nginx转发
    return 301 https://$server_name$request_uri;
    
    # 固定写法-------------
    tcp_nodelay     on;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

server {
        listen 443;
        server_name mycroft.wang www.mycroft.wang;
        ssl on;
        root /home/www;
        index index.html index.htm;
        ssl_certificate   ...;      // 这里省略证书地址
        ssl_certificate_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 ~ \.(html|htm|gif|jpeg|jpg|css|js|png|swf|ico)$ {
        root   /home/www;
        index  index.html index.htm;
    }

    location ~ ^/$ {
        root /home/www;
    }

    location / {
        proxy_pass http://localhost:8080;
        include /home/nginx/proxy.conf;
    }
    
    error_page 404 /404.html;
    location = /404.html {
        root /home/www/error;
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /home/www/error;
    }
}

转发www二级域名到443端口,然后在443端口上转发,静态文件转发到/home/www文件夹,动态请求转发到8080端口。

需要的工作

  1. 新建一个server监听80端口,指定监听的域名blog.mycroft.wang,然后转发到443端口
  2. 新建一个server监听443端口,指定监听的域名blog.mycroft.wang,转发到文件夹/home/blog
  3. 过滤掉git相关文件夹

下面是添加的server,注意没有包括之前的配置

server {
    listen 80;
    server_name blog.mycroft.wang;
    
    #这是新版本的Nginx转发
    return 301 https://$server_name$request_uri;
    
    # 固定写法-------------
    tcp_nodelay     on;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

server {
        listen 443;
        server_name blog.mycroft.wang;
        ssl on;
        root /home/blog;
        index index.html;
        ssl_certificate   ...;      // 这里省略证书地址
        ssl_certificate_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 ~ ^(.*)/\.(svn|git)/ {
            deny all;
        }
}

说明

并没有说明nginx使用的原理,因为我也不懂,这是之前学了一点,依葫芦画瓢弄的,关于nginx的使用,后面再认真学学。

参考文章

如何配置nginx 同一ip,多域名,不同端口?

在Nginx上配置多个站点

nginx忽略.svn和.git


   转载规则


《nginx配置多个域名》 Mycroft Wong 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Android点击空白处关闭软键盘 Android点击空白处关闭软键盘
Android点击空白处关闭软键盘答案直接说解决方法,在Activity中重写dispatchTouchEvent(MotionEvent ev)方法 /** * 点击空白处,关闭软键盘 * * @param event event
2019-08-09
下一篇 
使用hexo搭建博客 使用hexo搭建博客
使用hexo搭建博客前言之前也使用了hexo搭建博客,发布到github, 一开始发布了2篇文章之后也没怎么关心,一个是自己懒,二个是当时并不知道如果使用多用户管理,无法在公司的电脑上也同步更新,如果每次在公司写好,再回家整理发布,就有些太
2019-08-09
  目录