背景

之前在centos 7的digitalocean VPS上完成了lmnp(linux+mysql+nginx+php)环境的安装,参照的是digital ocean community里的tutorial,过程相当顺利。完成后的web目录默认为/usr/share/nginx/html/。

但是一个VPS如果只放一个站点实在有点可惜,用子目录又不能将每个站点绑定域名,逼格不够高。所以需要使用nginx的virtual host功能,配置nginx使得一个站点对应一个域名和一个站点目录。

步骤

  1. 创建一个目录用于存放每个站点的配置文件,目录为/etc/nginx/vhosts

     mkdir /etc/nginx/vhosts
  2. 在 /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;
     }
     }
  3. 同上创建多个site*.conf,其中的域名和根目录自己随便设置。

  4. 修改/etc/nginx/nginx.conf,将新创建的vhost包含进去

     nano /etc/nginx/nginx.conf
    
     #在最后一个}上一行加入
     include /etc/nginx/vhosts/*.conf
  5. 重启nginx

     nginx -s reload

参考

文章目录