一、修改nginx.conf配置文件
mkdir /usr/local/ngxin/conf/vhost #创建vhost 子目录
vim /usr/local/ngxin/conf/vhost/aaa.com.conf #编辑一个文件 添加下面内容
server
{
listen 80 default_server;
server_name aaa.com;
index index.html index.htm index.php;
root /data/wwwroot/default;
}
mkdir -p /data/wwwroot/default #创建网站所放的目录
vim index.html #创建网站首页
This is the default size #添加内容
/usr/local/nginx/sbin/nginx -t #检查配置文件是否错误
/usr/local/nginx/sbin/nginx -s reload #重新加载
ngxin设置用户认证
vim /usr/local/nginx/conf/vhost/test.com.conf #添加一个虚拟主机配置文件
添加下面内容
server {
listen 80;
server_name test.com;
index index.html index.htm index.php;
root /data/wwwroot/test.com;
location /admin/ #这里/指定的全部 ~指定单个文件
{
auth_basic "Auth";
auth_basic_user_file /usr/local/ngxin/conf/htpasswd;
autoindex on;
#定义的用户名密码文件,这里需要用htpasswd
}
}
yum -y isntall httpd #安装http
htpasswd -c /usr/local/nginx/conf/htpasswd aaa #设置一个用户为aaa -c只要指定一次就好,如果需要在添加多个用户 不需要指定,这里-c指覆盖
New password: #密码bbb
Re-type new password:
Adding password for user aaa
/usr/local/nginx/sbin/nginx -s reload #重新加载
ngxin设置域名重定向
修改(二)的test.com.conf配置文件
server
{
listen 80;
server_name test.com test2.com test3.com; #多添加几个域名
index index.html index.htm index.php;
root /data/wwwroot/test.com;
if ($host != 'test.com' ) {
rewrite ^/(.*)$ http://test.com/$1 permanent;
} #写成全部是 rewrite http://$host/^/(.*)$ http://test.com/$1 permanent;
}
ngxin设置日志格式
nginx设置静态文件不记录日志
一、配置test.com.conf配置文件 添加下面代码
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 7d;
access_log off;
}
location ~ .*\.(js|css)$
{
expires 12h;
access_log off;
}
实验:
nginx如何设置防盗链
如果您使用的是默认站点,也就是说,您的站点可以直接输入服务器IP访问的,使用root登录,修改 /usr/local/nginx/conf/nginx.conf 这个配置文件。
如果您新建了站点,那么修改/usr/local/nginx/conf/vhost/你的域名.conf 这个配置文件,找到:
1 2 3 4 |
|
把这一段删掉,修改成:
1 2 3 4 5 6 7 8 |
|
第一行: location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
其中“gif|jpg|jpeg|png|bmp|swf”设置防盗链文件类型,自行修改,每个后缀用“|”符号分开!
第三行:valid_referers none blocked *.it300.com it300.com;
就是白名单,允许文件链出的域名白名单,自行修改成您的域名!*.it300.com这个指的是子域名,域名与域名之间使用空格隔开!
第五行:rewrite ^/ http://www.it300.com/static/images/404.jpg;
这个图片是盗链返回的图片,也就是替换盗链网站所有盗链的图片。这个图片要放在没有设置防盗链的网站上,因为防盗链的作用,这个图片如果也放在防盗链网站上就会被当作防盗链显示不出来了,盗链者的网站所盗链图片会显示X符号。
这样设置差不多就可以起到防盗链作用了,上面说了,这样并不是彻底地实现真正意义上的防盗链!
我们来看第三行:valid_referers none blocked *.it300.com it300.com;
valid_referers 里多了“none blocked”
我们把“none blocked”删掉,改成
valid_referers *.it300.com it300.com;
nginx彻底地实现真正意义上的防盗链完整的代码应该是这样的:
1 2 3 4 5 6 7 8 |
|
这样您在浏览器直接输入图片地址就不会再显示图片出来了,也不可能会再右键另存什么的。
第五行:rewrite ^/ http://www.it300.com/static/images/404.jpg;
这个是给图片防盗链设置的防盗链返回图片,如果我们是文件需要防盗链下载,把第五行:
rewrite ^/ http://www.it300.com/static/images/404.jpg;
改成一个链接,可以是您主站的链接,比如把第五行改成:
rewrite ^/ http://www.it300.com;
这样,当别人输入文件下载地址,由于防盗链下载的作用就会跳转到您设置的这个链接!
最后,配置文件设置完成别忘记重启nginx生效!
Nginx访问控制
配置nginx进程个数和链接数量
worker_processes 1;//进程个数,一般配置的数目和主机cpu的总核数相同。
worker_connections 1024;//单个进程最大链接数量
配置IP访问控制
location / {
deny 192.168.1.109; //禁止访问192.168.1.109;
allow 192.168.1.0/24;192.168.0.0/16;192.0.0.0/8; //允许访问192.168.1.0-192.168.1.254,其他两个网段同理
allow all; //允许所有
}
匹配规则:按照顺序依次检测,直到匹配到第一条规则,如果全部没有匹配到,则允许。
配置用户访问认证
location / {
auth_basic string|off //string为用户认证时候的提示信息,off为关闭认证
auth_basic_user_file conf/htppasswd //用户密码加密文件路径
}
创建用户密码加密文件:
官方文档说可以用Apache发行包中的htpasswd命令来创建此类文件,所以先安装Apache发行包。
(1)安装Apache发行包。
sudo yum install -y httpd
(2)使用htpasswd创建加密文件
htpasswd -b -c -m /home/bxp/Documents/install/tengine-2.2.0/nginx/conf/userpasswd bxp 123456
-b 指定用户名和密码
-c:创建一个新的文件
-m:使用md5算法进行加密
/home/bxp/Documents/install/tengine-2.2.0/nginx/conf/userpasswd:创建的加密文件
Nginx解析php相关配置
- 配置如下:
location ~ \.php$
{
include fastcgi_params;
fastcgi_pass unix:/tmp/php-fcgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www/test02$fastcgi_script_name;
}
- fastcgi_pass 用来指定php-fpm监听的地址或者socket
- fastcgi_index index.php #设定访问根目录默认去找的文件
- fastcgi_param SCRIPT_FILENAME /data/www/test02$fastcgi_script_name #设置访问根目录时默认寻找的文件
fastcgi_param SCRIPT_FILENAME /data/www/test02/abc$fastcgi_script_name #访问根目录www.test02.com/
会去默认寻找abc中index.php文件,而此时去访问这个index.php文件是寻找不到的只能通过根目录去访问
www.test02.com/abc/index.php 返回404
- 查看/usr/local/php-fpm/etc/php-fpm.conf
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]
listen = /tmp/php-fcgi.sock
;listen = 127.0.0.1:9000
listen.mode = 666
user = php-fpm
group =php-fpm