文章讲述在centos6.x上采用 yum
安装nginx,配置nginx,实现多站点,以下的测试完全在centos6.x上,完全通过,请确认一下自己的centos版本。
系统:centos6.x
内网ip:192.168.1.101
主机域名:yj.tld
一、安装 Nginx
1、添加资源库
vim /etc/yum.repos.d/nginx.repo
2、编辑nginx.repo
按 i
键,复制以下代码:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1
按 esc
键 ,输入 :wq
保存退出
3、yum 命令去安装 nginx
yum install nginx
4、测试 nginx
service nginx status
可能返回:
nginx is stopped (nginx 已停止)
5、测试nginx 的配置文件:
nginx -t
返回:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
反馈给我们 nginx 的配置文件 nginx.conf 所在的位置 /etc/nginx/nginx.conf
6、启动、重启、停止nginx服务
使用 service 命令,它可以启动(start),重启(restart),或停止服务(stop),比如要启动 nginx 服务:
service nginx start
在浏览器地址栏输入你的IP地址,或者127.0.0.1,或者:localhost,或者你的主机名称,可以看到如下信息:
Welcome to nginx! If you see this page, the nginx web server is successfully installed and working. Further configuration is required. For online documentation and support please refer to nginx.org. Commercial support is available at nginx.com. Thank you for using nginx.
二、配置 nginx 虚拟主机(多站点)
nginx虚拟主机允许我们在同一台服务器上运行多个网站,我们可以为不同的域名绑定不同的目录,访问这个域名的时候,会打开对应目录里面的东西,也就是所谓的多站点。
我们实现两个虚拟目录,一个域名是:nginx.yj.tld
一个是:apache.yj.tld
网站目录分别在:/var/nginx
和 /var/apache
在两个目录下建立主页文件:index.html,录入不同的内容,最后访问时便于区分。
1、注意:
我们是在本地测试的,我们的centos主机默认是localhost,或者127.0.0.1所以我们访问的时候在浏览器地址栏里输入以上两个都可以访问我们的默认站点,因为nginx虚拟主机配置多站点的时候,可以使用IP,端口,域名,来实现,我们这里本地测试,必须为我们的主机设置主机名域名!!否则我们只能使用端口,或ip地址来实现。
这篇文章详细介绍了域名配置方法:centos6.x配置虚拟主机名及域名hosts
2、配置域名
如果是购买的服务器已经有了域名,这步就可以省略了:)!记得我们是在本地主机实验的。
vi /etc/hosts
修改为:
192.168.1.101 yj yj.tld nginx.yj.tld apache.yj.tld 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
vi /etc/sysconfig/network
NETWORKING=yes HOSTNAME=yj.tld
最后,重启服务器即可。
reboot
3、进入 nginx 配置文件目录
cd /etc/nginx/conf.d
目录里的 default.conf
是默认配置文件,在conf.d
目录下分别建立两个文件:nginx.conf
;apache.conf
;分别是nginx.yj.tld
和apache.yj.tld
对应的配置文件
cat > nginx.conf
在命令行下输入以下内容(nginx.conf文件内容)
# # The nginx.yj.tld server # server { listen 80; server_name nginx.yj.tld; root /var/nginx; #网站目录为var下的nginx目录 #charset koi8-r; #access_log logs/host.access.log main; location / { root /var/nginx; index index.html index.htm index.php; #添加index.php和index.phtml # example #ModSecurityEnabled on; #ModSecurityConfig /etc/nginx/modsecurity.conf; } error_page 404 /404.html; location = /404.html { root /var/nginx; #修改新的目录文件 } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/nginx; #修改新的目录文件 } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /var/nginx; #修改新的目录文件 fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #}
CTRL + C
结束录入,这样我们通过cat > nginx.conf
在/etc/nginx/conf.d
下建立了nginx.conf
文件。
注意: 如果你在本地主机上没有设置虚拟主机域名,可以把 server_name nginx.yj.tld;
设为server_name 127.0.0.1
;再给端口一个值比如listen 8080;
这样你在浏览器访问的时候用http://127.0.0.1:8080
访问。
4、配置apache.conf文件
用上面同样的方法
cd /etc/nginx/conf.d
创建apache.conf
cat > apache.conf
在命令行下输入以下内容(apache.conf文件内容)
# # The apache.yj.tld server # server { listen 80; server_name apache.yj.tld; root /var/apache; #网站目录为var下的apache目录 #charset koi8-r; #access_log logs/host.access.log main; location / { root /var/nginx; index index.html index.htm index.php; #添加index.php和index.phtml # example #ModSecurityEnabled on; #ModSecurityConfig /etc/nginx/modsecurity.conf; } error_page 404 /404.html; location = /404.html { root /var/apache; #修改新的目录文件 } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/apache; #修改新的目录文件 } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /var/apache; #修改新的目录文件 fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #}
5、重启nginx服务
重启或者加载一下nginx,让两个配置文件生效
service nginx restart
或者
service nginx reload
注意:
以上两个配置文件都支持了Php,可以当做nginx的默认配置文件,如果你的主机安装了Php,我们可以把一个站点设为静态,一个是动态。
有关nginx.conf的详细配置,建议你阅读:nginx.conf参数http服务器虚拟主机反向代理负载均衡等中文配置说明
三、查看nginx.conf
我们要确认一下nginx.conf
[root@yj nginx]# vim /etc/nginx/nginx.conf
要查看一下文件的最后有没有以下命令,默认是有的!
include /etc/nginx/conf.d/*.conf;
四、查看虚拟站点
这样我们在浏览器输入 http://nginx.yj.tld
和 http://apache.yj.tld
就可以访问到站点根目录下的不同主页文件了,这样我们就实现了nginx下多站点的设置和配置,时间仓促,有错误请及时纠正,谢谢。