用户九月菊 發表於 2020-6-2 19:38:00

nginx配置二级域名

<p>&nbsp;</p>
<p>为了不让域名fangyuanxiaozhan.com闲置, 作者又买了个国内的虚拟主机(VPS)的ip为<code>111.230.254.173</code>, 用wordpress开了个博客网站, 由于vps的空间很大, 我就开了个私有网盘服务, 由于日常开发需要用到git, 但又不想公开代码, 我又开了个私有git服务</p>
<h2 id="%E6%88%91%E7%9A%84vps%E6%8C%82%E4%BA%86%E4%B8%89%E4%B8%AA%E6%9C%8D%E5%8A%A1,-%E5%88%86%E5%88%AB%E6%98%AF:">我的vps挂了三个服务, 分别是:</h2>
<ul class="ul-level-0">
<li><ol class="ol-level-1">
<li>WordPress搭建的博客服务, 运行于8000端口, 访问方式 http://fangyuanxiaozhan.com:8000</li>
</ol></li>
<li><ol class="ol-level-1">
<li>Gogs搭建的git服务, 运行于10080端口, 访问方式 http://fangyuanxiaozhan.com:10080</li>
</ol></li>
<li><ol class="ol-level-1">
<li>Nextcloud搭建的网盘服务, 运行于8080端口, 访问方式http://fangyuanxiaozhan.com:10080</li>
</ol></li>
</ul>
<h2 id="%E6%88%91%E7%9A%84%E9%9C%80%E6%B1%82:">我的需求:</h2>
<ul class="ul-level-0">
<li>1.访问博客服务时, 直接输入 http://fangyuanxiaozhan.com</li>
<li><ol class="ol-level-1">
<li>访问git服务时, 直接输入 http://git.fangyuanxiaozhan.com</li>
</ol></li>
<li><ol class="ol-level-1">
<li>访问网盘服务时, 直接输入 http://cloud.fangyuanxiaozhan.com</li>
</ol></li>
</ul>
<h2 id="%E5%AE%9E%E7%8E%B0%E7%9A%84%E6%96%B9%E6%B3%95">实现的方法</h2>
<ol class="ol-level-0">
<li>到托管域名的网站, 添加DNS解析, 我的域名<code>fangyuanxiaozhan.com</code>托管在阿里云, 我的做法是登录<code>https://dns.console.aliyun.com/#/dns/domainList</code>, 添加二级记录</li>
</ol>
<div class="image-block"><img src="https://ask.qcloudimg.com/http-save/yehe-1672643/vhili5nxms.png?imageView2/2/w/1620"></div>
<ol class="ol-level-0">
<li>我使用的是centos7, nginx配置文件的默认位置为<code>/etc/nginx/nginx.conf</code>, 有意思的是,<code>/etc/nginx/nginx.conf</code>内引入了 配置文件夹<code>/etc/nginx/conf.d</code>, 也就是我们可以把<code>/etc/nginx/nginx.conf</code>中的一些默认配置注释掉, 直接在文件夹<code>/etc/nginx/conf.d</code>中配置多个独立的配置文件.</li>
</ol>
<div class="image-block"><img src="https://ask.qcloudimg.com/http-save/yehe-1672643/s6ogcbfvqx.png?imageView2/2/w/1620"></div>
<ul class="ul-level-0">
<li><code>/etc/nginx/nginx.conf</code>的配置</li>
</ul>
<pre class="prism-token tokenlanguage-javascript"># For more information on configuration<span class="token punctuation">, see<span class="token punctuation">:
#   <span class="token operator">* Official English Documentation<span class="token punctuation">: http<span class="token punctuation">:<span class="token operator">/<span class="token operator">/nginx<span class="token punctuation">.org<span class="token operator">/en<span class="token regex">/docs/
#   <span class="token operator">* Official Russian Documentation<span class="token punctuation">: http<span class="token punctuation">:<span class="token operator">/<span class="token operator">/nginx<span class="token punctuation">.org<span class="token operator">/ru<span class="token regex">/docs/

user nginx<span class="token punctuation">;
worker_processes auto<span class="token punctuation">;
error_log <span class="token operator">/<span class="token keyword">var<span class="token operator">/log<span class="token operator">/nginx<span class="token operator">/error<span class="token punctuation">.log<span class="token punctuation">;
pid <span class="token operator">/run<span class="token operator">/nginx<span class="token punctuation">.pid<span class="token punctuation">;

