gpt4 book ai didi

nginx反向代理二级域名绑定方法及注意事项

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章nginx反向代理二级域名绑定方法及注意事项由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

摘要 。

   本文介绍了利用nginx实现多域名和多站点的绑定的方法及相关注意事项。您也可以只看标题或红色标注部分。☺ 。

1、应用场景 。

  我们经常会遇到在同一台服务器建立多个Web站点的情况,普遍的做法是为不同的站点配置不同的端口,这样就可以用IP:Port的形式访问.

  但是用IP访问毕竟不方便,不生动,不容易记忆。那么,我们可以给每个站点绑定不同的域名。(在这里我们仅谈公网情况)即使我们只有一个域名,我们可以设置多个二级域名,使用Nginx很容易实现.

2、基本要求 。

  通常,网上教程会直接贴一段配置文件的代码,告诉我们如此这般就Ok了。但我发现很多新手看着教程配置,并不能像博主那样就Success了,所以接下来我们谈一下基本原理.

  首先,要有一个自己能管理的域名,比如我有一个 postmsg.cn 的域名,就可以生出多个子域名,二世三世千万世…… 。

  其次,有一台能访问的公网服务器,可以在这台服务器上建立自己的Web站点,一个两个三四个,对应端口不一.

  然后,就是域名和站点的绑定,一个萝卜一个坑,当然也可以多个萝卜一个坑…… 。

3、一般配置 。

  需要配置的地方有两个,我们先谈首要先决条件,也是有些新手容易忽略的地方.

  (1)域名配置 。

    把域名的A记录解析指向我们的公网服务器,这一点一般人都能想到。解析的时候只能加IP,是不能带端口号的,即只能使用默认的80端口。(不讨论域名转发) 。

    若想实现子域名绑定,在域名解析的时候必须配置合理。否则只靠Nginx是不行的.

    例如我要把子域名  p.postmsg.cn 绑定到 服务器的 8001端口,我首先要保证访问 p.postmsg.cn 的请求能到达该服务器,然后Nginx才能处理.

    此时,要么在域名A记录解析里加一条 p 的主机记录,要么主机记录里有通配符 * 的配置(*.postmsg.cn的访问全部解析到对应的服务器,慎用),只设置@和www肯定是不行的.

nginx反向代理二级域名绑定方法及注意事项

                        图1 - 域名解析示例 。

  (2)主机配置 。

    域名的请求到达主机之后,一切才可以交给Nginx来处理.

    修改Nginx配置的时候,可以直接在默认配置文件(例如/etc/nginx/nginx.conf,如以下代码片段所示)里修改,也可以在某个目录下新建独立的配置文件,然后 include 这个目录下的配置文件(如第17行所示).

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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;
}

  这是Nginx读取配置文件的格式,我们的配置通常写在 http { } 块里,加上 server 块,在server块里配置。刚才也说了,server块可以写在一个单独文件里,在nginx.conf里包含该文件,同时,支持嵌套 include.

  接下来看一下 server 块的写法:

?
1
2
3
4
5
6
7
8
9
10
11
12
server {
   listen 80;
   server_name p.postmsg.cn;
   location / {
   proxy_pass http: //127 .0.0.1:8008;
     proxy_redirect off;
     proxy_set_header Host $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
   #access_log logs/p_access.log;
}

  这里的 server_name 对应配置的域名,proxy_pass对应代理的真实地址.

  (3)注意事项一 。

    一定要把 80 端口留给负责代理的Nginx。我们可以在一个服务器上同时使用Apache httpd,Nginx,Tomcat,但是域名解析只能使用默认的80端口,负责代理的同志要拿到第一手请求.

  (4)注意事项二 。

    即时生效性。有的朋友感觉自己配置的都对,也重启服务了,可就是看不到想要的结果。这里有三个方面的可能因素.

  •     域名解析生效时间。阿里云的域名最低生效时间是10分钟,有时候可能大于这个值。
  •     本地DNS缓存。可在CMD使用 ipconfig /flushdns 命令刷新本地DNS缓存。
  •     浏览器缓存。这个可能才是最不容易发现的,尤其是谷歌浏览器。F12之后,右键左上角地址栏边上的刷新按钮,点击清空缓存并硬性重新加载。
  •     服务未重启。service nginx restart 有时候可能没有先 stop, 再 start 好用。

4、总结 。

  本文闲扯了利用Nginx实现多域名代理的相关事宜.

以上所述是小编给大家介绍的nginx反向代理二级域名绑定方法及注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我网站的支持! 。

原文链接:https://www.cnblogs.com/visualiz/p/8794862.html 。

最后此篇关于nginx反向代理二级域名绑定方法及注意事项的文章就讲到这里了,如果你想了解更多关于nginx反向代理二级域名绑定方法及注意事项的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com