求这张图钢铁侠壁纸超清原图图,做电脑壁纸用的谢谢

Nginx 安装和配置
Nginx 说明
Nginx 是一个很强大的高性能 Web 和反向代理服务器,常被我们用作负载均衡服务器,也可以作为邮件代理服务器
Nginx WIKI:
Nginx 百科:
Nginx 官网:
Nginx 官网下载:
源码包方式下载:,注意该页面的:Stable version,这个表示稳定版本, 最新版本是:nginx-1.8.1,这是一个
tar.gz 的文件链接。
构建包方式下载:
Nginx 文档:
Nginx 模块地址:
来自网络上的一个好介绍
传统上基于进程或线程模型架构的 Web 服务通过每进程或每线程处理并发连接请求,这势必会在网络和 I/O 操作时产生阻塞,其另一个必然结果则是对内存或 CPU 的利用率低下。生成一个新的进程/线程需要事先备好其运行时环境,这包括为其分配堆内存和栈内存,以及为其创建新的执行上下文等。这些操作都需要占用 CPU,而且过多的进程/线程还会带来线程抖动或频繁的上下文切换,系统性能也会由此进一步下降。
在设计的最初阶段,Nginx 的主要着眼点就是其高性能以及对物理计算资源的高密度利用,因此其采用了不同的架构模型。受启发于多种操作系统设计中基于“事件”的高级处理机制,nginx采用了模块化、事件驱动、异步、单线程及非阻塞的架构,并大量采用了多路复用及事件通知机制。在 Nginx 中,连接请求由为数不多的几个仅包含一个线程的进程 Worker 以高效的回环(run-loop)机制进行处理,而每个 Worker 可以并行处理数千个的并发连接及请求。
如果负载以 CPU 密集型应用为主,如 SSL 或压缩应用,则 Worker 数应与 CPU 数相同;如果负载以 IO 密集型为主,如响应大量内容给客户端,则 Worker 数应该为 CPU 个数的 1.5 或 2 倍。
Nginx会按需同时运行多个进程:一个主进程(Master)和几个工作进程(Worker),配置了缓存时还会有缓存加载器进程(Cache Loader)和缓存管理器进程(Cache Manager)等。所有进程均是仅含有一个线程,并主要通过“共享内存”的机制实现进程间通信。主进程以root用户身份运行,而 Worker、Cache Loader 和 Cache manager 均应以非特权用户身份运行。
主进程主要完成如下工作:
1.读取并验正配置信息;
2.创建、绑定及关闭套接字;
3.启动、终止及维护worker进程的个数;
4.无须中止服务而重新配置工作特性;
5.控制非中断式程序升级,启用新的二进制程序并在需要时回滚至老版本;
6.重新打开日志文件,实现日志滚动;
7.编译嵌入式perl脚本;
Worker 进程主要完成的任务包括:
1.接收、传入并处理来自客户端的连接;
2.提供反向代理及过滤功能;
3.nginx任何能完成的其它任务;
Cache Loader 进程主要完成的任务包括:
1.检查缓存存储中的缓存对象;
2.使用缓存元数据建立内存数据库;
Cache Manager 进程的主要任务:
1.缓存的失效及过期检验;
Nginx 源码编译安装
官网下载最新稳定版本 1.8.1,大小:814K
官网安装说明:
源码编译配置参数说明:
开始安装:
安装依赖包:yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
预设几个文件夹,方便等下安装的时候有些文件可以进行存放:
mkdir -p /usr/local/nginx /var/log/nginx /var/temp/nginx
下载源码包:`wget http://nginx.org/download/nginx-1.8.1.tar.gz
解压:tar zxvf nginx-1.8.1.tar.gz
进入解压后目录:cd nginx-1.8.1/
编译配置:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/local/nginx/nginx.pid \
--lock-path=/var/lock/nginx/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
编译:make
安装:make install
启动 Nginx
先检查是否在 /usr/local 目录下生成了 Nginx 等相关文件:cd /usr/local/ll,正常的效果应该是显示这样的:
drwxr-xr-x. 2 root root 4096 3月
22 16:21 conf
drwxr-xr-x. 2 root root 4096 3月
22 16:21 html
drwxr-xr-x. 2 root root 4096 3月
22 16:21 sbin
假设有生成对应的文件,那我们就删掉刚刚安装的解压包:rm -rf /opt/setups/nginx-1.8.1
停止防火墙:service iptables stop
或是把 80 端口加入到的排除列表:
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo service iptables save
sudo service iptables restart
启动:/usr/local/nginx/sbin/nginx,启动完成 shell 是不会有输出的
检查 时候有 Nginx 进程:ps aux | grep nginx,正常是显示 3 个结果出来
检查 Nginx 是否启动并监听了 80 端口:netstat -ntulp | grep 80
访问:192.168.1.114,如果能看到:Welcome to nginx!,即可表示安装成功
检查 Nginx 启用的配置文件是哪个:/usr/local/nginx/sbin/nginx -t
刷新 Nginx 配置后重启:/usr/local/nginx/sbin/nginx -s reload
停止 Nginx:/usr/local/nginx/sbin/nginx -s stop
Nginx 配置
Nginx 在 1.8.1 版本下的默认配置(去掉注释)
worker_processes
worker_connections
default_type
application/octet-
keepalive_timeout
location / {
index.html index.
error_page
500 502 503 504
location = /50x.html {
HTTP 服务,虚拟主机
停止防火墙:service iptables stop,防止出现特别干扰
编辑默认的配置文件:vim /usr/local/nginx/conf/nginx.conf
设置两个虚拟主机(通过端口来区分开)
worker_processes
worker_connections
default_type
application/octet-
keepalive_timeout
# 一个 server 代表一个虚拟主机
location / {
# 虚拟机根目录是 /usr/local/nginx/html 目录
# 虚拟机首页是 /usr/local/nginx/html 目录下这两个文件
index.html index.
error_page
500 502 503 504
location = /50x.html {
# 第二个虚拟机的端口是 90,服务地址还是本地
location / {
index.html index.
error_page
500 502 503 504
location = /50x.html {
设置两个虚拟主机(通过域名来区分开)
worker_processes
worker_connections
default_type
application/octet-
keepalive_timeout
# 一个 server 代表一个虚拟主机
# 两个虚拟主机都使用 80 端口,设置不同域名
location / {
# 虚拟机根目录是 /usr/local/nginx/html 目录
# 虚拟机首页是 /usr/local/nginx/html 目录下这两个文件
index.html index.
error_page
500 502 503 504
location = /50x.html {
# 两个虚拟主机都使用 80 端口,设置不同域名
location / {
index.html index.
error_page
500 502 503 504
location = /50x.html {
反向代理和负载均衡
最精简的环境:一台虚拟机
1 个 Nginx
2 个 Tomcat
Nginx 配置:
worker_processes
worker_connections
default_type
application/octet-
keepalive_timeout
# 自己定义的两个 tomcat 请求地址和端口
# 也就是当浏览器请求: 的时候从下面这两个 tomcat 中去找一个进行转发
upstream tomcatCluster {
server 192.168.1.114:8080;
server 192.168.1.114:8081;
# 添加 weight 字段可以表示权重,值越高权重越大,默认值是 1,最大值官网没说,一般如果设置也就设置 3,5,7 这样的数
# 官网:/resources/admin-guide/load-balancer/#weight
# server 192.168.1.114:8080 weight=2;
# server 192.168.1.114:8081 weight=1;
location / {
proxy_pass
http://tomcatC
index.html index.
HTTP 服务,绑定多个域名
安装第三方模块
生成规格图
启用 Gzip 压缩
Nginx 禁止特定用户代理(User Agents)访问,静止指定 IP 访问
Nginx 缓存
Nginx 自动分割日志文件
Nginx 处理跨域请求
安全相预防
在配置文件中设置自定义缓存以限制缓冲区溢出攻击的可能性
client_body_buffer_size 1K;
client_header_buffer_size 1k;
client_max_body_size 1k;
large_client_header_buffers 2 1k;
将timeout设低来防止DOS攻击
所有这些声明都可以放到主配置文件中。
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 5 5;
send_timeout 10;
限制用户连接数来预防DOS攻击
limit_zone slimits $binary_remote_addr 5m;
limit_conn slimits 5;linux(22)
Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0)。
1 Nginx简介
Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。日,nginx 1.0.4发布。
2 Nginx下载
3)本次安装所有的软件资源包地址
到Linux公社资源站下载:
——————————————分割线——————————————
免费下载地址在
用户名与密码都是
具体下载目录在 /2016年资料/8月/10日/Linux中Nginx安装与配置详解/
下载方法见
——————————————分割线——————————————
3 Nginx安装
3.1 安装前的准备
1)准备 pcre-8.12.tar.gz。该文件为正则表达式库。让nginx支持rewrite需要安装这个库。
2) 准备 nginx-1.5.0.tar.gz。该文件为nginx的linux版本安装文件。
3)确保进行了安装了linux常用必备支持库。
Linux中必备常用支持库的安装(CentOS-6.5)
在CentOS安装软件的时候,可能缺少一部分支持库,而报错。这里首先安装系统常用的支持库。那么在安装的时候就会减少很多的错误的出现。
yum install -y gcc gdb strace gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs patch e2fsprogs-devel krb5-devel libidn libidn-devel openldap-devel nss_ldap openldap-clients openldap-servers libevent-devel libevent uuid-devel uuid mysql-devel
3.2 正则表达式库安装
1)确保进行了安装了linux常用必备支持库。检查是否安装了g++、gcc。rpm -qa | grep gcc 之后需要出现3个包如下图所示。如果没有出现。需要安装g++、gcc。
# yum install gcc-c++
Linux中Nginx安装与配置详解
2) 上传pcre-8.12.tar.gz, nginx-1.5.0.tar.gz 到 /usr/local/src/nginx目录下。
3)解压pcre-8.12.tar.gz
# cd /usr/local/src/nginx
# tar zxvf pcre-8.12.tar.gz
4)进入解压后的目录
# cd pcre-8.12
./configure
make install
3.3 Nginx安装
0) 创建用户nginx使用的www用户。
# groupadd
#添加www组
# useradd -g
www www -s /bin/false
#创建nginx运行账户www并加入到www组,不允许www用户直接登录系统
创建安装目录与日志目录
a) 安装目录
# mkdir /usr/local/nginx
b) 日志目录
# mkdir /data0/logs/nginx
# chown www:www /data0/logs/nginx -R
1) 判断系统是否安装了zlib-devel。如果没有安装。使用
# yum install -y zlib-devel
Linux中Nginx安装与配置详解
# cd /usr/local/src/nginx
# tar zxvf nginx-1.5.0.tar.gz
3) 进入目录
# cd nginx-1.5.0
4) 配置。通常将软件安装在/usr/local/目录下。
# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
通常执行此步时,会提示错误,如下
checking for OpenSSL library in /usr/local/ ... not found
checking for OpenSSL library in /usr/pkg/ ... not found
checking for OpenSSL library in /opt/local/ ... not found
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=&path& option.
可以看出,系统没有安装openssl模块,可以执行以下命令安装openssl模块,
yum install openssl openssl-devel
make install
检查是否安装成功
/usr/local/nginx/sbin
# ./nginx -t
结果显示:
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
3.4 配置防火墙80端口
#修改防火墙配置:
# vi + /etc/sysconfig/iptables
#添加配置项
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
#重启防火墙
# service iptables restart
3.5 上传配置文件
1)上传nginx.conf (文件下载地址见上面的Linux公社资源站)
# cd /usr/local/nginx/conf
# rz nginx.conf
2) 上传fastcgi_params.phis
# rz fastcgi_params.phis
3.6 启动停止重启与测试
# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
# cd /usr/local/nginx/sbin
#查询nginx主进程号
ps -ef | grep nginx
kill -QUIT 主进程号
kill -TERM 主进程号
pkill -9 nginx
3) 重启(首次启动需:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf)
/usr/local/nginx/sbin/nginx -s reload
netstat -na | grep 80
#浏览器中测试
http://ip:80
3.7 配置Nginx支持php
1)方式一:手动修改
vi /usr/local/nginx/conf/nginx.conf
#编辑配置文件
#首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php5/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
index.html index.
#添加index.php
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ .php{&&&&&&&&#root&&&&&&&&&&#此处和server下面root保持一致,默认为html&&&&&&&&fastcgi_pass&&127.0.0.1:9000;&&&&&&&&fastcgi_index&&index.&&&&&&&&#fastcgi_param&SCRIPT_FILENAME&&/usr/local/nginx/html/fastcgi_script_
fastcgi_param SCRIPT_FILENAME documentrootfastcgi_script_
注意:取消FastCGI server部分location的注释,并要注意fastcgi_param行的参数,改为/data/webroot/(此为网站根目录绝对路径)$fastcgi_script_name
/etc/init.d/nginx restart
#重启nginx
2)方式二:上传配置文件
如3.5节操作方式,或手动填写配置文件
/usr/local/php5/sbin/php-fpm
定义Nginx运行的用户和用户组
nginx进程数,建议设置为等于CPU总核心数。
worker_processes 8;
error_log ar/loginx/error.
pid ar/runinx.
一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
工作模式与连接数上限
#参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
#单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections 65535;
设定http服务器
include mime. #文件扩展名与文件类型映射表
default_type application/octet- #默认文件类型
#charset utf-8; #默认编码
server_names_hash_bucket_size 128; #服务器名字的hash表大小
client_header_buffer_size 32k; #上传文件大小限制
large_client_header_buffers 4 64k; #设定请求缓
client_max_body_size 8m; #设定请求缓
#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
#开启目录列表访问,合适下载服务器,默认关闭。
tcp_ #防止网络阻塞
tcp_ #防止网络阻塞
keepalive_timeout 120; #长连接超时时间,单位是秒
#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#gzip模块设置
#开启gzip压缩输出
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 16k; #压缩缓冲区
gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 2; #压缩等级
gzip_types text/plain application/x-javascript text/css application/
#压缩类型,默认就已经包含textml,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
#limit_zone crawler $binary_remote_addr 10m; #开启限制IP连接数的时候需要使用
#upstream的负载均衡,weight是权重,可以根据机器配置定义权重。weigth参数表示权值,权值越高被分配到的几率越大。
server 192.168.80.121:80 weight=3;
server 192.168.80.122:80 weight=2;
server 192.168.80.123:80 weight=3;
#虚拟主机的配置(一)
listen 80;
#域名可以有多个,用空格隔开
index index.html index.htm index.
root /data/www/
location ~ .*.(php|php5)?$
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.
include fastcgi.
#图片缓存时间设置
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
expires 10d;
#JS和CSS缓存时间设置
location ~ .*.(js|css)?$
expires 1h;
#日志格式设定
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#定义本虚拟主机的访问日志
access_log ar/loginx/linuxidcaccess.
#对 "/" 启用反向代理
location / {
proxy_pass http://127.0.0.1:88;
proxy_set_header X-Real-IP $remote_
#后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
#以下是一些反向代理的配置,可选。
proxy_set_header Host $
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;
#设定缓存文件夹大小,大于这个值,将从upstream服务器传
#设定查看Nginx状态的地址
location /NginxStatus {
auth_basic "NginxStatus";
auth_basic_user_
#htpasswd文件的内容可以用apache提供的htpasswd工具来产生。
#本地动静分离反向代理配置
#所有jsp的页面均交由tomcat或resin处理
location ~ .(jsp|jspx|do)?$ {
proxy_set_header Host $
proxy_set_header X-Real-IP $remote_
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
proxy_pass http://127.0.0.1:8080;
#所有静态文件由nginx直接读取不经过tomcat或resin
location ~ .*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
expires 15d;
location ~ .*.(js|css)?$
expires 1h;
#虚拟主机的配置(二)
listen 8080 ;
server_name 127.0.0.1 172.1218.80;
allow 127.0.0.1;
allow 172.;
location /server_status {
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:10672次
排名:千里之外
原创:35篇
转载:12篇
(1)(21)(11)(3)(7)(5)用户名:Leon_zhang50773
文章数:24
访问量:7146
注册日期:
阅读量:1297
阅读量:3317
阅读量:431882
阅读量:1119891
51CTO推荐博文
版本更新历史:v1.2更新内容:&&&&&添加了proxy_connect正向代理模块的说明&&&&添加了stream配置tcp代理&&&&更新了gzip的配置&&&&修复了大部分安装配置错误&&&&改善了lua安装过程v1.1更新内容:&&&&&集成ngx_lua和nginx_upstream_check两个模块,这两个模块是目前最常用的第三方模块1.1软件信息软件:nginx版本:1.9.0+用户:nginx1.2安装目录 /home/nginx/nginx&&&&&& &&&&&&& &&&&&&& &&& 安装主目录 /home/nginx/nginx/conf/nginx.conf&& &&&&&&& 主配置文件 /home/nginx/nginx/conf/conf.d/vhost &&& &&& 虚拟主机配置文件目录/home/nginx/nginx/conf/conf.d/upstream& &&& upstream配置文件目录/home/nginx/nginx/conf/conf.d/ssl&&&&&& &&& ssl证书文件目录/home/nginx/nginx/conf/conf.d/gzip&&&&&&&&& gzip配置文件目录 /home/nginx/nginx/logs&&&&&&&&& &&& &&& 日志文件目录,pid文件也存放在这里 /home/nginx/nginx/temp&&&&&&&&& &&& &&& 临时文件路径,如静态缓存、代理缓存文件 /home/nginx/nginx/sbin&&&&&&&&& &&& &&& nginx命令目录1.3安装过程1.安装必备软件yum install gcc gcc-c++ make glibc-devel glibc &openssl openssl-devel -y2.编译pcre,版本不建议低于8.3.5unzip pcre-8.3.5.zip -d /home/nginx/soft/cd /home/nginx/soft/pcre-8.3.5./configure --enable-utf8 && make3.ngx_upstream_check_module-master安装:用来做后端服务器健康检查的第三方模块,安装nginx_upstream_check_module-master 模块需要的准备工作为:wget & &unzip master -d/home/nginx/softcd &/home/nginx/soft/nginx-1.9.0patch -p1 & /home/nginx/soft/nginx_upstream_check_module-master/check.patch4.ngx_lua:是用来通过lua扩展nginx功能的,安装nginx_lua需要的准备工作为:wget &&tar -zxvfLuaJIT-2.0.4.tar.gz -C /home/nginx/soft/ mkdir &~/luajitcd /home/nginx/soft/LuaJIT/make && make install PREFIX=/home/nginx/luajitexport &LUAJIT_LIB=/home/nginx/luajit/lib && ~/.bash_profileexport &LUAJIT_INC=/home/nginx/luajit/include/luajit-2.0&& ~/.bash_profileexport &LD_LIBRARY_PATH=$LUAJIT_LIB:$LD_LIBRARY_PATH&& ~/.bash_profileexport &PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/luajit/bin:$HOME/nginx/sbinsource &~/.bash_profile#下载ngx_devel_kit和ngx_lua_modulegitclone /openresty/lua-nginx-module.gitgitclone 5.ngx_http_proxy_connect_module:是gitlab开源的第三方模块,用于配置nginx正向代理,支持https的connect属性。安装ngx_http_proxy_connect_module需要的准备工作为:cd &/home/nginx/soft/nginx-1.9.0patch -p1 & /home/nginx/soft/ngx_http_proxy_connect_module/proxy_connect.patch#注意,打补丁操作是在nginx安装源文件根目录执行的6.编译安装nginxsu - nginxtar & -zxvf & nginx-1.9.0.tar.gz & CC /home/nginx/soft/cd &/home/nginx/soft/nginx-1.9.0mkdir &Cp &/home/nginx/nginx/{conf,temp/{client,proxy_temp,proxy_cache},logs,sbin}sed & -i & 's/Server:\ nginx/Server:\ Company_name/' & & src/http/ngx_http_header_filter_module.c./configure &&&&&& \\开始编译安装,以下为配置说明&&&&&&&&&&&&&&&&&& --prefix=/home/nginx/nginx&&& \\指定软件安装目录&&&&&&&&&&&&&&&&&& --conf-path=/home/nginx/nginx/conf/nginx.conf& & \\指定主配置文件路径&&&&&&&&&&&&&&&&&& --sbin-path=/home/nginx/nginx/sbin&&&&&&&&&&&&&&& \\指定nginx命令路径&&&&&&&&&&&&&&&&&& --error-log-path=/home/nginx/nginx/logs/error.log \\指定错误日志路径&&&&&&&&&&&&&&&&&& --http-log-path=/home/nginx/nginx/logs/access.log&&&&&&& \\指定访问日志路径&&&&&&&&&&&&&&&&&& --with-http_ssl_module&&&&&&&&&&&&&& \\添加ssl认证模块&&&&&&&&&&&&&&&&&& --with-http_gunzip_module&&&&& \\添加gunzip模块&&&&&&&&&&&&&&&&&& --add-module=/home/nginx/soft/nginx_upstream_check_module-master \\添加第三方模块,用以check后端应用状态&&&&&&&&&&&&&&&&&& --with-pcre=/home/nginx/soft/pcre-8.3.5&&&&&&&& \\指定pcre目录,pcre用于正则匹配&&&&&&&&&&&&&&&&&& --add-module=/home/nginx/soft/lua-nginx-module&&&&&&&& \\添加lua模块&&&&&&&&&&&&&&&&&& --add-module=/home/nginx/soft/ngx_devel_kit&&&&&&& \\lua模块需要使用devel_kit模块&&&&&&&&&&&&&&&&&& --with-stream&&& \\添加四层代理模块&&&&&&&& &&&&&&&& --without-http_fastcgi_module &\\删除fastcgi模块,有使用此模块勿选&&&&&&&&&&&&&&&&&& --without-http_uwscgi_module&&&&&&&& \\删除uwscgi模块,有使用此模块勿选&&&&&&&&&&&&&&&&&& --without-http_scgi_module&&&& \\删除scgi模块,有使用此模块勿选&&&&&&&&&&&&&&&&&& --add-module=/home/nginx/soft/ngx_http_proxy_connect_module&& \\添加第三方正向代理模块make -j2 && make install&2配置2.1主配置文件user &&& #使用nginx用户启动进程work_processes &2;&& #这里一般为cpu核数pid logs/nginx. & #pid文件存储路径events{&&& worker_connections & 102400;& #最大连接数,根据服务器实际情况配置&&& use&&& #linux多路复用IO}http{&&& include& mime.&& #默认配置,这里表示引用context-type的配置文件。如果需要添加新的类型,手动在此文件中添加即可。&&& default_type& application/octet-&& #默认context-type类型定义。&&& charset& utf-8;&&&&&&& #默认编码&&& keepalive_timeout 65;&&&&&& #会话超时时间&&&&& #开启调用linux的sendfile功能,提高文件传输效率&&& server_ #关闭nginx的版本显示&#以下标记蓝色配置信息,请根据应用详情配置,过大会影响服务器性能,过小会导致应用异常。&&& client_header_buffer_size&& 2k;& #读取客户端请求头部信息的缓冲区大小,&&& large_client_header_buffers 416k;&&& #读取客户端请求头部信息的缓冲区的最大数量和大小&&& client_max_body_size 8m;&&& #设置客户端请求体最大值&&& proxy_cache cache_& #在内存中开启缓冲区,名称为cache_one,只有配置这个proxy_cache_path才可使用&&& proxy_read_timeout 300; #后端服务器读取超时&&& proxy_send_timeout 300; #后端服务器发送超时&&& proxy_buffer_size 16k;& #后端response返回缓冲区大小&&& proxy_buffers 4 16k;&&&&&&& #后端response返回缓冲区的最大数量和大小&&& proxy_busy_buffers_size 32k; #一般为proxy_buffers的两倍,限制最大缓存区大小,如果大于此值,将会依靠proxy_temp_path的路径对response信息进行存储&&& proxy_temp_file_write_size 32k;& #大于32k的response信息,将会被存储到临时文件当中&&& proxy_temp_path temp/proxy_ #proxy的临时文件路径&&&&proxy_ignore_client_#这个参数默认是关闭状态的,此时如果客户端主动关闭请求或者客户端网络断掉,那么nginx会记录499,同时request_time是[后端已经处理时间]。而upstream_response_time为’_’。使用该参数后,那么客户端主动断掉连接之后,Nginx 会等待后端处理完(或者超时),然后 记录 「后端的返回信息」 到日志。所以,如果后端 返回 200, 就记录 200 ;如果后端放回 5XX ,那么就记录 5XX 。如果超时(默认60s,可以用&proxy_read_timeout&设置),Nginx 会主动断开连接,记录504。&&&& proxy_next_upstream http_500http_502 http_504 error ti&&&& #定义后端在抛出500、502、504错误时,跳转到另一个可用服务器&&& proxy_cache_path temp/proxy_cache levels=1:2 keys_zone=cache_one:100m inactive=2d max_size=1g; #定义后端缓存文件的存放路路径以及缓存策略,请根据实际需要进行配置。&&&& log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status$body_bytes_sent $http_referer ''"$http_user_agent" "$http_x_forward_for" ''$upstream_status $upstream_addr "$upstream_cache_status" ''$request_time &$upstream_response_time'; #定义日志存储内容include conf.d/vhost/*.&&&&#指定引用匹配条件的虚拟主机文件include conf.d/upstream/*.&&&&#指定引用匹配条件的upstream配置文件#以上两条用于管理大批量应用时,对虚拟主机和upstream进行批量管理,如果应用不多,只使用Nginx.conf就可以}2.2upstream配置由于不同的服务可能会对upstream重复使用,因此把upstream配置单独拉出来进行配置,以防止混淆。配置示例:upstream project_appname {& #upstream的配置名称需要以项目名称开头,后跟应用名&&& ip_ #代理访问策略,这里为ip_hash绑定的方式,根据应用情况自行考虑配置&&& server ip_address:app_ #此处配置为应用地址以及端口配置&&& check interval=3000 rise=2 fall=5 timeout=1000 type=&&&&& #注意,由于使用了upstream check模块,因此check行必须进行配置,用以检测后端应用的健康状态。可以根据应用的实际需求调整参数,比如type,可以为tcp、http等方式}2.3Server域虚拟主机配置虚拟主机配置一般存放在nginx目录下的conf/conf.d/vhost目录下面,如果不存在,自行创建。以下是vhost的配置示例:#http协议配置示例:server{&&&& #侦听端口,为nginx对外提供服务的端口&&& server_name dns/ #以实际情况为准,可以为nginx服务器的ip,也可以为定义好的域名#以下红色标记内容设置了一些时间的变量,第一个限制请求类型,第二个日志进行轮转。注意,if判断只能在location和server中定义&&& if ($request_method !~ ^(GET|POST|HEAD)) {&&&&&&&& return 444;&&& } if ($time_iso8601 ~ "^(\d{4})-(\d{2})-(\d{2})") {&&&&&&&& set $year $1;&&&&&&&& set $month $2;&&&&&&&& set $day $3;}&&&&&#gzip配置&&&& include conf.d/gzip/project-gzip.&&& #gzip的配置文件路径,此处可根据情况配置,如果有压缩需求,就在server层配置&&&& location / {&&&&&&&&&&&&&&&& #静态文件目录&&&&&&&& index index.& #索引文件,这两项配置根据项目进行配置,如果不需要,可以去除&&&&&&&& proxy_pass&;&&& #此处为代理后端地址配置,引用upstream的配置名称&&&&&&&& proxy_set_header X-Forwarded-For $remote_ #透传客户端的真实IP,加入到请求的header当中,后端如果需要获取,须引用request的header信息中的X-Forwarded-For参数得到真实IP&&&&&&&& access_log /home/nginx/nginx/logs/project-appname-access-$year-$month-$day.&&&& #日志根据之前的time_iso8601参数分隔出来的三个变量,进行定义,用以实现日志轮转功能。}#注意,error_page如果后端应用有配置,此处可以不必配置,如果没有,必须配置。error_page&&& 404 502 503 504 500 /50x.&&& &&&& location = /50x.html {&&&&&&&&&&&&&&&& access_log /home/nginx/logs/error-$year-$month-$day.}&&& #以上为错误请求返回码返回页面配置,如果代理后端定义有,此得可以考虑是否需要配置}&#https协议配置示例:server{&&&&& #nginx服务侦听端口,ssl协议需要在此处标记。如果在编译时加上了--with-http_spdy_module参数,可以在ssl后加上spdy参数,如:ssl spdy&&& server_name dns/&&&&&&&& #由于ssl绑定了域名,此处建议配置为域名&&& ssl_certificate conf.d/ssl/project_appname.&&&& #证书存放路径&&& ssl_certificate conf.d/ssl/project_appname.&&&& #密钥存放路径&&& ssl_session_cache shared:SSL:10m;&&&& #设置ssl缓存的类型和大小,此处表示nginx共享ssl会话缓存,10m表示存储ssl缓存的空间大小&&& ssl_session_timeout 5m; #ssl会话超时时间&&& ssl_ciphers HIGH:!aNULL:!MD5;&&& #内容一致性校验算法,根据安全性级别自行定义,建议使用sha2以上的算法,此处禁用了md5算法。关于服务器支持的算法类型,可以使用openssl指令来查询&&& ssl_prefer_server_&&& #此处表示,协商加密算法时,优先使用服务器端定义的加密算法,而非客户端浏览器的加密算法& &&ssl_protocols TLSv1 TLSv1.1 TLSv1.2;& #由于默认配置包含ssl3,如果要求安全级别高,可以在此处强定义ssl协议支持的版本。&&& location / {&&& proxy_pass ;&&& proxy_set_header X-Forwarded-For $remote_&&& access_log /home/nginx/nginx/logs/app_name-access-$year-$month-$year-$day.}&&& #此处配置类同于http协议的配置,不再说明}2.4gzip配置gzip用来对静态内容进行压缩,主要用来提高用户访问速度。此文件进行单独配置,视项目情况进行配置。配置示例:& #启用gzip压缩gzip_min_length&&& 2k;& #gzip压缩的最小文件,小于此大小的不进行压缩gzip_buffers& 4&&& 16k; #设置缓冲区大小和数量gzip_comp_level&&& 2;&& #压缩级别,1-9,值越小压缩程度越高,但压缩越小越耗cpugzip_types&& text/js image/jepg image/png text/plain text/css text/ #根据实际情况,如果有新的需要压缩的类型,在此处添加即可gzip_ #根据客户端的http头来判断是否需要压缩,不支持的不压缩gzip_proxied& expired no-cache no- #expired - 启用压缩,如果header头中包含 "Expires" 头信息#no-cache - 启用压缩,如果header头中包含"Cache-Control:no-cache" 头信息#no-store - 启用压缩,如果header头中包含"Cache-Control:no-store" 头信息#private - 启用压缩,如果header头中包含"Cache-Control:private" 头信息#no_last_modified - 启用压缩,如果header头中不包含 "Last-Modified" 头信息#no_etag - 启用压缩 ,如果header头中不包含 "ETag" 头信息#auth - 启用压缩 , 如果header头中包含 "Authorization" 头信息#any - 无条件启用压缩2.5 stream配置#注意,stream作用域和http作用域是在同一个级别,不能配置在http作用域内stream{&&&& upstream appname { #定义upstream,用于代理多台tcp服务&&&&&&&& hash &$remote_addr &&&&&&&&& server ip1:port&&& weight=1 max_fails=2&&& fail_timeout=30s;&&&&&&&& server ip2:port&&& weight=1 max_fails=2&&& fail_timeout=30s;&&&& }&&&& server {&&&&&&&& listen port_&&&&&&&& proxy_connect_timeout 10s;&&&&&&&& proxy_pass&&&&&&& }}2.6ngx_proxy_connect模块配置#ngx_proxy_connect_module只涉及server域的配置,因此http域的不再重复说明,此模块用来做nginx正向代理,用以部分内网向互联网的访问请求。注意,使用代理后连接https协议,使用的是connect方法,如果目标服务器不支持,会抛出403错误。&server&& {&&&& &&&& listenprot_&&&& #正向代理端口&&&& &&&& resolver 114.114.114.114;&& #正向代理DNS解析服务器&&&& &&&& access_log&&& logs/proxy.&&&&&&& #日志路径&&&& &&&& proxy_&&&& #开启connect功能&&&& &&&& proxy_connect_allow 443 563; #许可https和nntps协议通过&&&& &&&& proxy_connect_connect_timeout&&& 20s; #连接超时时间&&&& &&&& proxy_connect_read_timeout&&&& 20s;&& #代理读超时时间&&&& &&&& proxy_connect_send_timeout&&&& 20s;&& #代理发送超时时间&&&& &&&& location/ {&&&&&&&&&&&&& if ($cookie_pro ~ "") {&&&& &&&& &&&& proxy_pass &;&& #这里使用了cookie来标识来自非80/443/563端口的请求,需要传入passport=port_number的cookie内容后,才能将请求转至目标服务器。&&&&&&&&&&&&& }&&&&&&&&&&&&& if ($cookie_pro ~ "https") {&&&&&&&&&&&&& proxy_pass &$cookie_pro://$host:$cookie_passport$request_&&&&&&&&&&&&& }&&& #当接收到来自非443端口的https请求时,需要在cookie中配置https协议才可以转到connect属性去连接目标服务器&&&&&&&& &&&& proxy_set_header &Host &$&&&& &&&& }}非443端口使用connect方法测试样例: curl --proxy proxy_server:port -b passport=dest_port -b pro=https :port本文出自 “” 博客,转载请与作者联系!
了这篇文章
类别:┆阅读(0)┆评论(0)
22:17:40 14:34:14

我要回帖

更多关于 钢铁侠壁纸超清原图 的文章

 

随机推荐