松风骏马 發表於 2019-5-17 09:55:00

nginx设置绑定解析实现二级域名多域名

<p>&nbsp;</p>
<p>apache(httpd)配置多个二级域名看这个链接:https://www.cnblogs.com/Crazy-Liu/p/10879928.html</p>
<p>&nbsp;</p>
<p>网站的目录结构为<br>/home/www<br>├── bbs.yourdomain.com<br>└── www.yourdomain.com</p>
<p>html为nginx的安装目录下默认的存放源代码的路径。</p>
<p>bbs为论坛程序源代码路径<br>www为主页程序源代码路径</p>
<p>

把相应程序放入上面的路径通过<br>http://www.youdomain.com 访问的就是主页<br>http://bbs.yourdomain.com 访问的就是论坛<br>其它二级域名类推。</p>
<p>&nbsp;</p>
<p>前言:</p>
<p>现在很多人都会解析www二级域名作为主网站。可想弄个博客的网站呢,条件又只有一个ip一台服务器,可以使用nginx设置多个域名。</p>
<p>&nbsp;</p>
<p>注意:nginx默认的配置文件是nginx.conf</p>
<p>&nbsp;</p>
<div class="cnblogs_code">
<pre># find / -<span style="color: rgba(0, 0, 0, 1)">name nginx.conf##查找这个默认配置文件目录
</span>/etc/nginx/<span style="color: rgba(0, 0, 0, 1)">nginx.conf
# </pre>
</div>
<p>Nginx加载的就是这个配置文件内的内容,下面附nginx.conf的内容</p>
<div class="cnblogs_code"><img id="code_img_closed_74fa6580-05f8-4966-a989-f831ee9ef761" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_74fa6580-05f8-4966-a989-f831ee9ef761" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_74fa6580-05f8-4966-a989-f831ee9ef761" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 0, 1)">usernginx;
worker_processesauto;

#error_loglogs</span>/<span style="color: rgba(0, 0, 0, 1)">error.log;
#error_loglogs</span>/<span style="color: rgba(0, 0, 0, 1)">error.lognotice;
#error_loglogs</span>/<span style="color: rgba(0, 0, 0, 1)">error.loginfo;

#pid      logs</span>/<span style="color: rgba(0, 0, 0, 1)">nginx.pid;
worker_rlimit_nofile </span><span style="color: rgba(128, 0, 128, 1)">655350</span><span style="color: rgba(0, 0, 0, 1)">;

events {
    worker_connections</span><span style="color: rgba(128, 0, 128, 1)">102400</span><span style="color: rgba(0, 0, 0, 1)">;
}


