设为首页 收藏本站
查看: 641|回复: 0

[经验分享] 在Nginx上配置多个站点

[复制链接]

尚未签到

发表于 2017-12-22 12:36:49 | 显示全部楼层 |阅读模式
  有时候你想在一台服务器上为不同的域名运行不同的站点。比如www.siteA.com作为博客,www.siteB.com作为论坛。你可以把两个域名的IP都解析到你的服务器上,但是没法在Nginx的根目录里同时运行两个不同的网站。这时候,你就需要使用虚拟目录了。假设你把博客放在”/home/user/www/blog”下,论坛放在”/home/user/www/forum”下。下面我们就开始配置了:


  • 在Nginx配置目录下,创建一个”vhost”目录。本例假设Nginx是默认安装,配置目录在”/etc/nginx”
  

$ sudo mkdir /etc/nginx/vhost  



  • 创建siteA的配置文件
  

$ sudo vi /etc/nginx/vhost/vhost_siteA.conf  



  • 输入以下配置信息
  

server {  listen      
80;                        # 监听端口  server_name www.siteA.com siteA.com;    # 站点域名
  root  /home/user/www/blog;              # 站点根目录
  index index.html index.htm index.php;   # 默认导航页
  

  location / {
  # WordPress固定链接URL重写
  if (!-e $request_filename) {
  rewrite (.*) /index.php;
  }
  }
  # PHP配置
  location ~ \.php$ {
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_index index.php;
  include fastcgi_params;
  }
  
}
  



  • 同siteA一样创建siteB的配置文件,两者仅有的不同是”server_name”和”root”目录
  

$ sudo vi /etc/nginx/vhost/vhost_siteB.conf  

  

server {  ...
  server_name www.siteB.com siteB.com;   
# 站点域名  root  /home/user/www/forum;             # 站点根目录
  
    ...
  
}
  



  • 打开nginx.conf文件
  

sudo vi /etc/nginx/nginx.conf  



  • 将虚拟目录的配置文件加入到”http {}”部分的末尾
  

http {  ...
  include
/etc/nginx/vhost/*.conf;  
}
  



  • 重启Nginx服务
  

$ sudo service nginx restart  



  • 现在访问www.siteA.com和www.siteB.com,你将发现浏览器会打开不同的站点
禁止访问小技巧
  假如你的Nginx根目录设在”/home/user/www”,你想阻止别人通过”http://IP地址/blog”或”http://IP地址/forum”来访问你的站点,最简单的方法就是禁止IP地址访问。方法如下:


  • 打开Nginx网站默认配置文件,记得先备份
  

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_bak  
$ sudo vi
/etc/nginx/sites-available/default  



  • 将所有内容删除,只留以下配置
  

server {  listen
80 default_server;  server_name _;
return 404;  
}
  



  • 重启Nginx后,别人将无法通过IP地址访问网站了
  如果你不想禁止IP地址访问整个目录,只是要防止别人通过IP访问你的博客和论坛。那就需要禁止”/blog”和”/forum”的目录访问。


  • 打开Nginx网站默认配置文件,同上面一样,记得先备份

  • 在”server { }”部分加上以下配置
  

location ^~ /blog/ {  deny all;
  
}
  
location
^~ /forum/ {  deny all;
  
}
  



  • 重启Nginx即可

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-426814-1-1.html 上篇帖子: log_format为Nginx设置日志格式 下篇帖子: Nginx安装部署与测试
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表