@xushengkai
2022-12-08T05:13:20.000000Z
字数 4393
阅读 366
nginx
[TOC]
#安装源代码编译需要用的工具[root@192 ~]# yum -y install pcre-devel openssl-devel make gcc gcc-c++ cmake gmake#官网下载源码包[root@192 ~]# wget -q http://nginx.org/download/nginx-1.10.2.tar.gz#创建程序用户[root@192 ~]# useradd -s /sbin/nologin -M nginx#解压缩[root@192 ~]# tar xf nginx-1.10.2.tar.gz -C /usr/src/#进行编译安装[root@192 ~]# cd /usr/src/nginx-1.10.2[root@192 nginx-1.10.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module[root@192 nginx-1.10.2]# make && make install#给nginx命令做软链接[root@192 nginx-1.10.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/#启动nginx[root@192 nginx-1.10.2]# /usr/local/nginx/sbin/nginx[root@192 nginx-1.10.2]# ss -anp | grep nginxLISTEN 0 128 *:80 *:* users:(("nginx",3754,6),("nginx",3755,6))
/usr/local/nginx/sbin/nginx -s reloadnginx平滑重启命令
/usr/local/nginx/sbin/nginx -s stopnginx停止服务命令
源代码编译安装的nginx配置文件在/usr/local/nginx/conf/下
worker_processes 1; #worker进程的数量,可以设置为auto#error_log logs/error.log; #错误日志(默认关闭)#pid logs/nginx.pid; #进程号(默认关闭)events { #事件区块开始worker_connections 1024; #每个worker进程支持的最大连接数,一般设置20480;} #事件区块结束http { #http区块开始include mime.types; #Nginx支持的媒体类型库文件包含default_type application/octet-stream; #默认的媒体类型sendfile on; #开启高效传输模式keepalive_timeout 65; #连接保持超时时间server { #网站配置区域(第一个server第一个虚拟主机站点)listen 80; #提供服务的端口,默认80server_name localhost; #提供服务的域名主机名location / { #第一个Location区块开始root html; #站点的根目录(相对于nginx安装路径)index index.html index.htm; #默认的首页文件,多个用空格分开}error_page 500 502 503 504 /50x.html; #出现对应的http状态码时,使用50x.html回应客户location = /50x.html { #Location区块开始,访问50x.htmlroot html; #指定对应的站点目录为html}}server { #网站配置区域(第二个server第二个虚拟主机站点)listen 80; #提供服务的端口,默认80server_name bbs.chensiqi.org; #提供服务的域名主机名location / { #服务区块root html; #相对路径(nginx安装路径)index index.html index.htm;}location = /50x.html { #发生错误访问的页面root html;}}}整个nginx配置文件的核心框架如下:worker_processes 1;events {worker_connections 1024;}http {include mime.types;server {listen 80;server_name localhost;location / {root html;index index.html index.htm;}}}
所谓虚拟主机,在Web服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立地对外提供服务供用户访问。
这个独立的站点在配置里是由一定格式的标签段标记,对于Apache软件来说,一个虚拟主机的标签段通常被包含在内,而Nginx软件则使用一个server{}标签来标示一个虚拟主机,一个Web服务里可以有多个虚拟主机标签对,即同时可以支持多个虚拟主机站点。
所谓基于域名的虚拟主机,意思就是通过不同的域名区分不同的虚拟主机,基于域名的虚拟主机是企业应用最广的虚拟主机类型,几乎所有对外提供服务的网站都是使用基于域名的虚拟主机,
示例
[root@192 ~]# cd /usr/local/nginx/conf/[root@192 conf]# mkdir conf.d[root@192 conf]# cd conf.d/[root@192 conf.d]# touch a.com.conf b.com.conf#设置a.com的页面[root@192 conf.d]# vim a.com.confserver {listen 80;server_name a.com;location / {root html/a.com;index index.html index.htm;}}#设置b.com的页面[root@192 conf.d]# vim b.com.confserver {listen 80;server_name b.com;location / {root html/b.com;index index.html index.htm;}}#在主配置文件中将keepalive_timeout 65;以下的内容删掉#先备份在修改[root@192 nginx]# cd /usr/local/nginx/[root@192 nginx]# cp conf/nginx.conf conf/nginx.conf.bak[root@192 nginx]# vim conf/nginx.conf23 keepalive_timeout 65;24 #添加以下两行内容25 include conf.d/a.com.conf;26 include conf.d/b.com.conf;2728 }#给创建a.com和b.com的默认页面[root@192 nginx]# cd html/[root@192 html]# mkdir a.com b.com[root@192 html]# echo "111 a.com " >> a.com/index.html[root@192 html]# echo "222 b.com " >> b.com/index.html#重启nginx[root@192 nginx]# /usr/local/nginx/sbin/nginx -s reload
在主机的hosts文件设置域名解析
192.168.200.139 a.com b.com
测试
在主机上访问a.com,显示内容:111 a.com
在主机上访问b.com,显示内容:222 b.com
实验成功
基于端口的虚拟主机,意思就是通过不同的端口来区分不同的虚拟主机,此类虚拟主机对应的企业应用主要为公司内部的网站,例如:一些不希望直接对外提供用户访问的网站后台等,访问基于端口的虚拟主机地址里要带有端口
示例
#在主配置文件中设置不同端口的页面位置[root@192 html]# cd ../conf/#先备份,在修改[root@192 conf]# cp nginx.conf nginx.conf.bak[root@192 conf]# vim nginx.conf1 worker_processes 1;23 events {4 worker_connections 1024;5 }67 http {8 include mime.types;9 default_type application/octet-stream;1011 sendfile on;12 keepalive_timeout 65;13 #将此行的下面内容全部删掉并添加以下内容##www的默认页面及端口14 server {15 listen 80; #端口8016 server_name localhost;1718 location / {19 root html/www; #默认页面的位置20 index index.html index.htm;21 }22 }23 #bbs的默认页面位置及端口24 server {25 listen 81; #端口26 server_name localhost;2728 location / {29 root html/bbs; #默认页面的位置30 index index.html index.htm;31 }32 }33 }#创建www,bbs的页面[root@192 nginx]# cd /usr/local/nginx/html[root@192 html]# mkdir www bbs[root@192 html]# echo "welcome to wwww" >> www/index.html[root@192 html]# echo "welcome to bbs" >> bbs/index.html#重启nginx[root@192 conf]# /usr/local/nginx/sbin/nginx -s reload
测试
在主机上打开浏览器
测试www页面,访问http://192.168.200.139:80,显示内容:welcome to wwww
测试bbs页面,访问http://192.168.200.139:80,显示内容:welcome to bbs
测试成功
基于IP的虚拟主机,是通过不同的IP区分不同的虚拟主机,此类虚拟主机对应的企业应用非常少见,一般不同业务需要使用多IP的场景都会在负载均衡器上进行IP绑定,而不是在Web上通过绑定IP区分不同的虚拟机。
了解即可