12.6 Nginx安装
1.cd到目录,然后下载nginx安装包
2.解压之后cd到解压好的目录里面去。
3.然后我们来编译,(这里我们没有加什么参数,但是如果有需要就可以在这一步加上参数)
然后
4.然后我们可以看一下它的目录,
conf是它的配置文件目录,html是样例文件目录,logs日志目录,sbin是它的进程文件也是核心文件,
-t查看配置文件是否有错,
5.然后我们给这个nginx创建配置文件,还要做一个启动脚本,,文件内容将
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start()
{
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop()
{
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload()
{
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart()
{
stop
start
}
configtest()
{
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
RETVAL=1
esac
exit $RETVAL
代码粘贴进去即可,
6.更改目录权限,然后把它加入到系统服务中去,设置开机启动
7.然后去配置它的配置文件,因为里已经有了,但是我们不用它,所以给它改一下名字:
,然后
,拷贝
user nobody nobody;
worker_processes 2;
error_log /usr/local/nginx/logs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 6000;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 3526;
server_names_hash_max_size 4096;
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
' $host "$request_uri" $status'
' "$http_referer" "$http_user_agent"';
sendfile on;
tcp_nopush on;
keepalive_timeout 30;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 8 4k;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
client_max_body_size 10m;
client_body_buffer_size 256k;
client_body_temp_path /usr/local/nginx/client_body_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_intercept_errors on;
tcp_nodelay on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_comp_level 5;
gzip_http_version 1.1;
gzip_types text/plain application/x-javascript text/css text/htm
application/xml;
server
{
listen 80;
server_name localhost;
index index.html index.htm index.php;
root /usr/local/nginx/html;
location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name;
}
}
}
然后我们需要编辑如下位置,(这里其实就相当于默认虚拟主机)
第二行是域名,第四行是网站根目录,第五行是配置解析php的部分。
nginx是通过这一行调用php-fpm服务的,指定hp-fpm服务的监听端口或sock。
如果我们监听的是127.0.0.1的9000端口那么我们就写,这里我们用的是sock所以不用改。
然后我们使用-t检查一下错误,就可以启动了,启动好之后我们可以看一下有没有它的进程。我们可以从进程中看出它的父进程的权限是root,子进程是php-fpm。
然后我们还可以使用测试与一下,如下就是nginx的欢迎界面。
然后我们来测试一下php
在里面添加;然后
出现如下内容就成功了
12.7 默认虚拟主机
刚刚我们提到了nginx的默认虚拟主机配置文件,当然除了这个之外其实还有个专门用来定义默认虚拟主机配置文件的配置段,
1.我们先来做一个操作,我们首先改一下,把如下一段删掉
2.然后加上在这个位置加上并保存退出(这一步是指定默认虚拟主机目录),然后在
创建vhost目录,然后在这个目录里创建
文件,在里面添加如下行,
第一行是监听80端口,后面带有就代表他是默认虚拟主机,index指定它的索引页,root指定网站目录。
然后我们就需要在创建这个目录然后我们进去写一些东西,
在里面添加如下内容
然后我们检测一下有没有错,如果我们aaa.com.conf里面写错的话就会提示。
然后我们使用重新加载一下(改了文件之后都要重新加载一下才能生效)
然后我们来测试一下,如下图,原来是欢迎页,现在变成如下内容
我们指定域名和端口,然后访问其他域名结果也是一样。(这就是默认虚拟主机的效果)
12.8 Nginx用户认证
和apache一样都需要定义用户和密码文件。
1.创建虚拟主机添加如下内容
auth开头的两行就是用户认证相关的配置啦。第一行定义用户认证的名字,第二行是他的用户名密码文件。
2.这里用到apache的密码生成工具,如果你安装过的话直接运行(指定密码文件路径和用户名),没有安装过就安装一下
。然后我们设置它的密码输入两次。然后我们可以看一下
文件就会发现里面多了一行,如果要继续添加用户和密码就不需要加-c了,不然就会重置。(-c是生成文件的意思,它会覆盖原来的文件)
3.然后我们使用-t查看一下有没有错误,然后重新加载
(reload重新加载的好处是如果你的配置文件有错误的时候它不会把原来的正确的停掉)
4.然后我们来测试如下图会提示401,
401就是说它需要用户和密码认证,那么我们就来指定,使用指定用户名和密码
然后它会提示404,因为它去访问test.com里的index.html了,但是我们还没有创建,test.com主目录都还没有创建,下面我们来创建一下。
然后再来访问就正常了。
这就是用户认证,当然这个是针对真个站点的。我们也可以设置只针对一个目录。
只需要把改下这个文件内容即可,如下图位置改成你想要加用户认证的目录
然后重新加载一下
之后访问test.com就不需要认证了,但是test.com/admin目录就需要了
当然我们也可以针对php文件
12.9 Nginx域名重定向
1.改一下配置文件,增加如下域名,和重定向规则,然后我们可以把下面用户认证部分删掉。
permanent是301永久重定向的意思。
然后-t检查错误,然后重新加载一下
我们来测试一下,如下图是301,重定向到了
改成test4就是404它会去访问默认虚拟主机