下面是nginx的整体基本配置,后面会逐步介绍各子模块的配置。
2.1 Nginx的完整配置示例
Nginx的配置文件默认在 Nginx 程序安装目录的 conf 二级目录下,主配置文件为nginx.conf。
假设您的Nginx安装在/usr/local/webserver/nginx/目录下,那么默认的主配置文件则为 /usr/local/webserver/nginx/nginx.conf ,下面是 Nginx作为 Web Server 的完整配置示例。
#使用的用户和组
user www www;
#指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍,例如两个四核CPU. 则总核数为 8)
worker_processes 8;
#指定错误日志存放的格径,错误日志记录级别可选项为: [ debug|info|notice|warn|error|crit ]
error_log /datal/logs/nginx_error.log crit;
#指定 pid 存放的路径,不指定则取安装时的默认pid文件
pid /usr/local/webserver/nginx/nginx.pid;
#指定文件描述符数量
worker_rlimit_nofile 51200;
events
{
#使用的网络IO模型. Linux系统椎荐采用epoll模型. FreeBSD系统推荐采用kqueue模型
use epoll;
#允许的连接数
worker_connections 51200;
}
http
{
include mime.types;
default_type application/octet-stream;
#设置使用的字符集,如果一个网站有多种字符集,请不要随便设置,应让程序员在HTML 代码中通过 Meta标签设置
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
#设置客户端能够上传的文件大小
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_t imeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#开启 gzip 压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limi t_zone crawler $binary_remote_addr 10m;
server
{
listen 80;
server_name www.yourdomain.com yourdomain.com;
index index.html index.htm index.php;
root /data0/htdocs;
#limit_conn crawler 20;
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires lh;
}
#自定义log格式
log_format access '$remote_addr - $remote_user [$time_local] "$request" '$status $body_bytes_sent "$http_referer"' ‘''$http_user_agent'' $http_x_forwarded_for';
access_log /data1/logs/access.log access;
}
}
通过上面的nginx.conf配置文件示例,可以看出nginx.conf的结构主要由以下几个部分构成:
events
{
…
}
http
{
…
server
{
…
}
server
{
…
}
}
2.2 Nginx的虚拟主机配置
2.2.1 什么是虚拟主机
虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Internet服务器功能(www、ftp、email等),同一台主机上的虚拟主机之间是完全独立的,从网站访问者来看,每一台虚拟主机和一台独立的主机完全相同。
利用虚拟主机,不用为每个要运行的网站提供 一台单独的 Nginx 服务器或单独运行一组
Nginx进程。虚拟主机提供了在同一台服务器、同一组 Nginx进程上运行多个网站的功能。
在 Nginx 配置文件( nginx.conf)中,一个最简化的虚拟主机配置如下所示。
http
{
server
{
listen 80 default;
server_name _*;
access_log logs/default.access.log combined;
location / {
index index.html;
root /data0/htdocs/htdocs;
}
}
}
跟Apache一样,Nginx也可以配置多种类型的虚拟主机:
一是基于IP的虚拟主机,
二是基于域名的虚拟主机,
三是基于端口的虚拟主机。
2.2.2 配置基于IP的虚拟主机
Linux 、FreeBSD 操作系统都允许添加 IP 别名。 IP 别名背后的概念很简单 : 可以在一块物理网卡上绑定多个 IP 地址。这样就能够在使用单一网卡的同一个服务器上运行多个基于 IP 的虚 拟主机。设置IP别名也非常容易,只须配置系统上的网络接口,让它监听额外的IP地址。在 Linux 系统上,可以使用标准的网络配置工具(比如 ifconfig 和 route 命令)添加 IP别名。以下是添加 IP 别名的示例:
1)先用 ifconfig 命令查看该服务器的 IP 地址。下面这台服务器有一块物理网卡设备 eth0 和本地回环设备 lo,eth0 的 IP 地址为 192.168.8.42,本地回环lo的 IP 地址为 127.0.0.1。
本地回环代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。它的主要作
用有两个:一是测试本机的网络配置,能 PING 通 127.0.0.1 说明本机的网卡和 IP 协议安装都没有问题:另一个作用是某些 SERVER/CLIENT 的应用程序在运行时须调用服务器上的资源, 一般要指定 SERVER 的 IP 地址,但当该程序要在同一台机器上运行且没有别的 SERVER 时, 就可以把 SERVER 的资源装在本机上, SERVER 的 IP 地址设为 127.0.0.1 也同样可以运行。
2)在 eth0 网卡设备上添加两个 IP 别名 192.168.8.43 和 192.168.8.44 ,可以通过下面的 ifconfig 和 route 命令来进行:
/sbin/ifconfig eth0:1 192.168. 8.43 broadcast 192.168.8.255 netmask 255.255.255.0 up
/sbib/route add -host 192.168.8.43 dev eth0:1
/sbin/ifconfig eth0:2 192.168. 8.44 broadcast 192.168.8.255 netmask 255.255.255.0 up
/sbib/route add -host 192.168.8.44 dev eth0:2
这时,再执行 ifconfig 命令,就可以看到 eth0网卡设备上绑定了两个IP 别名。
参考:Linux网络指令:
ifconfig:
http://www.cnblogs.com/peida/archive/2013/02/27/2934525.html
route:
http://blog.sina.com.cn/s/blog_67146a750100zoyi.html
http://www.cnblogs.com/peida/archive/2013/03/05/2943698.html
添加ip别名:
http://blog.csdn.net/ldwtill/article/details/8525835
3)这时候,从另外一台服务器 ping 192.168.8.43 和 192.168.8.44 两个 IP,如果能够P ping通,则证明配置无误。但是,通过 ifconfig 和 route 配置的 IP 别名在服务器重启后会消失, 不过可以将这两条 ifconfig 和 route 命令添加到 /etc/rc.local 文件中,让系统开机时自动运 行,以下是相关命令:
vi /etc/rc.local
在文件末尾添加以下内容保存并退出:
ifconfig eth0:1 192.168.8.43 broadcast 192.168.8.255 netmask 255.255.255.0 up
route add -host 192.168.8.43 dev eth0:1
ifconfig eth0:1 192.168.8.44 broadcast 192.168.8.44 netmask 255.255.255.0 up
route add -host 192.168.8.44 dev eth0:2
下面开始配置基于 IP 的虚拟主机。无论是通过 IP 别名在一台服务器上配置多个 IP 地址,还是通过多块网卡在服务器上配置多个 IP 地址,在 Nginx 中都能将其配置成为基于 IP 的虚拟主机。 接下来在 Nginx 配置文件( nginx.conf 中,分别对 192.168.8.43、192.168.8.44、192.168.8.45三个 IP 配置三个纯静态 HTML 支持的虚拟主机,如下所示:
http
{
#第一个虚拟主机
server
{
#监听的 IP 和端口
listen 192 .168.8.43:80;
#主机名称
server_name 192.168.8.43;
#访问日志文件存放路径
access_log logs/server1.access.log combined;
location /
{
#默认首页文件,顺序从左到右,如采找不到index.html文件,则查找index .htm 文件作为首页文件
index index.html index.htm;
#HTML网页文件存放的目录
root /data0/htdocs/server1;
}
}
#第二个虚拟主机.
server
{
#监听的 IP 和端口
listen 192 .168.8.44:80;
#主机名称
server_name 192.168.8.44;
#访问日志文件存放路径
access_log logs/server2.access.log combined;
location /
{
#默认首页文件,顺序从左到右,如采找不到 index .html 文件,则查找 index .htm 文件作为首页文件
index index .html index.htm;
# HTML网页文件存放的目录
root /data0/htdocs/server2;
}
}
#第三个虚拟主机
server
{
#监听的 IP 和端口
listen 192.168.8.45:80;
#主机名称
server_name 192.168.8.45;
#访问日志文件初她径
access_log logs/server3.access.log combined;
location /
{
#默认首页文件,顺序从左到右,如果找不到 index.html 文件,则查找 index.htm 文件作为 首页文件
index index.html index.htm;
# HTML网页文件存放的目录
root /data0/htdocs/server3.com;
}
}
}
从上面的配置文件中可以看出,一段 server{ ......}就是一个虚拟主机,如果要配置多个虚拟主机,建立多段 server{ }配置即可,非常方便。监听的 IP 和端口也可以不写 IP 地址,只写端口, 把它配置成 "listen 80" ,则表示监听该服务器上所有IP 的 80 端口,可通过 server_name区分不同的虚拟主机。
2.2.3 配置基于域名的虚拟主机
基于域名的虚拟主机是最常见的一种虚拟主机。只需配置你的 DNS 服务器,将每个主机名映射到正确的 IP 地址,然后配置 Nginx 服务器,令其识别不同的主机名就可以了。这种虚拟主机技术,使很多虚拟主机可以共享同一个IP 地址,有效解决了 IP 地址不足的问题。
所以,如果没有特殊要求使你必须用一个基于IP 的虚拟主机,最好还是使用基于域名的虚拟主机。
接下来配置基于域名的虚拟主机。在以下的示例中,配置了三个虚拟主机,第一个虚拟主机 表示所有对域名 aaa.domain.com 的访问都由它来处理,第二个虚拟主机表示所有对域名
bbb.otherdomain.com 的访问都由它来处理,第三个虚拟主机表示对域名 www.domain.com 、domain.com ,以及除了aaa.domain.com之外的所有*.omain.com 二级域名的访问都由它来处理。 每个虚拟主机的网页文件分别存放在了不同的目录中,每个虚拟主机使用了不同的日志文件来记 录访问日志,如下所示。
http
{
#第一个虚拟主机
server
{
#监听的端口
listen 80;
#主机名称
server_name aaa.domain.com;
#访问日志文件存放路径
access_log logs/aaa.domain.com.access.log combined;
location /
{
#默认首页文件,顺序从左到右,如果找不到工 ndex.html 文件,则查找 index.htm 文件作为 首页文件
index index.html index.htm;
#HTML网页文件存放的目录
root /data0/htdocs/aaa. domain. com;
}
}
#第二个虚拟主机
server
{
#监听的 IP 和端口
listen 80;
#主机的名称
server_name bbb.otherdomain.com;
#访问日志文件存放路径
access_log logs/bbb.otherdomain.com.access.log.combined;
location /
{
#默认首页文件,顺序从左到右,如果找不到 index.html 文件,则查找 index.htm 文件作为 首页文件
index index.html index.htm;
#HTML网页文件存放的目录
root /data0/htdocs/bbb.otherdomain.com;
}
}
#第三个虚拟主机
server
{
#监听的 IP 和端口
listen 80;
#主机名称
server_name www.domain.com domain.com *.domain.com;
#访问日志文件存放路径
access_log logs/bbb.domain.com.access.log combined;
location /
{
#默认首页文件,顺序从左到右,如果找不到 index.html 文件,则查找 index.htm 文件作为 首页文件
index index.html index.htm;
#HTML网页文件存放的目录
root /data0/htdocs/domain.com;
}
}
}
参考资料:
《实战Nginx 取代apache的高性能web服务器》
分享到:
相关推荐
共30页第2.5篇-Nginx部分-虚拟主机配置 共12页第2.6篇-Nginx部分-反向代理和负载均衡-反向代理配置 共13页第2.6篇-Nginx部分-反向代理和负载均衡-负载均衡配置 共9页第2.7篇-Nginx部分-Rewrite功能 共29页第2.8篇-...
#设定本虚拟主机的访问日志 access_log logs/host.access.log main; #对 "/" 所有应用启用负载均衡 location / { proxy_pass http://127.0.0.1; #保留用户真实信息 proxy_set_header X-Real-IP $...
5. 配置虚拟主机:可以通过配置 Tomcat 的 server.xml 文件来设置虚拟主机。 6. web.xml 配置修改:可以通过修改 web.xml 文件来配置 Tomcat 的 web 应用程序。 7. 性能优化:可以通过配置 Tomcat 的 server.xml ...
1. "resin配置.txt" 可能包含Resin服务器的配置教程或示例,可能包括如何设置虚拟主机、调整线程池、配置数据源、设置日志记录等关键参数。 2. "resin-4.0-admin.pdf" 很可能是Resin 4.0版本的管理员指南,详细阐述...
2) Nginx配置 - 1 - a)对c:\nginx\conf\nginx.conf文件进行配置: - 1 - b)常用的 Nginx 参数 - 3 - c)静态文件处理 - 4 - d)动态页面请求处理 - 4 - e)下面为nginx.conf配置实例: - 5 - f)Nginx 启动,停止等命令 ...
1. **Nginx配置与模块加载** 在配置Nginx之前,确保已安装必要的依赖库,例如GCC、PCRE库等。这些库对于编译Nginx和模块是必不可少的。你可以通过`yum install`或`apt-get install`命令来安装它们。 接下来,下载...
6. 配置Nginx虚拟主机:编辑Nginx配置文件,设置虚拟主机,指定Zabbix前端目录,启用SSL(如果需要)。 7. 启动与测试:启动Nginx和Zabbix服务,通过浏览器访问配置的域名或IP,验证Zabbix Web界面是否正常工作。 ...
在本教程中,我们将深入探讨如何利用Nginx配置虚拟主机,实现多个网站在同一台服务器上的独立运行。 **一、Nginx虚拟主机概念** Nginx虚拟主机允许我们在单个Nginx实例上托管多个网站,每个网站有自己的域名或IP...
centos7配置nginx虚拟主机
在Windows环境下,配置Nginx以支持HTTPS及在同一端口监听多个网站,即配置多个虚拟主机,是一项常见的网络服务设置任务。...同时,根据实际需求,还可以对Nginx配置进行更复杂的优化,如负载均衡、缓存等。
共30页第2.5篇-Nginx部分-虚拟主机配置 共12页第2.6篇-Nginx部分-反向代理和负载均衡-反向代理配置 共13页第2.6篇-Nginx部分-反向代理和负载均衡-负载均衡配置 共9页第2.7篇-Nginx部分-Rewrite功能 共29页第2.8篇-...
今天在do的VPS配置Nginx虚拟主机时,修改配置文件后,重启Nginx后一直报告失败,但是不知道哪里错了,直觉觉得是配置文件配置错了,google了下解决方案。 解决方案 Nginx启动或重启失败,一般是因为配置文件出错了,...
为了实现不同域名对应不同站点的目标,Nginx提供了灵活的虚拟主机配置方式: - **基于域名的虚拟主机**:通过不同的域名指向相同的IP地址,但Nginx可以根据Host头部信息判断应该返回哪个站点的内容。 - **基于端口的...
- 创建一个新的虚拟主机配置文件,例如`/etc/nginx/sites-available/mywebsite.conf`,然后通过创建符号链接到`sites-enabled`目录来启用它:`sudo ln -s /etc/nginx/sites-available/mywebsite.conf /etc/nginx/...
共30页第2.5篇-Nginx部分-虚拟主机配置 共12页第2.6篇-Nginx部分-反向代理和负载均衡-反向代理配置 共13页第2.6篇-Nginx部分-反向代理和负载均衡-负载均衡配置 共9页第2.7篇-Nginx部分-Rewrite功能 共29页第2.8篇-...
在Nginx中,虚拟主机配置允许在一个服务器实例上托管多个独立的网站,这三种方式分别是基于IP、基于端口和基于域名的虚拟主机配置。本文重点讲解基于域名的虚拟主机配置方法,这对于多站点共用同一IP和端口的情况...
1. 修改Nginx配置文件:Nginx的配置文件通常位于`/etc/nginx/nginx.conf`,在这里,我们需要在http指令块中添加虚拟主机配置。例如: ```nginx http { server { listen 80; server_name example.com; root /usr...
1. **安装Nginx-Module-VTS**:首先,解压`nginx-module-vts.tar.gz`,然后按照其README文档指示编译并安装Nginx,确保Nginx配置文件中加载了该模块。 2. **配置Nginx**:在Nginx的配置文件中,为每个需要监控的...
【Nginx部分-基本配置】Nginx是一款高性能的HTTP和反向代理服务器,广泛应用于高...在后续的课程中,还会涉及Nginx的虚拟主机配置、反向代理和负载均衡,以及Rewrite功能,这些都是构建高效网络服务的重要组成部分。