搜档网
当前位置:搜档网 › Linux下Nginx的安装与部署

Linux下Nginx的安装与部署

Linux下Nginx的安装与部署
Linux下Nginx的安装与部署

一、Nginx概述

Nginx是一个高性能的HTTP和反向代理服务器,也是一个

IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。本文档中Nginx版本:nginx-1.10.2

二、Nginx安装准备

2.1关闭防火墙

用root用户登录Liunx系统关闭防火墙,关闭防火墙的作用在于防火墙阻挡网络的端口访问,照成网络访问不正常。

#service iptables stop

#chkconfig --level 345 iptables off

关闭selinux命令:

#setenforce 0

2.2创建Nginx用户

创建nginx运行的用户和组

#groupadd nginx

#useradd -g nginx nginx

#passwd nginx

改变程序目录属主属性,赋权给nginx用户

#chown -hR nginx:nginx /home/nginx

三、Nginx依赖包安装

2.1安装gcc

用root登录名上传Linux系统镜像文件到目录/home/nginx路径,输入命令进入到nginx用户的目录:

#cd/home/nginx

输入命令查看所有文件,确保镜像文件已上传。:

#ls –n

输入命令挂在镜像文件。注意修改镜像文件名称。

#mount -o loop /home/nginx/rhel-server-6.8-x86_64-dvd.iso

/mnt

输入命令进入到已挂载的镜像文件目录中:

#cd /mnt/Packages

输入命令查看所有软件包的.rpm安装包列表:

#ls

输入命令以下命令(软件安装顺序不能错):注意安装包名称根据实际情况修改,具体名称可以看ls命令的安装包列表(上图)。

#rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm

#rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm

#rpm -ivh cpp-4.4.7-17.el6.x86_64.rpm

#rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm

#rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm

#rpm -ivh libstdc++-devel-4.4.7-17.el6.x86_64.rpm

#rpm -ivh gcc-c++-4.4.7-17.el6.x86_64.rpm

#rpm -ivh ncurses-devel-5.7-4.20090207.el6.x86_64.rpm

2.2安装pcre

Nginx的rewrite 模块需要pcre 库

用root登录名将pcre库安装包上传到Linux系统的/home/nginx目录中。

输入解压命令:

#cd /home/nginx

#tar –zxvf pcre-8.39.tar.gz

输入命令ls 拷贝解压后文件夹名称,再输入cd 文件夹名称进入到解压后的路径,然后利用命令进行编译并安装。

#cd pcre-8.39

#./configure

接着输入命令编译并安装pcre:

#make

#make install

2.3安装zlib

gzip 模块需要zlib 库,用nginx登录将zlib程序包上传到nginx目录中。

输入命令:

#cd /home/nginx

#tar –zxvf zlib-1.2.8.tar.gz

输入命令进入解压后的目录并安装编译:

#cd zlib-1.2.8

#./configure

#make

#make install

2.4安装OpenSSL

将Open SSL安装包上传到nginx目录中。输入解压命令并进入解压后目录:

#cd /home/nginx

#tar -zxvf openssl-1.0.1t.tar.gz

#cd openssl-1.0.1t

输入命令编译安装

#./config

#make

#make install

以上步骤将nginx依赖包已安装完成。

四、Nginx安装

用nginx登录名上传Nginx安装包到linux服务器/home/nginx目录下,进入到nginx存放路径里。

#cd /home/nginx

输入解压命令解压Nginx安装包:

#tar –zxvf nginx-1.10.2.tar.gz

输入命令,进入解压后的安装包目录中。:

#cd nginx-1.10.2

安装完所有的nginx依赖包后,可以编译并安装nginx程序,输入命令:#./configure --prefix=/home/nginx/nginx-10.2

--with-pcre=/home/nginx/pcre-8.39

--with-zlib=/home/nginx/zlib-1.2.8

--with-openssl=/home/nginx/openssl-1.0.1t

--with-http_stub_status_module --with-http_realip_module

--with-http_ssl_module//一条命令不换行

接着执行命令:

#make

#make install

以上命令无报错提示,则nginx已安装完成。

五、Nginx启动

用root登录名输入编辑命令:

#vi /home/nginx/nginx-10.2/conf/nginx.conf

按字母键i进行编辑nginx.conf:

更改之后按键盘左上角的Esc键,并输入命令::wq,回车保存并退出。

输入nginx启动命令:

#/home/nginx/nginx-10.2/sbin/nginx

本机访问地http://localhost,显示以下网页就说明Nginx启动成功。

Nginx检测命令:

#./nginx#启动

#nginx -t#nginx语法检查

#nginx -s stop #关闭

#nginx -s reload #重新加载配置文件

#ps -ef | grep nginx #查找进程号

#killall -9 nginx # kill -9杀掉进程

六、Nginx负载均衡配置

输入命令:

#vi /home/nginx/nginx-10.2/conf/nginx.conf

按字母键i进行编辑nginx.conf:

以上红色字体需要更改或者添加

user nginx; # 定义Nginx运行的用户和用户组

worker_processes 8; #启动进程, 通常设置成和cpu的数量相等; 用cat /proc/cpuinfo查看cpu信息, cpu cores一栏显示内核数

error_log logs/error.log; #全局错误日志

#error_log logs/error.log notice;

#error_log logs/error.log info;

pid logs/nginx.pid; # 进程id存储文件

