<!-- wp:quote -->

<p>nginx的虚拟主机配置</p>
<!-- /wp:quote --> <!-- wp:more --> <!-- /wp:more --> <!-- wp:tadv/classic-paragraph --> <h2>nginx的其他命令</h2> <p>在我们上接说到的用kill信号量去控制nginx,当然nginx自身也有一些命令。</p>
[root@localhost sbin]# ./nginx -h
<p></p> <!-- /wp:tadv/classic-paragraph --> <!-- wp:paragraph --> <p>比如说这个“-s”就有很多用处:</p> <!-- /wp:paragraph --> <!-- wp:tadv/classic-paragraph -->
[root@localhost sbin]# ./nginx -s reload
[root@localhost sbin]# kill -HUP cat /usr/local/nginx/logs/nginx.pid 

<p>上面这个就相当于是把nginx软重启一下,命令就和之前用“kill -HUP”是一样的。</p>

[root@localhost sbin]# ./nginx -s stop    
[root@localhost sbin]# ps aux|grep nginx 

<p>这个stop就等同于关闭nginx。当你查看的时候会发现nginx的进程已经不在了。</p>

./nginx -s reopen
<p>这个呢就相当于是重读日志文件,就是之前说的“USR1”一样。</p> <p>还有一个很有意思的东西,就是如果我们把配置文件修改了,我要测试一下,怎么测试呢:</p>
[root@localhost sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

<p>这种提示successful就证明时好的。没有问题的配置文件。</p>
<h2>虚拟主机配置</h2>
<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>我们先打开其配置文件看看。</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->

[root@localhost nginx]# vim conf/nginx.conf
<p>打开之后是这样的,先看全局区:</p> <h4>worker_processes</h4> <p></p> <!-- /wp:tadv/classic-paragraph --> <!-- wp:paragraph --> <p>这里有一个“worker_processes 1”这个意思就是有一个工作的子进程,这个值是可以修改的,但是需要注意的一点是,这个值改大了没有意义,会耗费CPU的资源,比如现在好的服务器都是2个CPU,然后每个CPU都是4核心,那么你可以把这个值改成CPU数×核心数,也就是8,如果改大了也没啥实际的意义了。</p> <!-- /wp:paragraph --> <!-- wp:tadv/classic-paragraph --> <h4>Event</h4> <p>这个Event区域:</p> <p></p> <p>这个是配置nginx进程于连接的特性,比如一个worker能同时允许产生多少连接,我们这里默认时1024,这个可以修改的更大,当然这个也不能乱写的太大了,要跟系统的配置差不多才行,后面说nginx的优化会提到。</p> <h4>http</h4> <p>这里就是server配置虚拟主机的地方:</p> <p></p> <h4>基于域名的虚拟主机配置:</h4> <p>我们需要在nginx.conf里面写下面的内容:</p>
    server{
        listen  80;
        server_name z.com;

        location / {
                root z.com;
                index index.html;
}
}

<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>第一行就是说虚拟主机开始了,注意有一个大括号开始,还要伴随一个大括号结尾,在server后面写。然后时listen,就是监听的端口,我们监听的就是80端口,然后我们的域名就是“z.com”,完了我们要说明我们的这个虚拟主机读取哪里的页面,就是下面location监听的部分,这里是“z.com”下面的inde.html。这是一个绝对路径。所有的除了大括号都要以“;”英文分号结尾。</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>那么我们这个z.com下面的index.html在哪里呢,我们还没有创建,来到nginx的根目录下,创建一个名字叫做“z.com”的文件夹,然后把index.html里面随便鞋垫东西放进去:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->

[root@localhost nginx]# mkdir z.com
[root@localhost nginx]# cd z.com
[root@localhost z.com]# pwd
/usr/local/nginx/z.com
[root@localhost z.com]# vim index.html

<!-- /wp:tadv/classic-paragraph -->

<!-- wp:paragraph -->
<p>注意我的inedx.html文件的位置,现在用vim编辑HTML:</p>
<!-- /wp:paragraph -->

<!-- wp:tadv/classic-paragraph -->

<html>
<meta><meta charset="utf-8" />
<h1>你好,欢迎来到z.com</h1>
</html>
<p>这样就好了,但是我们用实体机是打不开的,因为它会给我们解析到互联网上的z.com,很简单,我们只需要修改一下hosts文件即可:</p>
192.168.60.43 z.com
<p>在你的hosts文件的最后一行加上这样的一句话并保存,Windows的hosts文件在:</p>
c:windowssystem32driversetc
<p>我现在用的不是Windows所以也就没法具体演示,不过如果你不会修改hosts文件的话,建议你百度看看。</p> <p>修改好之后我们还是没法打开的,因为我们的nginx没有对新的这个配置文件进行重读,输入下面的命令开始重读配置文件,上一小节也提到过:</p>
[root@localhost nginx]# sbin/nginx -s reload
<p>文章开头也提到了,现在我们在实体机的浏览器里输入z.com就会发现我们的HTML文件被正常加载了。</p> <p></p> <p>这样就OK了。</p> <h4>基于端口的虚拟主机控制</h4> <p>比如现在我们有一个域名可以访问了,那么我们怎么基于端口去访问它呢,比如我们的常用的宝塔面板,端口就是8888,那么可不可以输入“z.com”打开的使我们的主网站,然后在后面输一个“z.com:8888”也能进入一个管理页面呢?</p> <p>很简单还是修改配置文件,再添加一段和刚才类似的配置:</p>
    server{
        listen 8888;
        server_name z.com;

        location / {
                root /usr/var/html;
                index index.html;
}
}

<p>我们的这个配置文件是这样写的。这次我们目录随便写,跑到了/usr/var/html文件夹下面了,那么我们就来到这个文件夹下面写一个index.html文件吧,如果没有文件夹的话自己创建一个吧,当然你也可以写到别的地方去:</p>

<html>
welcome  to z.com
</html>

<p>HTML文件内容如上,最好跟你的首页内容不一样才好,这样就能看出区别,然后我们还要开启防火墙的8888端口,这个命令在第一节有,可以回去看看:</p>

firewall-cmd --zone=public --add-port=8888/tcp --permanent
systemctl restart firewalld.service

<p>然后我们还是要把nginx软重启一下:</p>

kill -HUP  cat /usr/local/nginx/logs/nginx.pid
<p>这样我们的前台后台都能访问了:</p> <p></p> <!-- /wp:tadv/classic-paragraph --> <!-- wp:tadv/classic-paragraph --> <h4>基于IP的虚拟主机</h4> <p>就这个例子,如果我们不输入域名,只输入IP地址那么就能看到下面的页面或者是你的后台页面:</p> <p></p> <p>这个呢就是你刚才配置文件里的server顺序来选择的,我刚才时域名写在前面,然后把端口的写在后面的,所以当你直接输入IP地址的时候它不知道访问哪个,就会默认走第一个。</p> <p>现在看看基于IP的怎么配置:</p>
    server {
        listen 80;
        server_name 192.168.60.43;

        location / {
                root ip;
                index index.html;
}
}

<!-- /wp:tadv/classic-paragraph -->

<!-- wp:tadv/classic-paragraph -->
<p>其实配置方法很简单,跟前面的基本一样,那我这里就在nginx主目录下再创建一个名字叫做“ip”的文件夹咯,用来存放我们的index.html文件:</p>
<p>这次的HTML文件是这样的:</p>

<html>
<h4>welcome   to  ip</h4>
</html>

<p>现在我们来软重启一下,输入IP看看还是不是我们的那个中文域名页面了:</p>

[root@localhost nginx]# kill -HUP cat logs/nginx.pid
<p></p> <p>OK,非常的成功。非常的简单,如果学会的话请点赞打赏支持一下吧</p> <!-- /wp:tadv/classic-paragraph -->
最后修改:2020 年 02 月 28 日 06 : 51 PM
请俺喝杯咖啡呗