nginx配置多虚拟主机,nginx配置多个虚拟主机

大家好,今天小编关注到一个比较有意思的话题,就是关于nginx配置多虚拟主机的问题,于是小编就整理了3个相关介绍nginx配置多虚拟主机的解答,让我们一起看看吧。

电脑怎么建立虚拟主机?

要建立一个虚拟主机,需要先在操作系统中安装一个Web服务器软件,例如Apache、Nginx等。

nginx配置多虚拟主机,nginx配置多个虚拟主机

然后在Web服务器的配置文件中创建一个虚拟主机,并指定该主机对应的域名、端口号、网站根目录等信息。

接着,在DNS服务器上添加一条域名解析记录,将该域名解析到服务器的IP地址上。

最后,重启Web服务器,使其加载新的配置,即可访问该虚拟主机对应的网站。

用node做服务器了,还需要nginx吗?

这个问题已经有人问过了。

1、出于提高IP地址的利用率的目的,在生产环境中,我们通常不会让某一个应用独立占用80端口,因此需要通过nginx的虚拟主机技术进行复用。

2、一般应用的权限不会为root,因此只能占用1025-65535号端口,因此我们通常将node应用跑在3000端口(express等默认端口),再通过nginx进行反向代理。其实这些是linux相关的基础知识,你可以到linuxprobe.com上面系统的学习一下运维的知识。

nginx如何配置?

nginx是一款高性能的web和反向代理服务器,这里默认题主已经安装好了nginx下面直接讲解如何配置:

进入到安装目录:

cd /usr/local/nginx/conf

修改前最好备份下:

cp nginx.conf nginx.conf.20181121

修改配置文件

vi nginx.conf

以下是完整的配置截图

解释:

我这里模拟的是两个目录,你可以将你的项目分别放到这2个目录进行访问。

我这里是有域名的,一级和二级域名,将你事先写好的2个项目,或则只是一个简单的index.html放入到上面对应的目录下,/var/www/html2或则/var/www/app

接下来只需要重启即可;

/usr/local/nginx/sbin/nginx -s reload

然后再您的浏览器里面直接输入域名即可访问(http请求默认是80端口,所以这里不用添加端口号就可以直接访问。当然了,你端口号改成8082,然后域名或ip加上:8082也是可以直接访问的。)

我写过一个专门的文章nginx配置,建议题主去看下。

私信@IT讲坛,回复【学习】获取最新技术干货资料。(包含nginx学习视频资料)。

先简单介绍一下nginx,nginx到底是什么?

Nginx ("engine x") 是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。它是由俄罗斯人 Igor Sysoev 开发的,最初被应用在俄罗斯的大型网站 www.rambler.ru 上。后来作者将源代码以类 BSD 许可的形式开源出来供全球使用。

Nginx 的官方介绍见 http://nginx.org/en/Nginx

Nginx整体配置介绍

在了解具体的Nginx配置项之前我们需要对于Nginx配置文件的构成有所概念,一般来说,Nginx配置文件会由如下几个部分构成:

在上述配置中我们可以看出,Nginx配置文件由以下几个部分构成:

  1. 全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
  2. events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。

  3. http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

  4. server块:配置虚拟主机的相关参数,一个http中可以有多个server。

  5. location块:配置请求的路由,以及各种页面的处理情况。

Nginx配置文件nginx.conf详解

如图:

为了方便复制,贴出代码,如下:

# 定义 Nginx 运行的用户和用户组,默认由 nobody 账号运行, windows 下面可以注释掉。
user www www;
# 工作进程:数目。根据硬件调整,通常等于CPU数量。
worker_processes 1;
# 全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;
# 进程文件,windows 底下可以注释掉
pid /var/run/nginx.pid;
# 一个nginx进程打开的最多文件描述符(句柄)数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,
# 但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
# events块
events {
#每个工作进程的最大连接数量,每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。worker_processes*worker_connections
worker_connections 1024;
}
# http模块
http {
# 文件扩展名与文件类型映射表
include mime.types;
# 默认文件类型
default_type application/octet-stream;
# 日志格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# 日志文件路径及所用的日志格式
#access_log logs/access.log main;
# 允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
sendfile on;
#tcp_nopush on;
# 连接超时时间,默认为75s,可以在http,server,location块。
#keepalive_timeout 0;
keepalive_timeout 65;
# gzip压缩相关配置
#gzip on;
gzip on; # 开启gzip压缩传输
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 32k; # 压缩缓存区
gzip_http_version 1.1; # 压缩版本
gzip_comp_level 2; # 压缩级别
gzip_types text/plain application/x-javascript text/css application/xml; # 压缩文件类型
gzip_vary on;
gzip_disable "MSIE [1-6].";
# 保存服务器名字的hash表的大小
server_names_hash_bucket_size 128;
# 设定通过nginx上传文件的大小
client_max_body_size 100m;
# 客户端请求头部的缓冲区大小。
client_header_buffer_size 256k;
# 客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取。
large_client_header_buffers 4 256k;
# 代理头部信息设置,将代理服务器收到的用户的信息传到真实服务器上
proxy_set_header Host $host:$server_port;
proxy_set_header X-real-ip $remote_addr;
#proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 虚拟主机
server {
# 监听端口
listen 8088;
# 监听地址
server_name t1.sgl.com;
# 请求地址location
location / {
# 请求转向到代理服务器
proxy_pass http://127.0.0.1:8080;
}
location /admin/user_toIndexPage.do {
# 超时时间
proxy_read_timeout 300;
proxy_pass http://127.0.0.1:8080;
}
location /wechat/ {
proxy_pass http://127.0.0.1:8081;
}
location /new/ {
proxy_pass http://127.0.0.1:8081;
}

}

}

常用的几个内置变量

  • $remote_addr 与 $http_x_forwarded_for 用以记录客户端的ip地址;
  • $remote_user :用来记录客户端用户名称;
  • $time_local : 用来记录访问时间与时区;
  • $request : 用来记录请求的url与http协议;
  • $status : 用来记录请求状态;成功是200;
  • $body_bytes_s ent :记录发送给客户端文件主体内容大小;
  • $http_referer :用来记录从那个页面链接访问过来的;
  • $http_user_agent :记录客户端浏览器的相关信息;

关于nginx重新加载配置、平滑升级参考我的博客

  • nginx启动、重启、重新加载配置文件和平滑升级: (

    https://blog.csdn.net/gnail_oug/article/details/52754491)

  • nginx的location解析过程介绍: (https://blog.csdn.net/gnail_oug/article/details/53236898)

  • nginx的gzip压缩功能参数介绍: (https://blog.csdn.net/gnail_oug/article/details/53246026)

希望以上内容能够帮助你理解nginx配置。

到此,以上就是小编对于nginx配置多虚拟主机的问题就介绍到这了,希望介绍关于nginx配置多虚拟主机的3点解答对大家有用。

cdn加速虚拟主机,cdn加速虚拟主机什么意思
上一篇 2024-06-01 18:48:39
路由器虚拟主机,路由器虚拟主机配置
下一篇 2024-06-01 19:43:58

相关推荐