Nginx优化之配置虚拟主机

2019年7月27日 0 条评论 65 次阅读 0 人点赞

前言:随着互联网的高速发展,时代的不断变迁。。。emmm,走远了,这篇文章说实话算不上什么优化把,但是感觉会便于Nginx的维护,之前的虚拟主机都要写在sites-available文件夹里边,写完还要做个软链接到sites-enabled文件夹里边,很麻烦,那今天要讲的就是把虚拟主机的配置文件统一放在一个文件夹里,增加站点就加配置文件,减少站点就删配置文件。

注意:本次配置是在本地配置,可能会讲到hosts的配置,指向本地虚拟域名,如果是在服务器部署的童鞋,可以忽略hosts这一步,server_name对应着你解析到该服务器的域名即可。

一、打开Nginx的主配置文件

1、Nginx的主配置文件一般是nginx.conf

sudo vim /etc/nginx/nginx.conf

2、在http的作用域用添加一行如下代码

include /etc/nginx/server/*.conf;

3、保存并退出

:wq

4、在Nginx的配置文件根目录/etc/nginx下创建一个server目录用来存放我们的虚拟主机配置文件。

mkdir /etc/nginx/server

5、给server目录赋予读写权限

chmod 777 -R /etc/nginx/server

6、进入到我们刚刚创建的虚拟主机配置文件存放目录

cd /etc/nginx/server

7、创建一个虚拟主机配置文件

例如我接下来需要搭建walle半自动化部署系统,我们需要创建一个虚拟主机文件,指向我们的源码根目录

vim /etc/nginx/server/walle.conf

然后我们就创建了walle.conf这个配置文件,我们在配置文件中写入如下内容

server {
    listen       80;
    server_name  walle.test;
    access_log   /etc/nginx/logs/walle.log main;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ /index.html;
        add_header access-control-allow-origin *;
        root /var/www/walle-web/fe;
    }

    location ^~ /api/ {
        add_header access-control-allow-origin *;
        proxy_pass      http://webservers;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
    }

    location ^~ /socket.io/ {
        add_header access-control-allow-origin *;
        proxy_pass http://webservers;
        proxy_set_header X-Forwarded-Host $host:$server_port;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header    Origin        $host:$server_port;
        proxy_set_header    Referer       $host:$server_port;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

这里的具体内容是什么意思大家百度一下基本就明白了,这些都是基础知识,因为walle系统需要用到反向代理,所以和其他网站的配置文件就不太一样,我下面给大家展示一个正常的laravel项目的配置文件:

server {
        #端口监听
        listen 80;
        #客户端最大传输值
        client_max_body_size  512m;
        #项目指向目录
        root /var/www/laravel/public;
        #默认首页
        index index.php index.html index.htm;
        #域名或者本地虚拟域名
        server_name laravel.test;
        #所有的请求都会走index.php这个文件
        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }
        #php为后缀的交给fpm处理
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
        #配置伪静态和权限
        location ~ /\.ht {
                deny all;
        }
}

说好了让你们自己去查的,还是给你们写了备注,哎,真的是长得又帅心又软 0.0

然后保存并退出,确保自己的网址指向目录存在并正确,确保access_log的目录存在并且有可读写权限,确定了后。我们平滑重启Nginx。

nginx -s reload

当然也可以直接重启

nginx -s reopen

或者重启服务(全部Nginx进程)

service nginx restart

8、配置hosts

如果在本地的测试环境搭建的Nginx,想要通过虚拟域名访问本地项目,那么就需要配置hosts了,如果为云服务器,直接将域名解析到服务器的80端口上,在Nginx的配置文件中配置server_name和你解析的域名一样即可。

例如我们刚刚配置了walle.test和laravel.test这两个域名在虚拟主机的配置文件内,那么我们想要通过这两个虚拟域名去访问到我们本地的两个项目,那就必须配置hosts了(注意:配置hosts需要管理员权限)

sudo vim /etc/hosts

打开后如下图:

hosts配置文件

我们需要在这里边添加两行配置,告诉我们的主机,这两个域名是需要指向到我们本地的,两行配置如下:

#walle半自动化部署系统
127.0.0.1       walle.test
#laravel练习项目
127.0.0.1       laravel.test

我们可以为其添加注释,这样以后能够更直观的看出哪些配置是哪些项目的,如图:

配置hosts

保存退出即可

:wq

9、然后我们在/var/www/laravel/public下创建一个index.php文件看看能否使用laravel.test这个虚拟域名访问到(这里懒得创建一个laravel项目了,所以直接在public下创建个index.php文件检测配置是否生效了)

sudo mkdir /var/www/laravel

进入laravel这个目录里边,创建一个public目录

cd /var/www/laravel && sudo mkdir public

然后进入到public目录下创建一个index.php文件

cd public && sudo vim index.php

在文件内写如下内容:

<?php
echo "我是laravel.test访问到的页面";
phpinfo();
?>

然后保存并退出

:wq

10、打开浏览器访问laravel.test看看是否能访问到我们刚刚写的index.php文件内
如图:

配置成功界面

结语:到这里配置就算完毕了,每一次想要新增站点,只需要将server下内容相近的配置文件复制一份并且重命名修改一下即可,然后平滑重启Nginx,这样无论是哪一个站点出问题了,你能够最快的时间内找到他的配置文件,便于管理。虽然这并不能算是一个对Nginx的优化吧,但是对于有强迫症的人还是比较舒服的 !

梁桂锋

来自西京学院大三的小开发者。

文章评论(0)