资讯专栏INFORMATION COLUMN

Nginx的配置(入门)

Cheriselalala / 1346人阅读

摘要:是基于的针对打包的仓库,更新也很及时。假如这里要添加黑名单,那就创建表示禁止,支持通配符和正则。防盗链基于防盗链配置模块允许文件链出的域名白名单盗链返回结果基于用户的访问控制身份验证可用于一些私密目录。

系列文章

Nginx的配置(进阶):https://segmentfault.com/a/11...

安装 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.conf
server {
        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

参考链接:https://sb.sb/blog/centos-ins...

配置文件相关 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.conf
deny 123.151.43.110;

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

自动列目录配置
location / {
    autoindex on;
}
开启gzip压缩
$ vim /etc/nginx/nginx.conf
http {
    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.conf
location /secret {
  auth_basic "test site";
  auth_basic_user_file /etc/nginx/conf.d/.htpasswd;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40161.html

相关文章

  • Nginx入门

    摘要:据统计,截至年月,有商业网站使用做服务器或做代理,比如有有一个主进程和几个进程。主进程的作用是读取并执行配置,并维护进程。进程是实际处理请求的进程。简单指令由指令名参数组成,指令名和参数间用空格隔开,最后以分号结束。 本文是官网文档的入门学习笔记,官网链接:Beginner Guide nginx入门 安装(centos7) 1) 配置yum源:vi /etc/yum.repos.d/...

    Meathill 评论0 收藏0
  • Nginx 安装与配置规则入门

    摘要:即别名,与的匹配规则稍有不同。与的区别只能作用在中,而可以存在和中。后面必须要用结束,否则会找不到文件,而则对可有可无。 Nginx 安装与配置规则入门 nginx 安装与运行 (Mac OS环境) nginx 规则配置入门 一些命令行的配置 一、nginx 安装与运行 (Mac OS环境) 1. 安装 nginx 可通过 Homebrew 可直接安装: $brew install...

    senntyou 评论0 收藏0
  • Nginx入门及如何反向代理解决生产环境跨域问题

    摘要:还是回到万能的文件,添加匹配规则实现代理转发设置代理转发通过上面的设置,在重启服务,可以让页面中所有包含字段的请求都转为由服务器去向地址发送请求,从而巧妙的解决了浏览器的跨域问题。 1.Nginx入门与基本操作篇 注:由于服务器是windows系统,所以本文主要讲解Nginx在windows下的操作。 首先下载Nginx 解压缩,我们所有的配置基本都在万能的 nginx/conf/...

    Moxmi 评论0 收藏0
  • Nginx入门

    摘要:简单指令由,通过空格分开和分号组成。块指令拥有相同的结构,只不过是以结尾。若块指令还包含其他指令,则称为例如。模块服务器最重要的一项功能就是为静态提供服务。在配置文件里新增一个此时访问,就会看到百度首页。 1.安装 brew install nginx Mac配置目录: /usr/local/etc/nginx/nginx.conf 2.常用命令 nginx -s stop n...

    worldligang 评论0 收藏0
  • Nginx 极简入门教程!

    上篇文章和大家聊了 Spring Session 实现 Session 共享的问题,有的小伙伴看了后表示对 Nginx 还是很懵,因此有了这篇文章,算是一个 Nginx 扫盲入门吧! 基本介绍 Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。 Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发...

    _DangJin 评论0 收藏0
  • nginx 基本入门

    摘要:是至今为止见过最好的入门文章。采取基于事件的模型和依赖的机制,在多个子进程之间高效的分配请求。默认情况下,这个配置文件通常命名为并且会放置在,,或者。 本文属于翻译文章,原文链接为 nginx Beginner’s Guide。是至今为止见过最好的 nginx 入门文章。额。。。没有之一。 这篇教程简单介绍了 nginx 并且讲解了一些 nginx 可以解决的简单任务。这里,我们假设 ...

    huayeluoliuhen 评论0 收藏0

发表评论

0条评论

Cheriselalala

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<