events {

use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能

worker_connections 204800; #单个后台worker process进程的最大并发链接数,理论上每台nginx服务器的最大连接数为。worker_processes*worker_connections

}

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 ; #设定日志格式

sendfile on; #必须设为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime

server_tokens off; #关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的

autoindex on;#开启目录列表访问,合适下载服务器,默认关闭

tcp_nopush on;#防止网络阻塞

#keepalive_timeout 0;

keepalive_timeout 60; #给客户端分配keep-alive连接超时时间

tcp_nodelay on; #告诉nginx不要缓存数据,而是一段一段的发送;当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值

gzip on; #开启gzip压缩

gzip_disable "MSIE [1-6]\.(?!.*SV1)"; #指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容。

#设定请求缓冲

client_header_buffer_size 1k;

large_client_header_buffers 4 4k;

#打开缓存的同时也指定了缓存最大数目,以及缓存的时间; 我们可以设置一个相对高的最大时间,这样我们可以在它们不活动超过20秒后清除掉。

open_file_cache max=100000 inactive=20s;

open_file_cache_valid 30s; #在open_file_cache中指定检测正确信息的间隔时间

open_file_cache_min_uses 2; #定义了open_file_cache中指令参数不活动时间期间里最小的文件数

open_file_cache_errors on; #指定了当搜索一个文件时是否缓存错误信息,也包括再次给配置中添加文件。我们也包括了服务器模块,这些是在不同文件中定义的。如果你的服务器模块不在这些位置,你就得修改这一行来指定正确的位置。

#虚拟主机的配置文件