http {
    include       mime.types;
    default_typeapplication</span>/octet-<span style="color: rgba(0, 0, 0, 1)">stream;

    log_formatmain</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">$remote_addr - $remote_user [$time_local] "$request" </span><span style="color: rgba(128, 0, 0, 1)">'</span>
                      <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">$status $body_bytes_sent "$http_referer" </span><span style="color: rgba(128, 0, 0, 1)">'</span>
                      <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">"$http_user_agent" "$http_x_forwarded_for"</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;

    access_loglogs</span>/<span style="color: rgba(0, 0, 0, 1)">access.logmain;

    sendfile      on;
    tcp_nopush   on;

    #keepalive_timeout</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">;
    keepalive_timeout</span><span style="color: rgba(128, 0, 128, 1)">65</span><span style="color: rgba(0, 0, 0, 1)">;

    #gzipon;

    server {
      listen       </span><span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">;
      server_namelocalhost;

      #charset koi8</span>-<span style="color: rgba(0, 0, 0, 1)">r;

      #access_loglogs</span>/<span style="color: rgba(0, 0, 0, 1)">host.access.logmain;

      location </span>/<span style="color: rgba(0, 0, 0, 1)"> {
            root   </span>/home/www/html/<span style="color: rgba(0, 0, 0, 1)">;
            index index.php index.html index.htm;
            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!-<span style="color: rgba(0, 0, 0, 1)">e $request_filename) {
                rewrite </span>^(.*)$ /index.php?s=$<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> last;
            }
      }

      #error_page</span><span style="color: rgba(128, 0, 128, 1)">404</span>            /<span style="color: rgba(128, 0, 128, 1)">404</span><span style="color: rgba(0, 0, 0, 1)">.html;

      # redirect server error pages to the </span><span style="color: rgba(0, 0, 255, 1)">static</span> page /<span style="color: rgba(0, 0, 0, 1)">50x.html
      #
      #error_page   </span><span style="color: rgba(128, 0, 128, 1)">500</span> <span style="color: rgba(128, 0, 128, 1)">502</span> <span style="color: rgba(128, 0, 128, 1)">503</span> <span style="color: rgba(128, 0, 128, 1)">504</span>/<span style="color: rgba(0, 0, 0, 1)">50x.html;

      # proxy the PHP scripts to Apache listening on </span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span>:<span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">
      #
      #location </span>~<span style="color: rgba(0, 0, 0, 1)"> \.php$ {
      #    proxy_pass   http:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">127.0.0.1;</span>
<span style="color: rgba(0, 0, 0, 1)">      #}

      # pass the PHP scripts to FastCGI server listening on </span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span>:<span style="color: rgba(128, 0, 128, 1)">9000</span><span style="color: rgba(0, 0, 0, 1)">
      #

      location </span>~ ^.+<span style="color: rgba(0, 0, 0, 1)">\.php {
                root </span>/home/www/html/<span style="color: rgba(0, 0, 0, 1)">;
                fastcgi_pass </span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span>:<span style="color: rgba(128, 0, 128, 1)">9000</span><span style="color: rgba(0, 0, 0, 1)">;
                fastcgi_index index.php;
                fastcgi_split_path_info </span>^((?U).+\.php)(/?.+<span style="color: rgba(0, 0, 0, 1)">)$;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
      }



      # deny access to .htaccess files, </span><span style="color: rgba(0, 0, 255, 1)">if</span> Apache<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s document root</span>
      # concurs with nginx<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">s one</span>
<span style="color: rgba(0, 0, 0, 1)">      #
      #location </span>~ /<span style="color: rgba(0, 0, 0, 1)">\.ht {
      #    denyall;
      #}
    }


    # another </span><span style="color: rgba(0, 0, 255, 1)">virtual</span> host <span style="color: rgba(0, 0, 255, 1)">using</span> mix of IP-, name-, and port-<span style="color: rgba(0, 0, 0, 1)">based configuration
    #
    #server {
    #    listen       </span><span style="color: rgba(128, 0, 128, 1)">8000</span><span style="color: rgba(0, 0, 0, 1)">;
    #    listen       somename:</span><span style="color: rgba(128, 0, 128, 1)">8080</span><span style="color: rgba(0, 0, 0, 1)">;
    #    server_namesomenamealiasanother.alias;

    #    location </span>/<span style="color: rgba(0, 0, 0, 1)"> {
    #      root   html;
    #      indexindex.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       </span><span style="color: rgba(128, 0, 128, 1)">443</span><span style="color: rgba(0, 0, 0, 1)"> ssl;
    #    server_namelocalhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_keycert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout5m;

    #    ssl_ciphersHIGH:</span>!aNULL:!<span style="color: rgba(0, 0, 0, 1)">MD5;
    #    ssl_prefer_server_cipherson;

    #    location </span>/<span style="color: rgba(0, 0, 0, 1)"> {
    #      root   html;
    #      indexindex.html index.htm;
    #    }
    #}

}</span></pre>
</div>
<span class="cnblogs_code_collapse">nginx.conf</span></div>
<p>&nbsp;</p>
<p>需要配置多个域名为方便管理。我指定这个nginx.conf加载指定配置文件*.conf</p>
<p>下面附我修改后的nginx.conf,记得先cp nginx.conf nginx.old.conf备份</p>
<div class="cnblogs_code"><img id="code_img_closed_3f082d7b-8538-4029-9704-98d81b7ffbbd" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_3f082d7b-8538-4029-9704-98d81b7ffbbd" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_3f082d7b-8538-4029-9704-98d81b7ffbbd" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 0, 1)">usernginx;
worker_processesauto;

#error_loglogs</span>/<span style="color: rgba(0, 0, 0, 1)">error.log;
#error_loglogs</span>/<span style="color: rgba(0, 0, 0, 1)">error.lognotice;
#error_loglogs</span>/<span style="color: rgba(0, 0, 0, 1)">error.loginfo;

#pid      logs</span>/<span style="color: rgba(0, 0, 0, 1)">nginx.pid;
worker_rlimit_nofile </span><span style="color: rgba(128, 0, 128, 1)">655350</span><span style="color: rgba(0, 0, 0, 1)">;

events {
    worker_connections</span><span style="color: rgba(128, 0, 128, 1)">102400</span><span style="color: rgba(0, 0, 0, 1)">;
}


