nginx多站点配置
背景
之前在centos 7的digitalocean VPS上完成了lmnp(linux+mysql+nginx+php)环境的安装,参照的是digital ocean community里的tutorial,过程相当顺利。完成后的web目录默认为/usr/share/nginx/html/。
但是一个VPS如果只放一个站点实在有点可惜,用子目录又不能将每个站点绑定域名,逼格不够高。所以需要使用nginx的virtual host功能,配置nginx使得一个站点对应一个域名和一个站点目录。
步骤
-
创建一个目录用于存放每个站点的配置文件,目录为/etc/nginx/vhosts
mkdir /etc/nginx/vhosts
-
在 /etc/nginx/vhosts/ 里创建一个名字为 site1.conf 的文件,把以下内容拷进去。注意需要修改server_domain_name_or_IP为希望绑定的域名,root后面修改为改域名访问的根目录。
server { listen 80; server_name server_domain_name_or_IP; root /usr/share/nginx/html; index index.php index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ .php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
-
同上创建多个
site*.conf
,其中的域名和根目录自己随便设置。 -
修改
/etc/nginx/nginx.conf
,将新创建的vhost包含进去nano /etc/nginx/nginx.conf #在最后一个}上一行加入 include /etc/nginx/vhosts/*.conf
-
重启nginx
nginx -s reload
参考
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。