[内容] Nginx 重定向的设置

注意:

在设置 Nginx 重定向之前要先安装 Nginx

正文:

内容一:Nginx 重定向的常用变量和参数

1.1 Nginx 重定向的常用变量

#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#'$status $body_bytes_sent "$http_referer" '
#'"$http_user_agent" "$http_x_forwarded_for"';

1.2 Nginx 重定向的常用参数

rewrite 旧地址 新地址 [选项]
last 不再读其他 rewrite 类似与 shell 的 continue
break 不再读取其他语句,结束请求 类似于 shell 的 break
redirect 临时重定向
permament 永久重定向

内容二:Nginx 重定向的案例

2.1 案例一:将域名或 IP 重定向到别的域名或 IP

# vi /usr/local/nginx/conf/nginx.conf

将部分内容修改如下:

......
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        rewrite ^/ http://www.eternalcenter.com/;
        location / {
            root   html;
            index  index.html index.htm;
        }
......
        }
......

(补充:这里以将本地的 80 端口重定向到 www.eternalcenter.com 为例)

2.2 案例二:将域名以及域名下面的子地址指向到别的域名以及它的子地址并一一对应

# vi /usr/local/nginx/conf/nginx.conf

将部分内容修改如下:

......
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        rewrite ^/(.*)$ http://www.eternalcenter.com/$1;
        location / {
            root   html;
            index  index.html index.htm;
        }
......
        }
......

(补充:这里以将本地的 80 端口及其子地址重定向到 www.eternalcenter.com 及其子地址为例)

2.3 案例三:将指向本地 a.html 的文件指向本地文件 b.html

# vi /usr/local/nginx/conf/nginx.conf

将部分内容修改如下:

......
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            rewrite /a.html /b.html;
        }
......
        }
......

或者:

......
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
            rewrite /a.html /b.html redirect;
        }
......
        }
......

(补充:这里以将本地的 80 端口下的 a.html 重定向到 b.html 为例)

2.4 案例四:不同的浏览器返回不通的网页

# vi /usr/local/nginx/conf/nginx.conf

将部分内容修改如下:

......
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }
        if ($http_user_agent ~* firefox){
        Rewrite ^(.*)$ /firefox/$1;
        }
......
        }
......

(补充:这里以将 $http_user_agent 变量包含 firefox 的访问重定向到 /firefox/ 下对应的文件为例)

[内容] LNMP 常见错误的解决

错误一:网页显示 “an error occure”

应该是没有启动 php-fpm,需要启动 php-fpm

错误二:直接下载网页程序

没有动静分离,需要重新配置 Nginx 的配置文件

错误三:网页显示 “File not found”

网页程序放错目录,需要将网页程序放到正确的目录

错误四:网页显示空白

1) PHP 网页程序写错,需要修改 PHP 网页程序
2) 运行 php-fpm 的用户对于网页程序没有足够多的权限

[内容] LNMP 文件清单

注意:

在管理 LNMP 文件之前先要搭建 LNMP

正文:

内容一:LNMP 平台配置文件和日志的存放目录

1.1 Nginx 的配置文件存放目录

# ls /usr/local/nginx/conf/nginx.conf

1.2 php-fpm 的配置文件存放目录

# ls /etc/php-fpm.d/www.conf

内容二:LNMP 日志的存放目录

2.1 Nginx 的日志存放目录

# ls /usr/local/nginx/logs/access.log

2.2 Nginx 的错误日志存放目录

# ls /usr/local/nginx/logs/error.log

2.3 PHP 的错误日志存放目录

# ls /var/log/php-fpm/www-error.log

[实验] Nginx 源码软件包的安装

纪念:站主于 2019 年 9 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程

软件准备:

在 Nginx 官网上下载搭建集群所需软件 Nginx:

http://nginx.org/en/download.html

正文:

步骤一:系统环境要求

(1)服务器的系统需要是 CentOS Linux 7 版本
(2)服务器系统需要有 yum 源

步骤二:安装 Nginx 的依赖软件

# yum -y install gcc pcre-devel openssl-devel

步骤三:安装 Nginx

3.1 添加一个用于启动 Nginx 的用户身份

# useradd -s /sbin/nologin nginx

3.2 解压 Nginx 安装包

# tar -xvf nginx-1.16.1.tar.gz

(补充:这里要安装的 Nginx 版本是 1.16.1)

3.3 进入 Nginx 安装包目录

# cd nginx-1.16.1

(补充:这里要安装的 Nginx 版本是 1.16.1)

3.4 配置 Nginx

# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module

3.5 编译并安装 Nginx

# make && make install

步骤四:测试 Nginx

4.1 启动 Nginx

# /usr/local/nginx/sbin/nginx

4.2 访问 Nginx 实现的网页服务

# curl 127.0.0.1

4.3 显示已安装 Nginx 的版本

# /usr/local/nginx/sbin/nginx -V