社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

nginx配置二级域名

木子昭 • 5 年前 • 523 次点击  

为了不让域名fangyuanxiaozhan.com闲置, 作者又买了个国内的虚拟主机(VPS)的ip为111.230.254.173, 用wordpress开了个博客网站, 由于vps的空间很大, 我就开了个私有网盘服务, 由于日常开发需要用到git, 但又不想公开代码, 我又开了个私有git服务

我的vps挂了三个服务, 分别是:

我的需求:

实现的方法

  1. 到托管域名的网站, 添加DNS解析, 我的域名fangyuanxiaozhan.com托管在阿里云, 我的做法是登录https://dns.console.aliyun.com/#/dns/domainList, 添加二级记录
  1. 我使用的是centos7, nginx配置文件的默认位置为/etc/nginx/nginx.conf, 有意思的是,/etc/nginx/nginx.conf内引入了 配置文件夹/etc/nginx/conf.d, 也就是我们可以把/etc/nginx/nginx.conf中的一些默认配置注释掉, 直接在文件夹/etc/nginx/conf.d中配置多个独立的配置文件.
  • /etc/nginx/nginx.conf的配置
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

}

注意上述配置文件的最后一行, include /etc/nginx/conf.d/*.conf;保证了/etc/nginx/conf.d/下,所有以.conf结尾的配置文件, 都会被主配置文件nginx.conf引入并生效

  • /etc/nginx/conf.d/下面需要新建三个文件
  • blog.conf (实现8000端口映射到80端口, 不使用二级域名)
server {  
    listen 80;
    server_name fangyuanxiaozhan.com;

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

blog.conf实现了fangyuanxiaozhan.com:8000映射到 fangyuanxiaozhan.com

  • git.conf (实现10080端口映射到80端口, 使用二级域名git)
server {  
    listen 80;
    server_name git.fangyuanxiaozhan.com;

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

git.conf实现了fangyuanxiaozhan.com:10080映射到 git.fangyuanxiaozhan.com

  • nc.conf (实现10080端口映射到80端口, 使用二级域名cloud)
server {  
    listen 80;
    server_name cloud.fangyuanxiaozhan.com;

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

git.conf实现了fangyuanxiaozhan.com:8080映射到 cloud.fangyuanxiaozhan.com


重启nginx使配置生效

  • 关闭nginx
sudo $(which nginx) -s stop
  • 开启nginx
sudo $(which nginx)

效果展示



如果你也希望搭建以上服务, 可以参考我的往期文章:

自从使用了docker, 发现很多服务的搭建都是很简单的, 但随着服务的增多, 二级域名的作用性就显现出来了, nginx可以很方便的解决二级域名的配置问题,掌握了nginx配置二级域名的技术, 我们就可以优雅的开启各种服务了~


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/R1NE4tcQd0
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/22087
 
523 次点击