nginx设置绑定解析实现二级域名多域名
<p> </p><p>apache(httpd)配置多个二级域名看这个链接:https://www.cnblogs.com/Crazy-Liu/p/10879928.html</p>
<p> </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> </p>
<p>前言:</p>
<p>现在很多人都会解析www二级域名作为主网站。可想弄个博客的网站呢,条件又只有一个ip一台服务器,可以使用nginx设置多个域名。</p>
<p> </p>
<p>注意:nginx默认的配置文件是nginx.conf</p>
<p> </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> </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> </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> </p>
<p>保存退出后重启nginx即可</p>
<div class="cnblogs_code">
<pre>systemctl restart nginx.service</pre>
</div>
<p> </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> </p>
</div>
<div id="MySignature" role="contentinfo">
专业从事搬砖多年,还是在继续搬砖中,厚积薄发~<br><br>
来源:https://www.cnblogs.com/Crazy-Liu/p/10879740.html
頁:
[1]