nginx.conf 配置文件的几个常用命令

nginx 配置文件主要分为六个区域:

  • main: 全局设置

  • events: nginx工作模式

  • http: http设置

  • sever: 主机设置

  • location: URL 匹配

  • upstream: 负载均衡服务器设置

下面,就以在 Windows 上使用 phpStudy 集成开发环境举例说明下 Nginx 的虚拟目录和虚拟主机是如何配置的:

Nginx 虚拟目录配置

通俗地讲,虚拟目录的意思就是浏览器上输入的 URL 不一定就代表网站在文件系统中的绝对路径,而是可以在硬盘中的任意指定位置。

比如在浏览器上访问的是 http://localhost/test,在网站根目录 C:/htdocs/ 下不一定就有 test 这个目录,而是可以在其他位置, 比如 d:/not_test。

找到并打开 nginx.conf,然后在 location ~ //.ht {...} 字样下面添加即可:

1
2
3
4
5
location /test {
alias "C:/Users/cjli/PhpstormProjects/test";
index index.php;
autoindex on;
}

这里 /test 中的 test 是一个别名( alias ),可以自定义,而 alias 指令后面跟的路径也可以随意指向文件系统中任何存在的目录。

重启 Nginx 后打开 http://localhost/test 就可以看到上面目录 C:/Users/cjli/PhpstormProjects/test 下的网站了( 如果有的话 )。

注意
  • 虚拟目录路径的配置不能用 root 指令而必须用 alias 指令。

  • 路径必须用双引号括起来。

  • index 指令和 autoindex 指令必须同时出现。

Nginx 虚拟主机配置

通俗地讲,虚拟主机的意思就是,功能上力求和一台物理机实现得一致。

因此就很容易解释为什么多个虚拟主机中可以监听同一个端口号这样的问题了,因为虽然端口号是相同的,但是可以理解为是不同个主机上的同一个端口,这当然不影响了。

为了管理方便,对 Nginx 的配置文件都可以放在一个文件夹下,然后统一在主配置文件 nginx.conf 中使用 include 指令包含进来。可参考如下:

  • conf.d/virtual-hosts.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
