Nginx配置多个目录网站

例如将一个网站放在/home/pi/www/html,另一个放在/home/pi/www/blog中,第一个目录是我的Nginx默认路径因此不用配置,咱来配置第二个,并且假如第二个我有域名xx.com在Nginx配置目录下,创建一个”vhost”目录。本例假设Nginx是默认安装,配置目录在”/etc/nginx”$ sudo mkdir /etc/nginx/vhost创建siteA的配置文件$ sudo vi /etc/nginx/vhost/vhost_siteA.conf输入以下配置信息server { listen 80; # 监听端口 server_name xx.com www.xx.com; # 站点域名 root /home/pi/www/blog; # 站点根目录 index index.html index.htm index.php; # 默认导航页 location / { # WordPress固定链接URL重写 一般网站不需要 根据实际情况去留 if (!-e $request_filename) { rewrite (.*) /index.php; } } # PHP配置 sock路径根据实际安装而定 location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.3-fpm.sock; }}打开nginx.conf文件sudo vi /etc/nginx/nginx.conf将虚拟目录的配置文件加入到”http {}”部分的末尾http { ... include /etc/nginx/vhost/*.conf;}重启Nginx服务$ sudo service nginx restart现在访问localhost和xx.com,你将发现浏览器会打开不同的站点当然如果你想继续添加网站目录,域名为yy,那同上继续同siteA一样创建siteB的配置文件,两者仅有的不同是”server_name”和”root”目录$ sudo vi /etc/nginx/vhost/vhost_siteB.conf配置内容如下简写,由于nginx.conf里用通配符匹配配置目录下所有配置文件,因此不用配置nginx.conf,只需要重启下nginx即可,然后访问yy.com你将又打开另个网站server { ... server_name www.yy.com yy.com; # 站点域名 root /home/pi/www/forum; # 站点根目录 ...}禁止访问小技巧假如你的Nginx根目录设在”/home/user/www”,你想阻止别人通过”http://IP地址/blog”或”http://IP地址/forum”来访问你的站点,最简单的方法就是禁止IP地址访问。方法如下:打开Nginx网站默认配置文件,记得先备份$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default_bak$ sudo vi /etc/nginx/sites-available/default将所有内容删除,只留以下配置server { listen 80 default_server; server_name _; return 404;}重启Nginx后,别人将无法通过IP地址访问网站了如果你不想禁止IP地址访问整个目录,只是要防止别人通过IP访问你的博客和论坛。那就需要禁止”/blog”和”/forum”的目录访问。打开Nginx网站默认配置文件,同上面一样,记得先备份在”server { }”部分加上以下配置location ^~ /blog/ { deny all;}location ^~ /forum/ { deny all;}重启Nginx即可来源参考:https://www.cnblogs.com/Erick-L/p/7066564.html