Linux下nginx配置虚拟主机

在弄到新服务器,安装了所有东西后,开始配置新的站点测试了,可是问题却随之而来呀,主要是站点设置成功,但是并不支持php。
nginx配置站点其实就是基于一ip多站点。
那么在配置目录中新建一个配置文件,名字起得和站点名字相同,然后写入:

server {
    listen       80;
    server_name www.piyaoyan.com piyaoyan.com;
    access_log  /var/log/nginx/piyaoyan.com/access.log  main;
    root   /home/akcms/domains/piyaoyan.com/www;
    index  index.html index.htm index.php;

    rewrite ^/$ /akcms_item.php?id=1 last;
    rewrite ^/rss.xml$ /akcms_item.php?id=6 last;
    rewrite ^/index.html$ /akcms_item.php?id=1 last;
    rewrite ^/index-([0-9]+).htm$ /akcms_item.php?id=1&page=$1 last;
    rewrite ^/index-([0-9]+).html$ /akcms_item.php?id=1&page=$1 last;
    rewrite ^/yaoyan/([0-9]+).html$ /akcms_item.php?id=$1 last;
    rewrite ^/category/([0-9]+)\.html$ /akcms_category.php?id=$1 last;
    rewrite ^/category/([0-9]+)\-([0-9]+)\.html$ /akcms_category.php?id=$1&page=$2 last;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

在这个配置中写了伪静态的规则,支持php是下面这一条location ~\.pjp$。
写完配置后检测nginx的配置是否正确,使用nginx -t 然后重启nginx ,使用nginx -s reload
在浏览器中访问,看看是否可以,是否支持php.
好,不支持,那么这就要修改phpfastcgi的配置了,使用ps -ef | grep php
找到该服务,看看它的配置文件在什么地方,然后编辑一下。
在这里我们需要修改pool的用户和组用户,修改为和配置文件对应的用户和组即可。
重启这个玩意,重启它有点麻烦,还得通过pid来重启:kill -USR2 pid(就是主进程id)重启该服务。

时间: 2024-10-21 09:07:53

Linux下nginx配置虚拟主机的相关文章

linux下nginx实现虚拟主机(3种方法:基于域名、基于端口、基于ip地址)

在3.17日的时候已经写过一篇关于apahce的基于域名.端口.ip地址3种方式的虚拟主机实现.原理是一样的,现在记录nginx的虚拟主机这三种方式的实现. 系统版本为rhel5.6,nginx版本为1.1.6. 1.基于域名: 基于域名的方式,要先有dns服务器,这里为了方便,可以在/etc/hosts文件里面配置,把它当成dns就行了,可以参考3.17日那篇博客关于dns的配置或者其他博文也有.这里关于nginx的安装也略去. [[email protected] ~]# cat /etc/

***阿里云linux 下怎么配置虚拟主机

最近有个问题,本人在阿里云买了linux服务器,用wordpress做了一个博客网站www.bravetiger.cn,现在想加一个电商系统进去,假设二级域名为:shop.bravetiger.cn, 都是指向的阿里云同一个IP,同一个主机. 我找了下方法,应该是做一个虚拟主机配置即可,方法如下: linux系统配置Apache虚拟主机实例: 1.安装apache和php: yum install httpd php 2.假设服务器的IP是192.168.1.1,有两个域名指向该IP,分别是do

linux下apache https 虚拟主机配置

如果单纯只想在传输数据时加密传输,那么ssl证书是不需要认证的,但是浏览器打开时会有警告信息.假设我们做的不是一个公众产品那么也还好啦. 如下是今天学习时的一个笔记,其实我用的是真实环境. 环境:CentOS 64, 32bit:Apache 2.2.15: 1.检查apache是否安装了mod_ssl.so模块. 检查方法是查看是否在modules(/etc/httpd/modules/)下存在.不存在那么安装(yum -y install mod_ssl). 2.生成证书和密钥 1)生成密钥

LNMP架构应用实战——Nginx配置虚拟主机

LNMP架构应用实战--Nginx配置虚拟主机        前面介绍了nginx服务的安装与配置文件,今天介绍下它的另一种实用配置--"虚拟主机",每个虚拟主机可以是一个独立的网站,可以具有独立的域名,同一台服务器上的不同的虚拟主机之间是独立的,用户访问不同虚拟主机如同访问不同的服务器一样,因此它不需要为一个单独的WEB站点提供单独一个nginx服务器和一个单独的nginx进程 1.nginx虚拟主机简单介绍 同apache服务一样,它也有三种不同的虚拟主机,基于域名的虚拟主机.基于

windows和mac下分别配置虚拟主机

windows下配置 1.找到apache的配置文件,httpd.conf 2.找到 LoadModule rewrite_module modules/mod_rewrite.so 去掉前边的# 3.找到 Include conf/extra/httpd-vhosts.conf 去掉前边的# 4.找 conf/extra/httpd-vhosts.conf 这个文件 5.加 NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin [email 

nginx配置虚拟主机vhost的方法详解

摘自:http://www.jb51.net/article/107331.htm Nginx vhost配置,可实现基于ip.端口号.servername的虚拟主机,同时可避免直接修改主配置文件.在nginx下配置虚拟主机vhost非常方便.这篇文章主要介绍了nginx配置虚拟主机vhost的方法,需要的朋友可以参考下 前言 所谓虚拟主机,是说通过几个不同的url地址,都能到达nginx环境,只不过针对不同的url,处理的逻辑不同.nginx支持虚拟主机,但是浏览器等客户端不知道,所以虚拟主机

【转】Linux下nginx配置https协议访问的方法

一.配置nginx支持https协议访问,需要在编译安装nginx的时候添加相应的模块--with-http_ssl_module 查看nginx编译参数:/usr/local/nginx/sbin/nginx -V 如下所示: configure arguments: --prefix=/usr/local/nginx --with-google_perftools_module --without-http_memcached_module --user=www --group=www --

nginx 配置虚拟主机的三种方法

nginx,一个server标签就是一个虚拟主机. 1.基于域名的虚拟主机,通过域名来区分虚拟主机--应用:外部网站 2.基于端口的虚拟主机,通过端口来区分虚拟主机--应用:公司内部网站,外部网站的管理后台 3.基于ip的虚拟主机,几乎不用. 1.基于域名配置虚拟主机配置: 需要建立/data/www /data/bbs目录,windows本地hosts添加虚拟机ip地址对应的域名解析: 对应域名网站目录下新增index.html文件: nginx.conf配置文件新增如下代码: server 

nginx配置虚拟主机之不同端口和不同IP地址

配置nginx虚拟主机不同端口和不同ip地址,和上编nginx基于域名配置虚拟主机博文类似,请先参考. zxl.com域名不同端口,配置文件内容如下: [[email protected] conf.d]# cat zxl.com.conf  server { listen 81; server_name www.zxl.com zxl.com; location / { root /data/zxl; index index.html index.htm; access_log  logs/z