扶平 發表於 2022-11-23 16:14:00

Nginx常见配置:多域名对应多端口配置之配置不同域名对应不同端口

<h3 id="一使用nigix做映射---配置不同域名对应不同端口">一、使用Nigix做映射 - 配置不同域名对应不同端口</h3>
<p>我们都知道如果在域名管理的解析面板,对相应的域名进行解析设置,只能设置到ip,而不能精确设置到端口。这里以阿里云DNS解析截图做演示,是不能强行在IP后面添加端口的,如下图所示:</p>
<p><img src="http://my-note-images-mac.oss-cn-shanghai.aliyuncs.com/code-image/s4C0sO.png" alt="s4C0sO" loading="lazy"></p>
<p>大多数开发者,可能只有一个服务器但是有多个域名;</p>
<p><strong>出现需求:</strong>如果一台服务器部署了多个web应用,并且这些应用是使用不同端口启动的,此时我们想让对应端口绑定对应域名,那么就可以Nginx做映射。</p>
<p><strong>举个例子:</strong>比如我有一个域名 <code>www.likecvcv.cn</code>还有一个域名<code>www.likecv.cn</code>,我们在域名解析控制面板把这两个域名解析到我们的服务器公网IP:<code>123.123.123.123</code>。</p>
<p>这时候我们会发现不管是访问<code>www.likecvcv.cn</code>还是<code>www.likecv.cn</code>,他都会默认访问我们80端口对应的程序(默认)。</p>
<p>如果我们要访问90端口的应用程序只能使用:<code>www.likecvcv.cn:90</code>或者<code>www.likecv.cn:90</code>。但是这样很不方便,我们需要的是,让把<code>www.likecvcv.cn:90</code>的端口去掉也能访问默认访问90端口,那么这就需要使用Nginx做映射。</p>
<h3 id="明确需求开始动刀">明确需求,开始动刀</h3>
<h4 id="1写在nginxconf配置文件中">1.写在<code>nginx.conf</code>配置文件中</h4>
<p>1.首先我们要确定,你要访问的端口是对外开放的(可以访问的),如果安全组中没有对外开放你的端口买就需要手动添加一条(端口不一定要是90,可以自己定义);如下图所示:</p>
<p><img src="http://my-note-images-mac.oss-cn-shanghai.aliyuncs.com/code-image/sHGT3F.png" alt="sHGT3F" loading="lazy"></p>
<p>2.这里我们默认你已经有一定的linux基础(了解基本命令行),并且已经在服务器上安装了nginx。我们找到nginx的配置文件,进入<code>/usr/local/nginx/conf</code>目录(此目录仅供参考)然后找到<code>nginx.conf</code>这个文件,使用<code>vim</code>命令进行编辑,这样: <code>vim nginx.conf</code></p>
<p><img src="http://my-note-images-mac.oss-cn-shanghai.aliyuncs.com/code-image/wu2BBw.png" alt="wu2BBw" loading="lazy"></p>
<p>3.进入编辑页面之后,按<code>i</code>就可以开始编辑了,首先我们要为 90 端口设置些可以访问的东西</p>
<pre><code class="language-nginx">http{
...
    server {
      listen       90;
      server_namelocalhost;
      location / {
            root   web/easyBaidu;
            try_files $uri $uri/ /index.html;
            indexindex.html index.htm;
         }
    }
}
</code></pre>
<p>4.然后设置Nginx映射,我们期望当我们以<code>www.likecvcv.cn</code>访问服务器时,默认访问的是90端口,这里的80端口会为我们的请求做个代理,nginx会将90端口映射到80端口进行监听。</p>
<pre><code class="language-nginx">http{
...
    server {
      listen       80;
      server_namewww.likecvcv.cn;
      location / {
            proxy_pass http://localhost:90;
         }
    }
}
</code></pre>
<p>此时,我们访问<code>www.likecvcv.cn</code>会发现,我们默认显示的内容变成了90端口返回的内容了!</p>
<h4 id="2每个域名一个-conf-配置文件的写法">2.每个域名一个 conf 配置文件的写法</h4>
<p> 我们在上面的例子中使用的是一个文件多个域名的写法,也就是只使用一个conf,在里面不断的增加server。这种方式虽然很直观,但是域名多了不好管理,容易混乱。Nginx支持引入的用法,也就是我们可以在其他地方先编写好conf文件。</p>
<p>这里我在 Nginx 的 conf 目录下,创建了一个新的 www.conf 文件夹,随后进入文件夹内,创建了一个likecvcv.conf的配置文件。</p>
<p><img src="http://my-note-images-mac.oss-cn-shanghai.aliyuncs.com/code-image/p7HISz.png" alt="" loading="lazy"></p>
<p>在<code>likecvcv.conf</code> 文件中写入下面的配置</p>
<pre><code class="language-nginx">server {
      listen       80;
      server_namewww.likecvcv.cn;
      location / {
            proxy_pass http://localhost:90;
         }
    }
</code></pre>
<p>然后在nginx.conf中使用引入命令:include <conf file="" url="">; (<conf file="" url="">是你配置文件所在的路径)即可。</conf></conf></p>
<p><img src="http://my-note-images-mac.oss-cn-shanghai.aliyuncs.com/code-image/klVhyF.png" alt="klVhyF" loading="lazy"></p>
<p>需要注意的是这句命令应该放在:http{} 的花括号内。因为include的命令引入相当于被引入的所有代码写在nginx.conf中一样。</p>
<p>此时,我们访问<code>www.likecvcv.cn</code>会发现,效果符合预期,并且我们的conf文件得到了统一管理。</p><br><br>
来源:https://www.cnblogs.com/mosaicMask/p/16918677.html
頁: [1]
查看完整版本: Nginx常见配置:多域名对应多端口配置之配置不同域名对应不同端口