Nginx日记

一.YUM安装Nginx

系统:CentOS release 6.6 (Final)

创建  /etc/yum.repos.d/nginx.repo 这个文件,内容为:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

yum install nginx

二.源码安装

./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-http_ssl_module
    --with-pcre=../pcre-4.4
    --with-zlib=../zlib-1.1.3


三.Nginx启动和停止
关闭重启nginx时,需加上-s选项平滑重启关闭

nginx -s signal

Where signal may be one of the following:
  • stop — 快速关闭
  • quit — 正常关闭
  • reload — 重新加载配置文件
  • reopen — 打开日志文件
四.配置文件
配置一般有两个模块

http{
 	server{
	
	}
}



http {
    
server {
    location / {
        root /data/www;
    }

    location /images/ {
        root /data;
    }
}
}
代理配置
server {
    location / {
        proxy_pass http://localhost:8080;
    }

    location /images/ {
        root /data;
    }
}


server {
    listen 8080;
    root /data/up1;

    location / {
    }
}


图片路径配置

location ~ \.(gif|jpg|png)$ {
    root /data/images;
}
配置fastcgi代理
server {
    location / {
        fastcgi_pass  localhost:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param QUERY_STRING    $query_string;
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
}
配置支持PHP
location ~ [^/]\.php(/|$)
{
  try_files $uri =404;
  fastcgi_pass  unix:/tmp/php-cgi.sock;
  fastcgi_index index.php;
   fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
   fastcgi_param  QUERY_STRING       $query_string;
   fastcgi_param  REQUEST_METHOD     $request_method;
   fastcgi_param  CONTENT_TYPE       $content_type;
   fastcgi_param  CONTENT_LENGTH     $content_length;


   fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
   fastcgi_param  REQUEST_URI        $request_uri;
   fastcgi_param  DOCUMENT_URI       $document_uri;
   fastcgi_param  DOCUMENT_ROOT      $document_root;
   fastcgi_param  SERVER_PROTOCOL    $server_protocol;
   fastcgi_param  HTTPS              $https if_not_empty;


   fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
   fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;


   fastcgi_param  REMOTE_ADDR        $remote_addr;
   fastcgi_param  REMOTE_PORT        $remote_port;
   fastcgi_param  SERVER_ADDR        $server_addr;
   fastcgi_param  SERVER_PORT        $server_port;
   fastcgi_param  SERVER_NAME        $server_name;
}

重写URL配置
location /users/ {
    rewrite ^/users/(.*)$ /show?user=$1 break;
}
server {
    ...
    rewrite ^(/download/.*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;
    rewrite ^(/download/.*)/audio/(.*)\..*$ $1/mp3/$2.ra  last;
    return  403;
    ...
}

Nginx错误处理

error_page 404 /404.html;





### 配置 Nginx 实现动静分离 在 Linux 环境下,可以通过调整 Nginx 的配置来实现静态资源和动态请求的分离。这种做法可以显著提高服务器性能并优化用户体验。 #### 动静分离原理 动静分离是指将网站中的静态资源(如图片、CSS 文件、JavaScript 文件等)与动态内容分开处理。通过这种方式,可以让 Nginx 更高效地提供静态文件服务,而动态请求则转发到后端应用服务器上进行处理[^1]。 #### 配置方法 以下是具体的配置步骤: ##### 1. 定义静态资源路径 假设所有的静态资源都存储在一个特定目录 `/data/www/static` 中,则可以在 `location` 块中定义匹配规则以识别这些静态文件类型。 ```nginx location ~* \.(js|css|jpg|jpeg|gif|png|swf|ico|pdf)$ { root /data/www/static; expires 1d; # 设置缓存时间为一天 } ``` 上述代码片段的作用是当客户端访问指定类型的文件时,Nginx 将会从根目录 `/data/www/static/` 提供相应的文件,并设置 HTTP 头部字段 `Expires` 来启用浏览器缓存功能[^2]。 ##### 2. 转发动态请求至后端服务器 对于非静态的内容请求,通常需要将其传递给后端的应用程序服务器(例如 PHP-FPM 或其他 Web 应用框架)。这可以通过反向代理的方式完成。 ```nginx server { listen 80; server_name example.com; location / { proxy_pass http://localhost:9000; # 替换为目标应用程序地址 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } ``` 此部分配置用于捕获所有未被前一步骤拦截的 URL 请求并将它们发送到本地运行的服务实例上进一步处理。 ##### 3. 测试配置有效性 修改完成后保存更改并重新加载 Nginx 配置文件以使新设定生效。在此之前建议先验证语法正确性以免造成意外停机情况发生: ```bash sudo nginx -t sudo systemctl reload nginx ``` 如果一切正常的话,现在应该已经成功设置了基于 Nginx 的动静态内容分隔机制! --- ### 注意事项 为了确保最佳效果,在实际操作过程中还需要注意以下几点: - **安全性**: 对公开可下载的大容量媒体资料实施适当权限管理; - **性能调优**: 根据实际情况调整缓冲区大小及其他参数选项; - **日志记录**: 开启详细的错误日记以便于排查潜在问题所在位置。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值