Nginx中虚拟主机与指定访问路径的设置方法讲解

2025-05-26 0 50

添加多个虚拟主机

最近在ubuntu上捣腾nginx,安装成功了,就只有rewrite没有试验,因为服务器上有多个网站,还不敢在服务器上尝试,慢慢来。网上查了一些文章,下了一篇留下来做试验。
nginx虚拟主机的配置其实跟apache上的基本上类似。
需要注意的几点是:
第一、关于.htaccess配置,也就是为静态配置,在nginx上一般你要写在虚拟主机的配置文本中,但是我也有看到用包含文件解决这个问题的,即在虚拟主机配置脚本上include .htaccess文件,不过没有没有试过。
第二、计划好用何种方式运行php,fastcgi?我并不认为在网上流传的这种办法是一个好办法,相反我认为作为一个出色的反向代理服务器应该发挥其反向代理的优势,所以执行php的方式上请先斟酌好。
好了,回到正题上。
观察一下nginx的目录结构,大概你已经知道该怎么做了,跟apache的虚拟主机配置基本类似。
在/etc/nginx/sites-available上新建一个文件,比如叫www.zzvips.com吧
然后

?

1
vi www.zzvips.com

加入文件内容如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14
server

{

listen [::]:80;

server_name www.zzvips.com zzvips.com;

root /var/www/zzvips.com;

index index.html index.htm index.php;

include /etc/nginx/common.conf;

location /nginx_status

{

stub_status on;

access_log off;

allow all;

}

}

简单的解释一下:
listen就是监听端口,不必多说;
server_name要多说几句,因为你可能想到了server_alias,其实在nginx中第一个就是server_name,后面的就是server_alias,所以在nginx中server alias name别名是不用另外声明的,这根apache有很大的区别,注意下。
index就是查找网页的先后顺序
include 是包含文件,www.zzvips.com包含的文件是干啥用的呢?里面是指定php的运行方式,文件缓存等,我不妨把我提示的配置贴一个上来:

?

1

2

3

4

5

6

7

8

9

10

11

12

13
location ~* \\.(ico|css|js|gif|jpe?g|png)(\\?[0-9]+)?$ {

expires max;

break;

}

location ~ .*\\.php$ {

# fastcgi_pass 127.0.0.1:9000;

fastcgi_pass unix:/dev/shm/php-cgi.sock;

fastcgi_index index.php;

include /etc/nginx/fastcgi_params;

}

if ( $fastcgi_script_name ~ \\..*\\/.*php ) {

return 403;

}

最后 location /nginx_status相当与apache的server-status,就不多少说了。

?

1

2

3

4

5

6
location /nginx_status

{

stub_status on;

access_log off;

allow all;

}

然后第二步,建立软连接到sites-enable里面去

?

1
ln -s /etc/nginx/sites-available/www.zzvips.com /etc/nginx/sites-enabled/www.zzvips.com

你是否需要检查一下配置语法是不是正确呢?
检查一下:

?

1

2

3
/etc/init.d/nginx configtest

Testing nginx configuration: nginx.

没有返回错误,重启nginx就可以了。
/etc/init.d/nginx restart


指定访问路径

niginx 似乎没有虚拟目录的说法,但是可以指定请求路径时nginx访问的路径,也算是一个解决办法。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21
server {

listen 80 default;

server_name _;

location / {

root html;

index 403.html;

}

location ~ //.ht {

deny all;

}

location /phpadmin/ {

alias /opt/www/phpadmin/;

index index.php;

}

location ~ /.php$ {

include httpd.conf;

}

}

要注意的是, location /phpadmin/ {} 和 location /phpadmin {} 是完全不同的。

前者可以访问到目录,而后者将被重定向到服务器,如: http://127.0.0.1/phpadmin ,将被重定向到 http://_/phpadmin

下面这个配置和上面基本类似,唯一的不同是,所有对 /phpadmin/的访问将正确解析,而其他访问则返回页面不存在(404)的信息。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23
server {

listen 80 default;

server_name _;

location / {

root html;

#index 403.html;

return 404;

}

location ~ //.ht {

deny all;

}

location /phpadmin/ {

alias /opt/www/phpadmin/;

index index.php;

}

location ~ /.php$ {

include httpd.conf;

}

}
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Nginx中虚拟主机与指定访问路径的设置方法讲解 https://www.kuaiidc.com/53965.html

相关文章

发表评论
暂无评论