前言:随着互联网的高速发展,时代的不断变迁。。。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
打开后如下图:

我们需要在这里边添加两行配置,告诉我们的主机,这两个域名是需要指向到我们本地的,两行配置如下:
#walle半自动化部署系统
127.0.0.1 walle.test
#laravel练习项目
127.0.0.1 laravel.test
我们可以为其添加注释,这样以后能够更直观的看出哪些配置是哪些项目的,如图:

保存退出即可
: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)