nginx配置二级域名

最近为了练手Vue框架,写了一个博客项目,昨天刚刚把个人博客部署上线,因为前后端分离,所以使用Ajax来请求后端api接口获取数据,部署的过程中碰到了一个坑。我只有一个域名,所以想让一级域名originalix.com来访问博客,而使用二级域名demo.originalix.com来访问后端页面并且请求api。

怎么做呢,在查阅了资料以后发现,首先应该在域名供应商中添加一条二级域名的记录,比如我想使用的是demo

设置好域名后,在本地ping一下看看能不能ping通过 demo.originalix.com

接下来,ssh进服务器,找到你安装的nginx,启动并且配置。

  • 安装nginx
sudo apt-get install nginx
  • 重启nginx
sudo service nginx start
  • 进入nginx配置文件
sudo vim /etc/nginx/sites-available/default

在配置文件中可以这样写

server {  
    listen 80;
    server_name originalix.com;

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:2368;
    }
}
server {  
    listen 80;
    server_name demo.originalix.com;

    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass         http://127.0.0.1:8000;
    }
}

而我具体是因为后端是Laravel框架的项目,所以我得配置文件是这样写的

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/;

    index index.html index.htm index.nginx-debian.html;

    # server_name 110.223.38.82;
    server_name http://originalix.xyz;

    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
            try_files $uri /index.php =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
}

server {
    listen 80;
    server_name demo.originalix.com;
    root /var/www/originalix/public;
    index index.php index.html index.htm;
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    location ~ \.php$ {
      try_files $uri /index.php =404;
      fastcgi_split_path_info ^(.+\.php)(/.+)$;
      fastcgi_pass unix:/run/php/php7.0-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
    }
}

之后重启nginx,并且打开浏览器,输入 demo.originalix.com 就ok了

ps:在整个过程中如果遇到什么问题,比如 nginx启动失败。可以看一下这里:

//这个命令可以看一下你的nginx配置文件有没有问题,
//如果有问题它会指出,做相应的修改,直到没报错
nginx -t 


//查看日志。比如我nginx -t明明没问题,老是启动失败,
//看了日志才知道 Address already in use,端口被占用o(╯□╰)o
cat /var/log/nginx/error.log  

还是那句话,失败了一定要学会看日志!!!看日志!!!看日志!!!

很简单的事情,我也是摸索了一会儿,崩溃ing。

所以写个博客记录下来,希望能帮助到大家。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Ryan Miao

Javascript跨域后台设置拦截

子域名之间互相访问需要跨域 结论放在开头: 服务端必须设置允许跨域 客户端带cookie需要设置withCredentials 无论服务端是否允许跨域,该req...

2788
来自专栏木头编程 - moTzxx

跨域解决方案整理笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

1463
来自专栏游戏杂谈

记一次Nginx 400错误

在一个非CDN的域名下有一个页面,需要请求CDN域名下的资源。所以在CDN的那台源站的Nginx上设置了

8941
来自专栏一个爱瞎折腾的程序猿

日常开发中的几个常用跨域处理方式

若要通过IP在局域网访问h5,启动开发服务器的时候添加host参数即可 即package.json的dev命令配置如下 "dev": "webpack-de...

1472
来自专栏玩转JavaEE

Redis主从复制(二)

上篇文章和小伙伴们一起搭建了redis主从复制环境,但是还不完善,本文我想再和小伙伴们聊聊主从复制环境搭建的一些细节。

1220
来自专栏阮一峰的网络日志

跨域资源共享 CORS 详解

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。 它允许浏览器向跨源服务器,发出XMLHttpR...

3227
来自专栏Web 开发

各种Kill跨域Boss的方法

对于JSON数据,可以很容易的获取。不过在结合Android的WebView后会存在一个很严重的问题。

710
来自专栏互联网杂技

详解JavaScript跨域问题

什么是跨域? 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 URL 说明 是否允许通信 ...

38710
来自专栏PHP在线

Nginx配置文件详细说明

#运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件...

3296
来自专栏张戈的专栏

【 ES 私房菜】ElasticSearch 详细部署教程

Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。本文详细介绍了elasticserch的部署...

1.3K1

扫码关注云+社区

领取腾讯云代金券