03-nginx虚拟主机配置
不想用kill命令控制nginx也行,但是其他命令没有信号的命令丰富。重读配置文件不用重启nginx(软重启)。完全可以使用stop(强制退出)、quick(优雅退出)、reopen(重新打开日志)、reload(重新载入配置文件)
./sbin/nginx -s reload==kill -HUP `cat logs/nginx.pid` 重读配置文件不用真正重启(软重启)
./sbin/nginx -s reopen==kill -USR1 `cat logs/nginx.pid` 重读日志文件,完全相当于使用信号量USR1
虚拟主机的管理
其实nginx的配置段非常的简单,比apache还要简单。好的服务器都有4块CPU,每块CPU是8核,最多有32个核工作。比如我的是4核PC,所以把worker_processes设置为4,再多意义也不大。后面还要讲nginx的优化,你光把worker_connections改的太大意义不大,它还需要和系统的一些参数配合才行。比较强的服务器有4块CPU每块CPU8核,有32个processes,每个process1024个connections,一共有三万多个connections。一台服务器很轻松就能搞下来。
HTTP段,意味着这一段是配置HTTP服务器的主要的段。当成HTTP服务器/SMTP服务器(邮件服务器)/FTP服务器都可以。但是我们现在用的是HTTP的功能,现在的重心在于HTTP这一大段里面。基于域名/ip/端口的虚拟主机分别做测试。
最少写6*6=36行就可以了。监听哪一个端口/域名,请求来了映射到哪一个目录上去来响应请求。z.com这个域名好,但是不属于我。相对路径是指相对于nginx的根目录。
z.com这个域名不属于我,所以它就到互联网上解析去了。为了让这个域名属于我,还得改hosts。C:\Windows\System32\drivers\etc\hosts
虚拟机可以通过http://zhongzh-PC或者http://zhongzh-PC:80或者http://127.0.0.1:80或者http://127.0.0.1来访问web服务器
要访问就能得到一句简单的响应,在虚拟机内部可以访问这个web服务:
修改/etc/hosts文件(注意不是修改host而是修改hosts)
验证
宿主机也可以访问了,chrome和搜狗不能访问z.com。搜狗必须得输入URL全路径http://z.com才行,否则会跳转去https那个z.com。chrome就是不能访问。
手动清空chrome dns缓存之后还是不行
在宿主机使用ipconfig /flushdns命令来刷新dns缓存之后搜狗浏览器不用输入URL的全路径直接输入域名z.com就可以重定向到虚拟机的nginx的web服务首页。
禁止chrome自动跳转https,在chrome的地址栏输入:chrome://net-internals/#hsts
在打开的页面中, Delete domain
栏的输入框中输入:z.com(注意这里是二级域名),然后点击“delete”按钮,即可完成配置。然后你可以在 Query domain
栏中搜索刚才输入的域名,点击“query”按钮后如果提示“Not found”,那么你现在就可以使用http来访问我的网站了!
这就是基于域名的虚拟主机。基于端口的虚拟主机,一般是在后台管理的时候,比如我在网上买了一台虚拟主机,要是买的是国外的dreamhost,肯定知道这个事。比如我z.com放在dreamhost这台主机上,想管理我的虚拟主机只需要在z.com后面打一个2022回车就进入了一个管理界面上去,这个用的其实是一个基于端口的虚拟主机。
root的相对路径z.com是相对于nginx的主目录而言的,nginx的主目录是/usr/local/nginx。
卧槽,还是不行,估计是又是虚拟机的防火墙问题
除了开通虚拟机的防火墙的端口之外,还要配置端口转发(因为采用的是NAT的网络方式)
他妹的再次软重启nginx服务发现原来是注释不能这样写的,否则nginx认不出报错
成功了
客户端(宿主机)也可以了
这就是基于端口的虚拟主机配置。
基于IP的虚拟主机配置:
如果你有两块网卡
实际上你只有一块网卡
有127.0.0.1就行。正是因为你没有配置192.168.118.128,所以z.com就不知道指向哪里,你访问z.com它就指向指向nginx.conf配置的第一个server。要是明确了用IP来访问,
成功了
nginx配置虚拟主机也是非常的简单,比apache易懂。