http {
    include       mime.types;
    default_typeapplication</span>/octet-<span style="color: rgba(0, 0, 0, 1)">stream;

    log_formatmain</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">$remote_addr - $remote_user [$time_local] "$request" </span><span style="color: rgba(128, 0, 0, 1)">'</span>
                      <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">$status $body_bytes_sent "$http_referer" </span><span style="color: rgba(128, 0, 0, 1)">'</span>
                      <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">"$http_user_agent" "$http_x_forwarded_for"</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;

    access_loglogs</span>/<span style="color: rgba(0, 0, 0, 1)">access.logmain;

    sendfile      on;
    tcp_nopush   on;

    keepalive_timeout</span><span style="color: rgba(128, 0, 128, 1)">65</span><span style="color: rgba(0, 0, 0, 1)">;

    gzipon;


# server {
#      listen </span><span style="color: rgba(128, 0, 128, 1)">80</span> <span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)">;
#      server_name _;
#   server_name </span>~.*<span style="color: rgba(0, 0, 0, 1)">;
#       </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">403</span><span style="color: rgba(0, 0, 0, 1)">;
#    }


include </span>/etc/nginx/conf.d<span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">.conf;   ###加载这个位置的.conf文件
}</span></pre>
</div>
<span class="cnblogs_code_collapse">nginx.conf</span></div>
<p>其实就是删除了默认一些配置,让这个配置文件指定加载我指定文件夹的*.conf</p>
<p>目录/etc/nginx/conf.d下</p>
<p>新建一个配置文件</p>
<div class="cnblogs_code">
<pre>vi /etc/nginx/conf.d/<span style="color: rgba(0, 0, 255, 1)">default</span>.conf</pre>
</div>
<p>&nbsp;</p>
<p>下面附default.conf的配置文件内容</p>
<div class="cnblogs_code"><img id="code_img_closed_275f1f7f-b947-451c-b978-f7150d89a9c0" class="code_img_closed" src="https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif" alt=""><img id="code_img_opened_275f1f7f-b947-451c-b978-f7150d89a9c0" class="code_img_opened" style="display: none" src="https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif" alt="">
<div id="cnblogs_code_open_275f1f7f-b947-451c-b978-f7150d89a9c0" class="cnblogs_code_hide">
<pre><span style="color: rgba(0, 0, 0, 1)">server{
listen             </span><span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">;                  #监听的端口号
server_name   www.youdomain.com;    #您的域名
      location </span>/<span style="color: rgba(0, 0, 0, 1)"> {
          root </span>/home/www/<span style="color: rgba(0, 0, 0, 1)">www.youdomain.com;      #站点的路径
          index index.php index.html index.htm;
          </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!-<span style="color: rgba(0, 0, 0, 1)">e $request_filename) {
            rewrite </span>^(.*)$ /index.php$<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> last;
          }
      }
location </span>~ ^.+<span style="color: rgba(0, 0, 0, 1)">\.php {
          root </span>/home/<span style="color: rgba(0, 0, 0, 1)">www.youdomain.com;      #站点的路径
          fastcgi_pass </span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span>:<span style="color: rgba(128, 0, 128, 1)">9000</span>;    #根据自己的 php-<span style="color: rgba(0, 0, 0, 1)">fpm 配置填写
          fastcgi_index index.php;
          ###配置支持pathinfo
          fastcgi_split_path_info </span>^((?U).+\.php)(/?.+<span style="color: rgba(0, 0, 0, 1)">)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
}
}


server{
listen             </span><span style="color: rgba(128, 0, 128, 1)">80</span><span style="color: rgba(0, 0, 0, 1)">;                  #监听的端口号
server_name   bbs.yourdomain.com;    #您的域名
      location </span>/<span style="color: rgba(0, 0, 0, 1)"> {
          root </span>/home/www/<span style="color: rgba(0, 0, 0, 1)">bbs.yourdomain.com;      #站点的路径
          index index.php index.html index.htm;
          </span><span style="color: rgba(0, 0, 255, 1)">if</span> (!-<span style="color: rgba(0, 0, 0, 1)">e $request_filename) {
            rewrite </span>^(.*)$ /index.php$<span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)"> last;
          }
      }
location </span>~ ^.+<span style="color: rgba(0, 0, 0, 1)">\.php {
          root </span>/home/www/<span style="color: rgba(0, 0, 0, 1)">bbs.yourdomain.com;      #站点的路径
          fastcgi_pass </span><span style="color: rgba(128, 0, 128, 1)">127.0</span>.<span style="color: rgba(128, 0, 128, 1)">0.1</span>:<span style="color: rgba(128, 0, 128, 1)">9000</span>;    #根据自己的 php-<span style="color: rgba(0, 0, 0, 1)">fpm 配置填写
          fastcgi_index index.php;
          ###配置支持pathinfo
          fastcgi_split_path_info </span>^((?U).+\.php)(/?.+<span style="color: rgba(0, 0, 0, 1)">)$;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
}
}</span></pre>
</div>
<span class="cnblogs_code_collapse">default.conf</span></div>
<p>&nbsp;</p>
<p>保存退出后重启nginx即可</p>
<div class="cnblogs_code">
<pre>systemctl restart nginx.service</pre>
</div>
<p>&nbsp;</p>
<p>总结一下步骤就是</p>
<p>1.确认要增加的二级域名,如bbs.yourdomain.com换成你的域名后添加到你的default.conf配置文件</p>
<p>2.设置bbs.yourdomain.com解析到你的nginx服务器ip ###这个需要到你的域名供应商那里操作,就和解析www一样解析这个自定义的bbs。</p>
<p>4.在网站目录下(我这里是、home/www)创建bbs.yourdomain.com目录</p>
<p>5.把源码放入bbs.yourdomain.com目录</p>
<p>6.重新加载nginx配置</p>
<p>7.访问http://bbs.yourdomain.com</p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    专业从事搬砖多年,还是在继续搬砖中,厚积薄发~<br><br>
来源:https://www.cnblogs.com/Crazy-Liu/p/10879740.html
頁: [1]
查看完整版本: nginx设置绑定解析实现二级域名多域名