include /etc/nginx/conf.d/*.conf;

include /etc/nginx/sites-enabled/*;

#设定负载均衡的服务器列表

upstream myCluster {

#采用默认轮询算法,后端两个tomcat接口(tomcat服务器IP及端口)

server 192.168.10.1:8080 max_fails=2 fail_timeout=30s;

server 192.168.10.150:8080 max_fails=2 fail_timeout=30s;

}

server {

listen 80; #侦听80端口

server_name 192.168.10.120; #定义使用IP访问

#charset utf-8;

access_log logs/host.access.log ; #设定本虚拟主机的访问日志

location / {

root html;

index index.html index.htm;

proxy_pass http://myCluster;#这里的名字和上面的cluster的名字相同

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffer_size 4k;

proxy_buffers 32 4k;

proxy_busy_buffers_size 64k;

}

#静态对象web缓冲

location ~*

\.(htm|html|xml|gif|jpg|jpeg|png|bmp|ico|rar|zip|java|jar|txt|flv|swf|txt|wma|exe|css|js)$ {

proxy_pass http://myCluster; #这里的名字和上面的cluster的名字相同

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

}

#动态对象转发至tomcat处理

location ~* \.(jsp|login|vc|ka|do)$

{

proxy_pass http://myCluster; #这里的名字和上面的cluster的名字相同}

#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;

#}

}

# another virtual host using mix of IP-, name-, and port-based configuration

#

#server {

# listen 8000;

# listen somename:8080;

# server_name somename alias another.alias;

# location / {

# root html;

# index index.html index.htm;

# }

#}

# HTTPS server

#

#server {

# listen 443 ssl;

# server_name localhost;

# ssl_certificate cert.pem;

# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;

# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;

# ssl_prefer_server_ciphers on;

# location / {

# root html;

# index index.html index.htm;

# }

#}

}

更改之后按键盘左上角的Esc键,并输入命令::wq,回车保存并退出。重启nginx:/home/nginx/nginx-10.2/sbin/nginx -s reload

为了查看nginx的最终效果,更改了192.168.10.1服务器上Tomcat和

192.168.10.150上Tomcat的index.html页面,再次访问地址:http://192.168.10.120/,并刷新几次页面。

改变程序目录属主属性,赋权给nginx用户

#chown -hR nginx:nginx /home/nginx/nginx-10.2

用户限制更改:

更改nginx文件描述符数、进程数限制

#vi /etc/security/limits.conf

按键i进行编辑,最底部增加如下内容

nginx soft nproc 65535

nginx hard nproc 65535

nginx soft nofile 65535

nginx hard nofile 65535

按Esc键之后:wq保存编辑

用户环境变量修改:

#vi ~/.bash_profile

按键i进行编辑,增加如下内容

export LIBPATH=$LIBPATH:/usr/local/lib

export PATH=$PATH:/home/nginx/sbin/

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 按Esc键之后:wq保存编辑

执行命令使环境变量生效:

#source ~/.bash_profile

切换到用户nginx更新环境变量:

#su – nginx

$vi ~/.bash_profile

按键i进行编辑,增加如下内容

export NGINX_HOME=/home/nginx

export LANG=zh_CN

export LIBPATH=$LIBPATH:/usr/local/lib

export PATH=$PATH:/home/nginx/sbin/

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

export PS1=`whoami`'@'`hostname`':${PWD}>'

按Esc键之后:wq保存编辑

执行命令使环境变量生效:

$source ~/.bash_profile

用root用户将nginx执行权限赋给nginx

#su - root

#cd /home/nginx/nginx-10.2/sbin

#chown root nginx

#chmod u+s nginx

七、调度算法参考

Nginx的upstream指令用于指定proxy_pass和fastcgi_pass所使用的后端服务器,即nginx的反向代理功能,因此可以将两者结合起来使用以达到负载均衡的目的,而Nginx也支持多种调度算法:

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down 掉,则会跳过该服务器分配至下一个监控的服务器。并且它无需记录当前所有连接的状态,所以它是一种无状态调度。

2、weight

指定在轮询的基础上加上权重,weight和访问比率成正比,即用于表明后端服务器的性能好坏,若后端服务器性能较好则可将大部分请求分配给它,已实现其力所能及。

例如:

我后端服务器172.23.136.148配置:E5520*2 CPU,8G内存

后端服务器172.23.136.148配置:Xeon(TM)2.80GHz * 2,4G内存

我希望在有30个请求到达前端时,其中20个请求交给172.23.136.148处理,剩余10个请求交给172.23.136.149处理,就可做如下配置upstream web_poll {

server 172.23.136.148 weight=10;

server 172.23.136.149 weight=5;

}

3、ip_hash

每个请求按访问ip的hash结果分配,当新的请求到达时,先将其客户端IP 通过哈希算法进行哈希出一个值,在随后的请求客户端IP的哈希值只要相同,就会被分配至同一个后端服务器,该调度算法可以解决session的问题,但有时会导致分配不均即无法保证负载均衡。

例如:

upstream web_pool {

ip_hash;

server 172.23.136.148:80;

server 172.23.136.149:80;

}

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

upstream web_pool {

server 172.23.136.148;

server 172.23.136.149;

fair;

}

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream web_pool {

server squid1:3128;

server squid2:3128;

hash $request_uri;

hash_method crc32;

}

每个设备的状态设置为:

1.down 表示当前的server不参与负载,用于ip_hash中

2.weight 默认为1.weight越大,负载的权重就越大。

3.max_fails 允许请求失败的次数默认为1.设为0则表示关闭该项功能,当超过最大次数时,返回proxy_next_upstream 模块定义的错误

4.fail_timeout 在max_fails定义的失败次数后,暂停的时间。

5.backup 可以将其理解为备机,其它所有的非backup机器down或者忙的时候,才会将请求分配给backup机器。所以这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

Windows下Nginx的安装与配置

Windows下Nginx的安装与配置 Windows下Nginx的安装与配置 Nginx ("engine x") 是一款高性能的,轻量级的HTTP Web服务器和反向代理服务器及电子邮件IMAP/POP3/SMTP代理服务器。 Nginx是由俄罗斯的程序设计师Igor Sysoev 所开发,为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多时间了,Igor 将源代码以类BSD许可证的形式发布。 自Nginx 发布四年来,Nginx 已经因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。Nginx 超越Apache的高性能和稳定性,使得国内使用Nginx 作为Web 服务器的网站也越来越多。 目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;新近发现Nginx 技术在国内日趋火热,越来越多的网站开始应用部署Nginx。 一、首先去官网下载nginx1.0.11的Windows版本,官网下载: https://www.sodocs.net/doc/8010621547.html,/download/nginx-1.0.11.zip 下载到软件包后,解压nginx-nginx1.0.11.zip 包到你喜欢的根目录,并将目录名改为nginx。 然后,执行下列操作: cd nginx start nginx 这样,nginx 服务就启动了。打开任务管理器,查看nginx.exe 进程,有二个进程会显示,占用系统资源,那是相当的少。然后再打开浏览器,输入http://127.0.0.1/就可以看到nginx 的欢迎页面了,非常友好 nginx -s stop // 停止nginx nginx -s reload // 重新加载配置文件 nginx -s quit // 退出nginx 二、接下来就是配置nginx的conf文件了。下面是我的配置: #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid;

linux下Nginx+tomcat整合的安装与配置

linux下Nginx+tomcat整合的安装与配置 目的:搭建Nginx与tomcat整合,用Nginx代替apache 步骤: 一、安装Tomcat和JDK 1、上传apache-tomcat-6.0.18.tar.gz和jdk-6u12-linux-i586.bin至/usr/local 2、执行如下命令安装tomcat: 查看 打印? 1. 2.#cd /usr/local 3.#tar zxvf apache-tomcat-6.0.18.tar.gz 解压完成后将apache-tomcat-6.0.18重命名为tomcat 3、执行如下命令安装JDK: 查看 打印? 1. 2.#./jdk-6u12-linux-i586.bin 4、配置环境变量: 编辑/etc下的profile文件,加上如下内容: 查看 打印? 1. 2.JAVA_HOME="/usr/local/jdk1.6.0_12" 3.CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib" 4.PATH=".:$PATH:$JAVA_HOME/bin " 5. 6.CATALINA_HOME="/usr/local/tomcat" 7.export JAVA_HOME CATALINA_HOME 5、启动tomcat并输入http://localhost:8080,如果看到猫的页面即tomcat和jdk安装成功 6、新建文件目录/home/www为网站存放目录,设置server.xml文件,在Host name="localhost"处将appBase=的指向路径改为/home/www/web

Nginx与PHP(FastCGI)的安装、配置与优化

Nginx与PHP(FastCGI)的安装、配置与优化 FastCGI的介绍和工作原理 首先简单的介绍下FastCGI: FastCGI是语言无关的、可伸缩结构的CGI开放扩展,其主要行为是将CGI解释器进行保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸缩性、Fail-Over特性等。 FastCGI的工作原理是: (1)FastCGI进程管理器自身初始化,启动多个CGI解释器进程(多个php-cgi进程)并等待来自Web Server的连接。在文本中,采用PHP-FPM进程管理器启动多个php-cgi FastCGI进程。启动php-cgi FastCGI进程时,可以配置以TCP和UNIX套接字两种方式启动。 (2)当客户端请求达到Web服务器(Nginx)时,Web服务器将请求采用TCP协议或UNIX 套接字方式转发到FastCGI主进程,FastCGI主进程选择并连接到一个CGI解释器(子进程)。Web服务器将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。 (3)FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web服务器(Nginx)。当FastCGI子进程关闭连接时,请求便告知处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理的下一个连接。而在一般的普通CGI模式中,php-cgi在此便退出了。 PHP-FPM PHP-FPM是一个PHP FastCGI管理器,是只用于PHP的,可以在 https://www.sodocs.net/doc/8010621547.html,/downloads.php下载得到.PHP-FPM其实是PHP源代码的一个补丁,旨在将FastCGI进程管理整合进PHP包中。必须将它patch到你的PHP源代码中,在编译安装PHP后才可以使用。

Nginx-1.0.15负载均衡安装配置

nginx-1.0.15负载均衡安装配置 OS:ubuntu 1、取得软件 pcre-8.30.zip nginx-1.0.15.tar.gz apt-get install gcclibpcre*zlib 2、安装rewrite的支持库pcre unzip pcre-8.30.zip cd pcre-8.30 ./configure make make install 3、配置nginx.conf cat /usr/local/nginx/conf/nginx.conf | grep -Ev '(#|^$)' worker_processes 1; events { worker_connections 1024; } http { includemime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream https://www.sodocs.net/doc/8010621547.html, { server 10.0.0.252:8080; server 10.0.0.253:8080; server 10.0.0.105:8080; } server { listen 80; server_name https://www.sodocs.net/doc/8010621547.html,; location ~ ^/$ { rewrite ^/(.*) /jboss/ break; proxy_pass https://www.sodocs.net/doc/8010621547.html,; } } }

4、启动nginx服务 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

【Nginx服务器的编译安装与配置】 安装配置服务器失败

【Nginx服务器的编译安装与配置】安装配置服务器失败 Nginx 是一个很强大的轻量级、高性能Web和反向代理服务器,由俄罗斯人开发而成。它具有很多非常优越的特性:在高连接并发的情况下,Nginx是Apache服务器不错的替代品。而且还可以作为负载均衡服务器,代码用C语言完成,运行效率非常高,还可以做邮件代理服务器。下面是小编跟大家分享的是Nginx服务器的编译安装与配置,欢迎大家来阅读学习~ Nginx服务器的编译安装与配置 工具/原料 Linux服务器或虚拟机一台(这里使用的CentOS6.5) Nginx源码包(这里使用1.44的版本,下载链接:H://pan.baidu/s/1qWoe2te 密码:fqji) 方法/步骤 1要编译安装Nginx,首先我们要安装依赖包pcre-devel 和zlib-devel: # yum install pcre-devel zlib-devel -y 程序默认是使用nobody 身份运行的,我们建议使用nginx 用户来运行,首先添加Nginx组和用户,不创建家目录,不允许登陆系统 # groupadd nginx # useradd -M -s /sbin/nologin -g nginx nginx

2准备工作完成后就是下载编译安装Nginx了,可以从我提供的网盘下载,也可以去Nginx的官网下载。 首先解压源码包: # tar xf nginx-1.4.4.tar.gz 然后cd 到解压后的目录就可以执行./configure 了 # cd nginx-1.4.4 指定安装目录和运行时用的属主和属组,并启用状态监控模块等 # ./configure \ --prefix=/usr/local/nginx \ --pid-path=/var/run/nginx/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --user=nginx \ --group=nginx \ --with-H_ssl_module \ --with-H_flv_module \

1.1 nginx部署(单机)-手动安装

注: 在配置时,建议使用非root用户配置,本文档以【用户密码:nginx/nginx】【目录:/nginx】为例进行说明 文档中执行命令为蓝色字体;配置文件为粉色字体;重点标记为红色字体 1.单机部署 1.1.准备 上传【1.1 nginx部署介质.zip】包到安装目录/nginx,执行解压得到soft目录 unzip 1.1\nginx部署介质.zip 1.2.安装 1.2.1.解压依赖库 cd /nginx/soft &&tar -zxvf pcre-8.35.tar.gz&&tar -zxvf zlib-1.2.8.tar.gz&&tar -zxvf openssl-1.0.1c.tar.gz 1.2.2.安装nginx cd /nginx/soft&&tar -xvfnginx-1.11.5.tar.gz&&cd nginx-1.11.5&&./configure --prefix=/nginx/nginx--with-pcre=/nginx/soft/pcre-8.35 --with-zlib=/nginx/soft/zlib-1.2.8 --with-openssl=/nginx/soft/openssl-1.0.1c&&make&&make install 安装之后soft目录不能删除! 1.2.3.验证 进入/nginx/nginx,出现以下4个目录conf、html、logs、sbin 1.3.配置 1.3.1.修改配置nginx.conf文件 cd/nginx/nginx/conf vi nginx.conf 删除原来所有内容,使用以下内容,或者复制soft下面nginx.conf至此目录,然后进行修改

NGinx分布式部署测试实例图解

https://www.sodocs.net/doc/8010621547.html,+Mvc+NGinx+IIS分布式部署和负载平衡实例图解 目的:在IIS中创建四个相同的网站,浏览器访问同一个地址,通过NGinx转到不同的IIS 网站。 测试条件: Windows 7 X64旗舰版+Visual Studio 2017专业版 1、创建https://www.sodocs.net/doc/8010621547.html, +Mvc WebApplication 在VS运行后的页面效果如下:

2、发布网站 3、IIS中部署四个网站 创建三个应用程序池,端口分别为: 8001、8002、8003,8004分别对应四个网站。 为区分三个网站,把Index.cshtml文件中的“Nginx测试程序”这行字分别改为:Nginx测试程序--------1 Nginx测试程序--------2 Nginx测试程序--------3 Nginx测试程序--------4 如下图: 部署四个网站后,打开页面效果如下:

到此,说明四个网站部署后单独访问都没有问题。下面开始部署NGInx的负载平衡。

4、NGInx的安装 4.1、下载nginx-1.1 5.1 下载后解压到D:\nginx文件夹,解压后的文件夹如下: 4.2、修改配置文件nginx.conf nginx.conf文件位于D:\nginx\conf目录下,nginx.conf默认内容如下。用记事本打开文件,nginx.conf文件的内容如下: #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" '

nginx配置方案

WEB服务器安装方案 平台搭建环境: CentOS5.2 32/x86_64 GNU/Linux (32/64操作系统均通过,推荐使用64位操作系统) 一、系统安装 1. 系统分区建议 /boot 256M swap 2GB / 20GB /usr 40GB (用于安装软件) /data 剩余所有空间. 二、编译安装基本环境 1. 安装准备 1.1 系统约定 软件源代码包存放位置 /usr/local/src 源码包编译安装位置(prefix) /usr/local/software_ name 脚本以及维护程序存放位置 /usr/local/sbin MySQL 数据库位置 /data/mysql/(可按情况设置) 网站根目录/data/www/htdocs(可按情况设置) 网站日志根目录/data/www/logs(可按情况设置) Nginx运行账户www 1.2创建网站账号及相关存放目录 /usr/sbin/groupadd www /usr/sbin/useradd -g www www mkdir -p /data/www/html mkdir -p /data/www/log chown -R www:www /data/www/html chown -R www:www /data/www/log 1.3系统环境部署及调整 # tail -n100 /var/log/messages (检查有无系统级错误信息) # dmesg (检查硬件设备是否有错误信息) # ifconfig(检查网卡设置是否正确) # ping 192.168.95.1 (检查网络是否正常) install_software_name.sh //存放编译参数脚本习惯将所有编译脚本存放在install_software_name.sh便于升级和更新软件. 1.4定时校正服务器时钟,定时与中国国家授时中心授时服务器同步 #crontab -e

linux nginx搭建

1.安装nginx 1.解压安装包 分别解压nginx,pcre,openss,nginx-rtmp-module,nginx_mod_h264_streaming到/root/work/nginx_download目录下,进入nginx解压后的目录nginx-1.6.2 2.安装nginx ./configure\ --prefix=/root/work/nginx_download/nginx\ --with-pcre=../pcre-8.36\ --with-http_stub_status_module\ --with-http_ssl_module\ --add-module=../nginx_mod_h264_streaming-2.2.7\ --add-module=../nginx-rtmp-module-master\ --with-debug --with-openssl=../openssl-1.0.1 j make && make install 安装成功后,/root/work/nginx_download/nginx\下会有相关软件生成 出错解决方法:https://www.sodocs.net/doc/8010621547.html,/vblittleboy/article/details/40616405 3.配置nginx 请将文件安装包\nginx\配置文件\nginx_rtmp.conf 拷贝到nginx/conf下 4.启动nginx ./sbin/nginx -c conf/nginx_rtmp.conf 正常运行后,可以发现有三个nginx进程 5.推流

利用ffmpeg可以将视频文件已rtmp格式推送到nginx服务器中。 推送流命令如下:./ffmpeg -re -i 7.mp4 -c copy -f flv rtmp://192.168.1.102/hls/1 6.观看效果 在/tmp/app下存在切片生成的ts流,通过hls协议就可以以点播的形式实现直播技术。 可以在pc上以及安卓系统中通过rtmp协议观看。 也可以在ios系统上通过hls协议观看。 相比,hls协议观看延迟要大些,大概延迟在1分钟左右。

linux环境部署(nginx)

Linux下环境部署 1、安装linux工具 为了方便地上传文件和操作linux服务器,我们在自己机器上安装以下两个工具: ,这两个安装程序在此手册同一目录的“附件”文件夹下。安装SecureCRT_5.1.3的时候要输入序列号等信息,这个在压缩包里面有说明。 安装好了之后,我们可以看到它们两个界面分别如下图所示:

1.1 SecureCRT_5.1.3的使用 我们打开程序SecureCRT_5.1.3,点击图片中所标的“快速连接”,在弹出的界面输入linux服务器的用户名以及端口号(默认 是22,具体看服务器情况),如下图所示:

点“连接”按钮,这样会弹出一个框,要求输入密码,如下图所示: 密码输入成功之后,界面会变成下图这样: 这样就能在此界面下输入linux命令操作linux服务器了。

1.2 FileZilla 上传文件到linux服务器 在新安装的linux服务器下,是没有ftp可用的,所以在此之前我们可以通过vsftp来进行文件上传到linux服务器下。 上传步骤如下:打开FileZilla程序,在界面上输入主机ip,root用户名,密码,端口号这里一般是22,如下图所示: 然后点击右侧的“快速连接”,这样在用户名和密码无误的情况下就能连接到linux服务器下了,下图是连接成功后的界面:

传”就能把文件传到linux服务器上,如下图所示: 2、tomcat的部署

tomcat的部署包括以下几个步骤: 1、上传tomcat程序 2、上传jdk 3、增加一个linux用户用来启动tomcat 4、配置jdk环境变量 5、设置tomcat以及jdk的权限 2.1 增加一个jwztcms账号 在SecureCRT_5.1.3命令行下,并且当前登入账号是root时,输入命令“adduser jwztcms”,然后回车。这样就增加了一个名为jwztcms的账号。我们可以看到,这个时候,在/home目录下,会多了一个名为jwztcms的文件夹。如下图所示: 2.2 如何修改账号密码 在当前登入账号是root时,输入命令“passwd jwztcms”然后回车,系统会让你两次输入密码,修改成功后会有“passwd: all authentication tokens updated successfully”这样的提示。 2.3如何修改账号在linux上的默认文件夹

windows下nginx安装、配置与使用

windows下nginx安装、配置与使用 1)下载地址: 从nginx官网下载相应的安装包https://www.sodocs.net/doc/8010621547.html, 2)启动 解压至c:\nginx,运行nginx.exe(即nginx -c conf\nginx.conf),默认使用80端口,日志见文件夹C:\nginx\logs 3)使用 http://localhost 4)关闭 nginx -s stop 或taskkill /F /IM nginx.exe > nul 5)常用配置 C:\nginx\conf\nginx.conf,使用自己定义的conf文件如my.conf,命令为nginx -c conf\my.conf 常用配置如下: Nginx.conf代码 http { server { #1.侦听80端口 listen 80; location / { # 2. 默认主页目录在nginx安装目录的html子目录。 root html; index index.html index.htm; # 3. 没有索引页时,罗列文件和子目录 autoindex on; autoindex_exact_size on; autoindex_localtime on; } # 4.指定虚拟目录 location /tshirt { alias D:\programs\Apache2\htdocs\tshirt; index index.html index.htm; } } # 5.虚拟主机https://www.sodocs.net/doc/8010621547.html,配置 server { listen 80; server_name https://www.sodocs.net/doc/8010621547.html,; access_log https://www.sodocs.net/doc/8010621547.html,/logs/access.log; location / {

Nginx安装及简单配置反向代理

Nginx安装及简单配置反向代理一.环境 VMware: Redhat(Server_A 部署nginx文件服务页面) WinServer(Server_B 部署IIS) Redhat(nginx代理服务器) 源码包: nginx-1.5.3.tar.gz openssl-1.0.1c.tar.gz (提供ssl加密协议) pcre-8.33.tar.gz (http rewrite模块:地址重写) zlib-1.2.8.tar.gz (gzip模块,传输数据打包)拓扑结构: 二.安装 1.安装基础编译环境 yum install -y gcc gcc-c++ make 2.安装

2.1解压 cd /tmp/soft/ tar xzfv nginx-1.5.3.tar.gz cd .. tar xzfv openssl-1.0.1c.tar.gz cd .. tar xzfv pcre-8.33.tar.gz cd .. tar xzfv zlib-1.2.8.tar.gz 2.2安装依赖 cd/tmp/soft/pcre-8.33 ./configure make&&make install cd/tmp/soft/zlib-1.2.8 ./configure make&&make install cd/tmp/soft/openssl-1.0.1c ./configure make&&make install 2.3安装nginx cd/tmp/soft/nginx-1.5.3 ./configure --prefix=/home/nginx --with-http_stub_status _module --with-http_ssl_module ./configure –help #查看配置概述 make&&make install 3.yum安装依赖包:

Linux下Nginx的安装与部署

一、Nginx概述 Nginx是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。本文档中Nginx版本:nginx-1.10.2 二、Nginx安装准备 2.1关闭防火墙 用root用户登录Liunx系统关闭防火墙,关闭防火墙的作用在于防火墙阻挡网络的端口访问,照成网络访问不正常。 #service iptables stop #chkconfig --level 345 iptables off 关闭selinux命令: #setenforce 0 2.2创建Nginx用户 创建nginx运行的用户和组

#groupadd nginx #useradd -g nginx nginx #passwd nginx 改变程序目录属主属性,赋权给nginx用户 #chown -hR nginx:nginx /home/nginx 三、Nginx依赖包安装 2.1安装gcc 用root登录名上传Linux系统镜像文件到目录/home/nginx路径,输入命令进入到nginx用户的目录: #cd/home/nginx 输入命令查看所有文件,确保镜像文件已上传。: #ls –n 输入命令挂在镜像文件。注意修改镜像文件名称。 #mount -o loop /home/nginx/rhel-server-6.8-x86_64-dvd.iso /mnt 输入命令进入到已挂载的镜像文件目录中: #cd /mnt/Packages 输入命令查看所有软件包的.rpm安装包列表: #ls

Nginx配置文件(nginx.conf)配置详解

Nginx配置文件(nginx.conf)配置详解 usernginxnginx ; Nginx用户及组:用户组。window下不指定 worker_processes 8; 工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。 error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; 错误日志:存放路径。 pid logs/nginx.pid; pid(进程标识符):存放路径。 worker_rlimit_nofile 204800; 指定进程可以打开的最大描述符:数目。 这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。 现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。 这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。 events { useepoll; 使用epoll的I/O 模型。linux建议epoll,FreeBSD建议采用kqueue,window下不指定。 补充说明: 与apache相类,nginx针对不同的操作系统,有不同的事件模型 A)标准事件模型 Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll B)高效事件模型 Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X 系统使用kqueue可能会造成内核崩溃。 Epoll:使用于Linux内核2.6版本及以后的系统。 /dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。Eventport:使用于Solaris 10。为了防止出现内核崩溃的问题,有必要安装安全补丁。 worker_connections 204800; 没个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。 worker_processes*worker_connections

项目上线nginx详细配置

通过nginx+uwsgi部署django应用在ubuntu 安装python3-pip Sudo apt-get install python3-pip 安装虚拟环境和虚拟环境管理包 Sudo pip3 install virtualenv (报错的话需要把pip也安装一下) Sudo pip3 virtualenvwrapper 在~/.bashrc 添加 /home/liunx/.virtualenvs/mybaby/bin/python3 export WORKON_HOME=~/Envs source /usr/local/bin/virtualenvwrap per.sh source .bashrc 创建虚拟环境:mkvirtualenv EduOnline –p /usr /bin/python3

虚拟环境当中安装项目所依赖的包(mysqlclient会出一个问题,需要首先安装下面这个包) 我们可以通过 pip freeze > requirements.txt 将win dows的虚拟环境安装包相应信息导出来移动到ubuntu Pip3 install -r requirements.txt 在安装过程中my sqlclient会报错,按照下面两步走 sudo apt-get install libmysqlclient-dev pip install mysqlclient 数据库: Sudo apt-get install mysql-server 进入数据库创建自己的账户并且分配所有的权限,并且刷新权限,在配置文件当中bind 0.0.0.0 在ubuntu 当中创建我们用的数据库 eduonline,通 过windows的Navicat将windows数据库中的数据 传输到ubuntu当中 将我们的项目文件夹拖入到我们的虚拟环境当中,进入项目python manage.py runserver保证能拉起项目

Nginx负载均衡的详细配置及使用案例详解

Nginx负载均衡的详细配置及使用案例详解. 技术无止境, 我们仍需努力! 1,话不多说, 这里我们来说下很重要的负载均衡, 那么什么是负载均衡呢? 由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。 针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。 2, 负载均衡的种类 1)一种是通过硬件来进行解决,常见的硬件有NetScaler、F5、Radware 和Array等商用的负载均衡器,但是它们是比较昂贵的 2)一种是通过软件来进行解决的,常见的软件有LVS、Nginx、apache 等,它们是基于Linux系统并且开源的负载均衡策略.

3, 这里我们只来说Nginx(其他的大家有兴趣可以自行查阅相关文档) Nginx(发音同engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev(伊戈尔·西索夫)所开发,供俄国大型的入口网站及搜索引擎Rambler(漫步者)(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。 优点: 1:可运行linux,并有 Windows 移植版。 2:在高连接并发的情况下,Nginx是Apache服务器不错的替代品Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达50,000 个并发连接数的响应 4, 创建两台Nginx服务器 由于自己在自己电脑上搭建, 所以现在只模拟搭建两台Nginx服务器. 负载均衡的功能: 转发 故障移除

nginx1.8安装配置及优化(修改版)

Nginx1.8安装配置 1.创建www用户和用户组 groupadd www useradd -s /sbin/nologin -g www www 2.安装pcre软件包 tar zxvf pcre-8.12.tar.gz -C /usr/src/ cd /usr/src/pcre-8.12/ ./configure && make && make install ldconfig 3.解压、配置、编译、安装nginx [root@localhost opt]# tar -zxvf nginx-1.8.0.tar.gz [root@localhost opt]# cd nginx-1.8.0 [root@localhost nginx-1.8.0]#./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_realip_module --with-http_gzip_static_module --with-pcre 这一步安装了2个包 yum -y install pcre-devel yum install -y zlib-devel [root@localhost nginx-1.8.0]# make && make install 6.编辑nginx.conf配置文件 vim /usr/local/nginx/conf/nginx.conf 文件详见附件。

7.创建目录并修改权限 注:html文件可以作为nginx缓存的根路径。可根据实际情况修改。mkdir -p /home/www/log mkdir -p /home/www/pid mkdir -p /home/www/html chown -R www:www /home/www/log chown -R www:www /home/www/pid chown -R www:www /home/www/html chown -R www:www /usr/local/nginx 8.测试启动nginx服务 ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx nginx -t nginx -c /usr/local/nginx/conf/nginx.conf ps -aux | grep nginx netstat -anptu | grep 80 9.编写nginx启动脚本 vim /etc/init.d/nginx 文件详见附件 10.添加nginx系统服务 chmod a+x /etc/init.d/nginx chkconfig --add nginx chkconfig --level 2345 nginx on chkconfig --list | grep nginx

Nginx+pcre部署及配置步骤

安装 在Linux 下安装Nginx 为了确保能在Nginx 中使用正则表达式进行更灵活的配置,安装之前需要确定系统是否安装有PCRE(Perl Compatible Regular Expressions)包。您可以到ftp://https://www.sodocs.net/doc/8010621547.html,/pub/software/programming/pcre/ 下载最新的PCRE 源码包,使用下面命令下载编译和安装PCRE 包: # wget ftp://https://www.sodocs.net/doc/8010621547.html,/pub/soft ... cre/pcre-7.7.tar.gz # tar zxvf pcre-7.7.tar.gz # cd pcre-7.7 # ./configure # make # make install 接下来安装Nginx,Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个,下面是把Nginx 安装到/opt/nginx 目录下的详细步骤: http://sysoev.ru/nginx/nginx-0.7.61.tar.gz # wget http://sysoev.ru/nginx/nginx-0.6.31.tar.gz # tar zxvf nginx-0.6.31.tar.gz # cd nginx-0.6.31 # ./configure --with-http_stub_status_module --prefix=/opt/nginx # make # make install 其中参数--with-http_stub_status_module 是为了启用nginx 的NginxStatus 功能,用来监控Nginx 的当前状态。 安装成功后/opt/nginx 目录下有四个子目录分别是:conf、html、logs、sbin 。其中Nginx 的配置文件存放于conf/nginx.conf,Nginx 只有一个程序文件位于sbin 目录下的nginx 文件。确保系统的80端口没被其他程序占用,运行sbin/nginx 命令来启动Nginx,打开浏览器访问此机器的IP,如果浏览器出现Welcome to nginx! 则表示Nginx 已经安装并运行成功。 常用的Nginx 参数和控制 程序运行参数 Nginx 安装后只有一个程序文件,本身并不提供各种管理程序,它是使用参数和系统信号机制对Nginx 进程本身进行控制的。Nginx 的参数包括有如下几个:-c :使用指定的配置文件而不是conf 目录下的nginx.conf 。

nginx安装部署及路径

Tomcat 安装:在cathout.sh 里配置好jdk路径 然后chmod 777 startup.sh shutdown.sh cathout.sh 最后./startup.sh 简介:Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡 一、浏览器访问路径:http://192.168.12.11/、http://192.168.12.10/ 12.11安装路径:/usr/local/nginx 12.10安装路径:/usr/local/nginx 二、常用命令: 启动:/usr/local/nginx/sbin/nginx 停止/重新加载:/usr/local/nginx/sbin/nginx -s stop(quit、reload) 验证配置文件是否合法:/usr/local/nginx/sbin/nginx -t 命令帮助:/usr/local/nginx/sbin/nginx -h 三、安装步骤: (1)下载Nginx及相关组件 [root@localhost src] # wget https://www.sodocs.net/doc/8010621547.html,/download/nginx-1.10.2.tar.gz 省略安装内容... [root@localhost src] # wget https://www.sodocs.net/doc/8010621547.html,/source/openssl-fips-2.0.10.tar.gz 省略安装内容... [root@localhost src]# wget https://www.sodocs.net/doc/8010621547.html,/zlib-1.2.11.tar.gz 省略安装内容... [root@localhost src] # wget ftp://https://www.sodocs.net/doc/8010621547.html,/pub/software/programming/pcre/pcre-8.40.tar. gz 省略安装内容... (2)安装c++编译环境,如已安装可略过 [root@localhost src]# yum install gcc-c++ 省略安装内容...期间会有确认提示输入y回车 Is this ok [y/N]:y 省略安装内容... (3)安装Nginx及相关组件:依赖包安装顺序依次为:openssl、zlib、pcre, 然后安装Nginx包 openssl安装: [root@localhost src]# tar zxvf openssl-fips-2.0.10.tar.gz 省略安装内容... [root@localhost src]# cd openssl-fips-2.0.10 [root@localhost openssl-fips-2.0.10]# ./config && make && make install 省略安装内容...

nginx服务器配置

Linux6.2下 所需软件包: Gcc,make,glib pcre-8.32.zip nginx-1.3.10.tar.gz httpd-2.2.9.tar.gz 配置域名: 解压所需软件包,编译: unzip pcre-8.32.zip cd pcre-8.32 ./configure Make&&make install tarzxvf nginx-1.3.10.tar.gz cd nginx-1.3.10 ./configure --with-http_stub_status_module --prefix=/opt/nginx Make&&make install ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ls -l /usr/local/sbin/nginx 安装apache源码包httpd-2.2.9.tar.gz,启动apache服务. 创建所需访问网页根目录以及访问文件: mkdir -p /web/www/baidu/htdocs mkdir -p /web/www/sina/htdocs echo "https://www.sodocs.net/doc/8010621547.html," > /web/www/baidu/htdocs/index.html echo "https://www.sodocs.net/doc/8010621547.html," > /web/www/sina/htdocs/index.html 查找libpcre.so.l文件:

进入/etc/ld.so.conf目录下,修改配置文件: 输入ldconfig重新加载. 进入nginx主配置文件. 在97行左右下输入配置文件: server { listen 80; server_name https://www.sodocs.net/doc/8010621547.html,; charset utf-8; #access_log logs/baidu.access.log main; location / { root /web/www/baidu/htdocs; index index.html index.htm; } } server { listen 80; server_name https://www.sodocs.net/doc/8010621547.html,; charset utf-8; #access_log logs/sina.access.log main; location / { root /web/www/sina/htdocs; index index.html index.htm; } }

相关主题