server {
listen 80;
server_name localhost 192.168.1.174 zh.oc.com;
 
charset utf-8;
 
location / {
root "D:\WWW\mycncart";
index index.php index.html index.htm;
autoindex on;
}
 
location ~ \.php(.*)$ {
root "D:\WWW\mycncart";
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
  • nginx.conf
1
2
# ...
include conf.d/virtual-hosts.conf
说明
  • 每个虚拟主机在 nginx.conf 中都是一个单独的 server{} 块,配置思路也大体相同。

  • 虚拟主机的端口可以监听同一个端口。

  • server_name 可以是内网IP、域名,公网 IP 和域名,也可以一次性指向多个域名或 IP。

  • root 指令放在 location 指令在之外类似于全局变量,而每个 location 块中都可以使用该指令设置的路径。

在于 PHP 关联的时候,要么全局中指定过 root,否则在 location 中也必须指定根路径,否则重启 Nginx 后也无法找到文件,出现 404 或无法加载网页。

Nginx 虚拟目录和虚拟主机的配置的更多相关文章

  1. tomact虚拟目录,虚拟主机,http请求头,相应头

    tomact虚拟目录,虚拟主机,http请求头,相应头 07. 五 / J2EE / 没有评论   一.服务器,容器(软件)1.服务器:提供网络访问的程序2.容器:支持什么技术的服务器就叫做什么容器. ...

  2. (Tomcat)服务器之web应用的虚拟目录映射和主机搭建

    首先来了解一下web的虚拟目录映射和主机搭建的知识 第一:web的虚拟目录映射 首先我们要知道什么叫做web的虚拟目录映射,这个很好理解的,就是将我们本地硬盘上的web应用映射出一个供外界用户访问的地 ...

  3. JavaWeb学习篇之----web应用的虚拟目录映射和主机搭建(Tomcat)

    从今天开始来学习JavaWeb的相关知识,之前弄过一段时间JavaWeb的,就是在做毕业设计的时候搞过,但是那时候完全是为了任务去学习,所以效果不好,好多东西都没有深入的研究过,所以接下来的一段时间我 ...

  4. nginx下目录浏览及其验证功能配置记录

    工作中常常有写不能有网页下载东西的需求,在Apache下搭建完成后直接导入文件即可达到下载/显示文件的效果;而Nginx的目录列表功能默认是关闭的,如果需要打开Nginx的目录列表功能,需要手动配置, ...

  5. JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

    1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...

  6. apache php配置 虚拟目录 和 虚拟主机 多域名配置 原理解析

    虚拟目录配置 就是说,我们放项目放在D盘,F盘,而不是默认的www文件夹下也可以访问.比如这里,我在 D:/PHP/work 放入的项目文件. 在httpd.conf加入: (位置一般是在 </ ...

  7. Tomcat 配置虚拟目录以及虚拟主机

    目录 虚拟目录 虚拟主机 虚拟目录 虚拟目录的功能 一般情况下,我们的打包后的项目都是放到tomcat/webapps目录下的,然后通过localhost:8080/project_name这个链接进 ...

  8. Tomcat基本入门知识及发布,虚拟访问及启动碰到的错误,虚拟目录,虚拟路径,各种Tomcat的配置

    Tomcat容器入门介绍 转自javaresearch.com由timgball 整理 Tomcat是一个免费的开源Web服务器,最新版本是5.5.1,支持Servlet2.4,JSP2.0,非常适合 ...

  9. Tomcat 利用server.xml进行其他盘符的其他项目映射的部署以及JSP引用其他盘符的图片(虚拟目录及虚拟路径)

    Tomcat 利用server.xml进行项目映射的部署 2013-07-17 15:14 12843人阅读 评论(4) 收藏 举报  分类: web 开发(5)  版权声明:本文为博主原创文章,欢迎 ...

随机推荐

  1. 十五分钟介绍 Redis数据结构--学习笔记

    下面是一个对Redis官方文档<A fifteen minute introduction to Redis data types>一文的翻译,如其题目所言,此文目的在于让一个初学者能通过 ...

  2. centos 6.5 web service模式 系统 安装php

    1 首先是坚持libxml2出问题,提示如下: checking for xml2-config path... /home/www/thirdlib/libxml2/bin/xml2-configc ...

  3. 《剑指offer》— JavaScript(13)调整数组顺序使奇数位于偶数前面

    调整数组顺序使奇数位于偶数前面 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的 ...

  4. 题解【luogu3709 大爷的字符串题】

    Description 个人觉得这是这道题最难的一步...出题人的语文... 每次给出一个区间,求这个区间最少能被多少个单调上升的序列覆盖. Solution 这个东西可以转化为这个区间中出现次数最多 ...

  5. opencv函数制作的秒针模型

    曾经做过,没想到这次再次写这篇代码却用了这么久的时间.这回我要记住他. #include"cv.h" #include"highgui.h" int main( ...

  6. swiper.js的使用

    点击api文档地址, (1)图片轮播banner <script src="js/jquery-2.1.4.min.js"></script> <sc ...

  7. python列表排序方法reverse、sort、sorted

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  8. 用Matlab实现字符串分割(split)

    用Matlab实现字符串分割(split)Posted on 2011/08/08 Matlab的字符串处理没有C#强大,本身又没有提供OO特性,需要依赖别的手段完成这项任务. 我们在这里借助正则表达 ...

  9. Node.js的开源博客系统Ghost搭建教程

    准备工作 Node.js版本:0.10.x.0.12.x.4.2.x.安装步骤可参考:Node.js环境搭建 Ghost版本:0.7.4:中文集成版(33.6M),中文标准版(3.39M),英文原版( ...

  10. canvas h5制作写字板

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <script type ...