# Load dynamic modules<span class="token punctuation">. See <span class="token operator">/usr<span class="token operator">/share<span class="token operator">/nginx<span class="token operator">/README<span class="token punctuation">.dynamic<span class="token punctuation">.
include <span class="token operator">/usr<span class="token operator">/share<span class="token operator">/nginx<span class="token operator">/modules<span class="token comment">/*.conf;

events {
    worker_connections 1024;
}

http {
    log_formatmain'$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.logmain;

    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;

}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<blockquote>
<p>注意上述配置文件的最后一行, <code>include /etc/nginx/conf.d/*.conf;</code>保证了<code>/etc/nginx/conf.d/</code>下,所有以.conf结尾的配置文件, 都会被主配置文件<code>nginx.conf</code>引入并生效</p>
</blockquote>
<ul class="ul-level-0">
<li>在<code>/etc/nginx/conf.d/</code>下面需要新建三个文件</li>
</ul>
<div class="image-block"><img src="https://ask.qcloudimg.com/http-save/yehe-1672643/ssj6v45vil.png?imageView2/2/w/1620"></div>
<ul class="ul-level-0">
<li>blog.conf (实现8000端口映射到80端口, 不使用二级域名)</li>
</ul>
<pre class="prism-token tokenlanguage-javascript">server <span class="token punctuation">{
    listen <span class="token number">80<span class="token punctuation">;
    server_name fangyuanxiaozhan<span class="token punctuation">.com<span class="token punctuation">;

    location <span class="token operator">/ <span class="token punctuation">{
      proxy_set_header   X<span class="token operator">-Real<span class="token operator">-IP $remote_addr<span class="token punctuation">;
      proxy_set_header   Host      $http_host<span class="token punctuation">;
      proxy_pass         http<span class="token punctuation">:<span class="token operator">/<span class="token operator">/<span class="token number">0.0<span class="token punctuation">.<span class="token number">0.0<span class="token punctuation">:<span class="token number">8000<span class="token punctuation">;
    <span class="token punctuation">}
<span class="token punctuation">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<blockquote>
<p>blog.conf实现了fangyuanxiaozhan.com:8000映射到 fangyuanxiaozhan.com</p>
</blockquote>
<ul class="ul-level-0">
<li>git.conf (实现10080端口映射到80端口, 使用二级域名<code>git</code>)</li>
</ul>
<pre class="prism-token tokenlanguage-javascript">server <span class="token punctuation">{
    listen <span class="token number">80<span class="token punctuation">;
    server_name git<span class="token punctuation">.fangyuanxiaozhan<span class="token punctuation">.com<span class="token punctuation">;

    location <span class="token operator">/ <span class="token punctuation">{
      proxy_set_header   X<span class="token operator">-Real<span class="token operator">-IP $remote_addr<span class="token punctuation">;
      proxy_set_header   Host      $http_host<span class="token punctuation">;
      proxy_pass         http<span class="token punctuation">:<span class="token operator">/<span class="token operator">/<span class="token number">0.0<span class="token punctuation">.<span class="token number">0.0<span class="token punctuation">:<span class="token number">10080<span class="token punctuation">;
    <span class="token punctuation">}
<span class="token punctuation">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<blockquote>
<p>git.conf实现了fangyuanxiaozhan.com:10080映射到 git.fangyuanxiaozhan.com</p>
</blockquote>
<ul class="ul-level-0">
<li>nc.conf (实现10080端口映射到80端口, 使用二级域名<code>cloud</code>)</li>
</ul>
<pre class="prism-token tokenlanguage-javascript">server <span class="token punctuation">{
    listen <span class="token number">80<span class="token punctuation">;
    server_name cloud<span class="token punctuation">.fangyuanxiaozhan<span class="token punctuation">.com<span class="token punctuation">;

    location <span class="token operator">/ <span class="token punctuation">{
      proxy_set_header   X<span class="token operator">-Real<span class="token operator">-IP $remote_addr<span class="token punctuation">;
      proxy_set_header   Host      $http_host<span class="token punctuation">;
      proxy_pass         http<span class="token punctuation">:<span class="token operator">/<span class="token operator">/<span class="token number">0.0<span class="token punctuation">.<span class="token number">0.0<span class="token punctuation">:<span class="token number">8080<span class="token punctuation">;
    <span class="token punctuation">}
<span class="token punctuation">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></pre>
<blockquote>
<p>git.conf实现了fangyuanxiaozhan.com:8080映射到 cloud.fangyuanxiaozhan.com</p>
</blockquote>
<hr>
<h2 id="%E9%87%8D%E5%90%AFnginx%E4%BD%BF%E9%85%8D%E7%BD%AE%E7%94%9F%E6%95%88">重启nginx使配置生效</h2>
<ul class="ul-level-0">
<li>关闭nginx</li>
</ul>
<pre class="prism-token tokenlanguage-javascript">sudo <span class="token function">$<span class="token punctuation">(which nginx<span class="token punctuation">) <span class="token operator">-s stop</span></span></span></span></pre>
<ul class="ul-level-0">
<li>开启nginx</li>
</ul>
<pre class="prism-token tokenlanguage-javascript">sudo <span class="token function">$<span class="token punctuation">(which nginx<span class="token punctuation">)</span></span></span></pre>
<h2 id="%E6%95%88%E6%9E%9C%E5%B1%95%E7%A4%BA">效果展示</h2>
<div class="image-block"><img src="https://ask.qcloudimg.com/http-save/yehe-1672643/w1vfxdszqe.png?imageView2/2/w/1620"></div>
<div class="image-block"><img src="https://ask.qcloudimg.com/http-save/yehe-1672643/7lnjeif482.png?imageView2/2/w/1620"></div>
<div class="image-block"><img src="https://ask.qcloudimg.com/http-save/yehe-1672643/bkv54fzjt3.png?imageView2/2/w/1620"></div>
<ul class="ul-level-0">
<li><strong>本文转:https://cloud.tencent.com/developer/article/1183138</strong></li>
</ul>
<blockquote>
<p>自从使用了docker, 发现很多服务的搭建都是很简单的, 但随着服务的增多, 二级域名的作用性就显现出来了, nginx可以很方便的解决二级域名的配置问题,掌握了nginx配置二级域名的技术, 我们就可以优雅的开启各种服务了~</p>
</blockquote><br><br>
来源:https://www.cnblogs.com/xiadongqing/p/13033289.html
頁: [1]
查看完整版本: nginx配置二级域名