博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx的配置(入门)
阅读量:5977 次
发布时间:2019-06-20

本文共 4014 字,大约阅读时间需要 13 分钟。

系列文章

Nginx的配置(进阶):

安装

yum源安装

$ yum install nginx

源码安装

咕咕咕

操作

清除缓存

$ mv /var/log/nginx/access.log /var/log/nginx/20180816.log$ kill -USER1 Nginx主进程号  # 让Nginx重新生成一个新的日志文件access.log

配置php

增加 EPEL 和 Remi 仓库

EPEL 指的是 Extra Packages for Enterprise Linux,由 Fedora 社区维护,专门给 RHEL 系的操作系统使用,并且相对于 CentOS 默认的仓库,更新比较快。

Remi 是基于 EPEL 的针对 PHP 打包的仓库,更新也很及时。

$ yum install epel-release

如果VPS商家的系统是精简的:

$ yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

安装Remi仓房:

$ yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

接着更新一下系统并且安装一些必要的软件:

$ yum update$ yum install curl vim wget sudo unzip yum-utils

安装php 7.0.x

指定 PHP 包的版本

$ yum-config-manager --enable remi-php70$ yum update

安装一些基本的PHP包:

$ yum install php-fpm php-mysql php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc php-zip

修改一下/etc/php.ini

$ sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php.ini

编辑Nginx的配置文件

$ vim /etc/nginx/nginx.confserver {        listen       80 default_server;        listen       [::]:80 default_server;        server_name  _;        root         /usr/share/nginx/html;        # Load configuration files for the default server block.        include /etc/nginx/default.d/*.conf;        location / {        }       [*] 在此处添加即可       # 开启PHP-fpm 模式         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;        }        error_page 404 /404.html;            location = /40x.html {        }        error_page 500 502 503 504 /50x.html;            location = /50x.html {        }    }

重启php和nginx

$ systemctl restart php-fpm  $ systemctl restart nginx

参考链接:

配置文件相关

location匹配

~      #波浪线表示执行一个正则匹配,区分大小写~*     #表示执行一个正则匹配,不区分大小写^~     #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录=      #进行普通字符精确匹配@      #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

例如:

location / {        index index.php index.html;        error_page 404 =200 /404.html;    }

基于IP的访问控制

查看配置文件,确保包括了default.d目录下的配置文件

http {...        include /etc/nginx/default.d/*.conf;...}

灵活配置,可以针对不同server做不同的访问控制。

然后在default.d目录下创建访问控制列表。
假如这里要添加黑名单,那就创建black.conf:

$ cat black.confdeny 123.151.43.110;

deny表示禁止,支持通配符和正则。

自动列目录配置

location / {    autoindex on;}

开启gzip压缩

$ vim /etc/nginx/nginx.confhttp {    gzip on;   # 开启Gzip    gzip_min_length 1k;    # 不压缩临界值,大于1K的才压缩    gzip_buffers 4 16k;         #gzip_http_version 1.1;    gzip_comp_level 2;     # 压缩级别,1-10,数字越大压缩的越好,时间也越长    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;     # 压缩文件类型    #gzip_vary on;    # 跟Squid等缓存服务有关     gzip_disable "MSIE [1-6]\.";  # 不压缩IE6    ...}

缓存设置

...proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;server {     set $upstream http://ip:port          location / {                   proxy_cache my_cache;                   proxy_pass $upstream;                }}...

Alias配置

$ vim /etc/nginx/nginx.conf...        location /htdocs {                alias /opt/www/alias;                index index.html;        }...

alias只会匹配最右侧的路径。

例如输入http://www.brownfly.cn/htdocs/index.html,那么匹配的则是/opt/www/alias/index.html
而不是/opt/www/alias/htdocs/index.html

防盗链

基于http_refer防盗链配置模块:

$ vim /etc/nginx/nginx.conf...        location ~* .*\.(git|png|jpg|jpeg|swf|fle)$ {                valid_referers none blocke 127.0.0.1 *.baidu; # 允许文件链出的域名白名单                if ($invalid_referer){                        #rewrite ^/ http://118.25.89.91/404.html; # 盗链返回结果                        return 403;                }

基于用户的访问控制

身份验证可用于一些私密目录。

生成密码账户文件

$ yum install -y httpd-tools$ cd /etc/nginx/conf.d$ htpasswd -c -m .htpasswd http1  # 创建http1用户输入密码$ htpasswd -m .htpasswd http2  # 创建http2用户输入密码

修改配置文件

$ vim /etc/nginx/nginx.conflocation /secret {  auth_basic "test site";  auth_basic_user_file /etc/nginx/conf.d/.htpasswd;}

转载地址:http://ozpox.baihongyu.com/

你可能感兴趣的文章
GRUB and LVM and EVMS
查看>>
List集合的迭代器方法
查看>>
ECShop替换FCKeditor编辑器为KindEditor
查看>>
oracle 11g EM停止后无法启动
查看>>
面向对象是软件开发范式的根本性颠覆: 主体建模, 非目标导向, 松耦合, 非逻辑分解, 软件进化...
查看>>
OSI七层模型和TCP/IP四层模型
查看>>
ceph学习笔记之七 数据平衡
查看>>
windows下的php的memcache扩展的安装及memcache最新下载地址
查看>>
YOLOv3: 训练自己的数据(绝对经典版本1)
查看>>
POJ 1150 The Last Non-zero Digit 《挑战程序设计竞赛》
查看>>
Could not find artifact com.sun:tools:jar:1.5.0 解决办法
查看>>
神经网络---Hessian矩阵
查看>>
TreeMap之floorKey
查看>>
phpstorm xdebug remote配置
查看>>
iOS 无限后台运行
查看>>
STL札记3-2(hashtable关联容器set、map)
查看>>
Android 打开屏幕旋转
查看>>
MySQL索引背后的数据结构及算法原理
查看>>
windows 安装与使用redis
查看>>
Git fetch和git pull的区别
查看>>