Nginx 初探
engine x. 高性能http和反向代理服务器。也是一个IMAP,POP3,SMTP代理服务器。
编译安装:
解压: tar -zxvf nginx-1.6.2.tar.gz
cd nginx-1.6.2/
./configure --prefix=/usr/local/nginx
./configure: error: C compiler cc is not found
# yum install gcc gcc-c++ ncurses-devel perl
./configure: error: the HTTP rewrite module requires the PCRE library.
#yum install -y pcre pcre-devel
./configure: error: the HTTP gzip module requires the zlib library.
# yum install -y zlib-devel
make && make install
启动 ./sbin/nginx
启动过程中,如果报错:
nginx:[emerg] bind() to 0.0.0.0:80 failer (98: Address alreay in use)
表示80端口已被占用,把占用的80端口的服务或者软件关闭即可
查看端口及运行程序:
netstat -antp(表示程序)
杀掉进程:kill -9 pid ;如果还杀不掉 就pkill -9 pid
信号控制&进程管理
TERM | INT 快速关闭(不要轻易用)
kill -INT pid
QUIT 优雅的关闭,请求结束后在关闭
kill -QUIT pid 等价于 ./sbin/nginx -s stop
HUP 开启新的子进程,然后配置文件改变,读新的配置文件,然后优雅关闭旧的子进程,所以Nginx 改完配置不必重启主进程就能使得新改的配置文件生效
kill -HUP pid 等价于 ./sbin/nginx -s reload
USER1: 备份日志文件使用的较多,比如备份以前的日志文件,然后重新建立新的文件,需要使得这个新的文件生效
kill -USER1 pid('cat /logs/nginx.pid') 等价于 ./sbin/nginx -s reopen
./sbin/nginx -t 检测日志文件是否有问题
NGINX 配置:
//全局区域:
worker process 1: 只有一个工作进程。一般设置cpu数*核数 4*8=32
events {
//一般配置nginx的连接的特性,如一个worker可以产生多少连接
worker_connections 1024;//一个子进程最大允许1024个连接
}
/**配置http服务器的区域*/
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
//基于域名
server1{//虚拟主机区域
listen:80
server_name nicky.com
Location{
定位。把特殊的路径和文件再次定位,如image目录单独处理
php 单独处理等
root /html/ //可以是相对和绝对路径
index index.html
}
}
//基于端口
server1{
listen 1988;
server_name nicky.com;
location{
root /html/nicky //可以是相对和绝对路径
index nicky.html
}
}//基于ip
server1{
listen 80;
server_name 192.168.1.133
location{
root /html/ip //可以是相对和绝对路径
index nicky.html
}
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index nicky.html index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
日志管理:
Nginx允许针对不同的server 做不同的log
1 日志格式 指那些记录选项
默认的日志格式:main
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
即 :
用户访问ip-远程用户[访问时间] 请求方法 请求body 长度 refer 来源信息
$http_referer:上一个页面自来哪里
http-yser-agent:用户代理 蜘蛛被转发的请求的原始ip
http_x_forwarded_for: 在经过代理时,代理把你的本来的ip加在刺头的信息中传输你原始的IP
#access_log logs/access.log main;
该主机 access_log 文件位于logs/access.log 使用的格式是 main 格式
除了main格式 你可以自定义其他格式
相关推荐
【Nginx 作为动静分离、缓存与负载均衡初探1】 在现代Web服务架构中,Nginx因其高效、稳定以及丰富的功能而被广泛用作反向代理服务器、负载均衡器和静态内容服务器。本篇文章将探讨如何利用Nginx实现动静分离、缓存...
Nginx的模块化设计是其一大特点,它允许开发者通过编写特定的模块来扩展Nginx的功能。 在Nginx中,模块是一种特殊的代码结构,可以通过预编译的方式集成到Nginx服务器中。与Apache不同的是,Nginx的模块不能动态...
##### Nginx平台初探 - **初探nginx架构**: - **模块化设计**:Nginx采用了高度模块化的架构,允许用户通过加载不同的模块来扩展其功能。 - **事件驱动模型**:Nginx的核心是基于事件驱动模型构建的,能够高效...
**15.8 Nginx代码分析之(一)——初探** 初步探索Nginx的源代码结构和组织方式。 **15.9 Nginx代码分析之(二)——EmptyGif是如何工作的** 深入分析Nginx中用于生成透明GIF图片的代码实现。 **15.10 Nginx连接...
- **初探Nginx架构**:Nginx采用了一个异步事件驱动的架构模型,该模型使得Nginx能够高效地处理大量的并发连接。 - **Nginx基础概念**: - **Master-Worker模式**:一个主进程负责监听客户端连接请求,并创建多个...
Nginx中基数树的实现是一种二叉查找树,具备二叉查找树的所有优点,同时避免了红黑树增删数据是需要通过自身旋转来维持平衡,因此他具有更快的插入、删除速度和更高的内存空间利用率。基数树的key兼顾唯一标识和树...
#### 三、Nginx平台初探 1. **架构概览**: - Nginx的核心架构基于一个主进程和多个工作进程。 - 主进程负责读取和评估配置文件,启动工作进程;而工作进程则负责处理客户端请求。 - 这种架构设计使得Nginx在...
初探 首先我在 nginx 的根目录下新建了一个 index.html 文件以及 index.js 文件。此时 nginx 的配置文件是长这个样子的: server { listen 8080; server_name localhost; location / { root /Volumes/m
### 大型、高负载网站架构和应用初探 #### 引言 随着互联网技术的飞速发展,大型、高负载网站的需求日益增加。这些网站不仅要处理海量数据,还需要为成千上万甚至数百万用户提供稳定、高效的服务。在本文中,我们将...
【CMS模块化开发与大型、高负载网站架构和应用初探】 在当今互联网时代,大型、高负载的网站已经成为企业及组织在线业务的核心。CMS(Content Management System,内容管理系统)的模块化开发是构建此类网站的关键...
为了应对高并发访问,接口服务网关一般采用Nginx负载均衡集群的设计。这样的设计能够在高流量情况下合理分配资源,确保系统的稳定性和高可用性。 在数据库设计方面,为满足业务负载的要求,系统采用主从模式以应对...