nginx 配置虚拟主机

本贴最后更新于 1663 天前,其中的信息可能已经时异事殊

  nginx 可以配置三种虚拟主机,分别是端口号主机,IP 主机和以及域名主机,而三种虚拟主机又可以混合配置。
  在 nginx 安装目录中有一个名叫 nginx.conf 的配置文件,默认的虚拟主机配置以及示例都在此配置文件中,个人建议是把每一个虚拟主机都单独配置成一个配置文件,首先,我们需要注释掉 nginx.conf 中关于 sever 的配置,包括大括号下的内容都给注释掉。然后引入外部配置文件,只需要在 http 节点内添加一行配置:include vhost/*.conf;,接下来在当前目录下创建 vhost 目录,然后在里面创建以 conf 为后缀的文件均可以被识别为配置文件。

  • 端口号主机

  端口号主机就是以不同的端口号来区分不同的主机,首先在上文所说的 vhost 目录中新建一个以 conf 为后缀的文件,然后在该文件中进行配置,下面贴一个我的配置:

server {
        listen 8443 ssl;
        server_name localhost;
        root html;
        index index.html index.htm;
#	下面以ssl开头的是配置证书时才使用的,不配置证书直接不写。
        ssl_certificate ../cert/2651106_www.jiangqiang.xin.pem;   #将domain name.pem替换成您证书的文件名。
        ssl_certificate_key ../cert/2651106_www.jiangqiang.xin.key;   #将domain name.key替换成您证书的密钥文件名。
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
                add_header Access-Control-Allow-Origin *;
                proxy_pass http://127.0.0.1:8080;#任何访问路径和端口号都可以
                index index.html index.htm;
        }
}

上面配置的意思是输入此主机的任意 ip 或域名加端口号 8443 时(如果配置了证书,协议就需要使用 https,否则使用 http),和在本主机上访问 http://127.0.0.1:8080 的效果一样。如果我们在本机上起一个 solo 博客系统,那么默认访问的端口是 8080,使用 nginx 配置后,可以使用其他端口进行访问(我这里是 8443)。如果有两台服务器,一台服务器上有一个 8080 端口的 web 项目,我们也可以在另一台服务器上使用 nginx 将其他端口映射到 8080 端口。上面的配置复制多份,每一份修改监听的端口号和 location 中的内容,就变成了多个不同的端口号主机。

  • 域名主机

  域名主机是通过不同的域名进行区分访问哪一个主机,此时的端口号可以相同。首先我们去/etc/hosts 文件中加入一些配置:

127.0.0.1 jiangqiang.jios,org #前面是当前主机的ip,后面是当前主机的域名
127.0.0.1 blog.jiangqiang.xin #同一个主机配置有多个域名

  然后如上文所说的方式创建配置文件,在配置文件中输入以下内容:

server { #此主机没有配置证书,如果不需要证书时,就这么配置
        listen 80;
        server_name jiangqiang.jios.org;#访问的域名
        location / {
                proxy_pass http://127.0.0.1:8080;
                index index.html index.htm;
        }

}

server {
        listen 80 ssl;
        server_name www.jiangqiang.xin;#访问的域名
        root html;
        index index.html index.htm;
        ssl_certificate ../cert/2651106_www.jiangqiang.xin.pem;   #将domain name.pem替换成您证书的文件名。
        ssl_certificate_key ../cert/2651106_www.jiangqiang.xin.key;   #将domain name.key替换成您证书的密钥文件名。
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
                add_header Access-Control-Allow-Origin *;
                proxy_pass http://www.jiangqiang.xin;
                index index.html index.htm;
        }
}

  这个配置文件中实际上是两个虚拟主机的配置,并且监听的端口号都是 80,如果访问的是 http://jiangqiang.jios.org ,那么就是访问上面那个主机。如果访问的是 https://www.jiangqiang.xin:80 (因为配置了证书,所以协议是 https,https 协议默认端口号是 443,因此需要显示写明端口),就是访问下面那个主机。

  • IP 主机

  首先需要给该主机配置多个 IP,然后所有的配置和域名主机配置基本一样,只不过 server_name 后面填写不同的 ip 即可。我们就可以通过不同的 IP 进行访问不同的虚拟主机。个人一般比较少用,使用前面两种虚拟主机配置足够。

注意:以上几种虚拟主机之间可以混合搭配。

  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖 • 57 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 17 关注
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    198 引用 • 120 回帖
  • 博客

    记录并分享人生的经历。

    270 引用 • 2386 回帖
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    84 引用 • 139 回帖
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 553 关注
  • 脑图

    脑图又叫思维导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。

    21 引用 • 58 回帖 • 1 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 689 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 46 关注
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 409 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    66 引用 • 124 回帖
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 426 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    362 引用 • 1212 回帖 • 580 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    324 引用 • 1395 回帖
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 1 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 1 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖 • 8 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 60 回帖 • 468 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    25 引用 • 191 回帖 • 17 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 17 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 22 回帖 • 675 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 21 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6357 引用 • 28565 回帖 • 265 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 22 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    122 引用 • 73 回帖 • 2 关注
  • Sillot

    Sillot (汐洛)孵化自思源笔记,致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点
    Github 地址:https://github.com/Hi-Windom/Sillot

    12 引用 • 26 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 674 关注