Ubuntu安装配置Nginx

来源:互联网 发布:网络机顶盒参数 编辑:程序博客网 时间:2024/05/17 02:28

安装Nginx

Nginx下载网站:http://nginx.org/ ,根据需要下载版本,一般提供两种版本stable版本和mainline 版本,在实际生产环境中建议使用stable版本,此次下载安装的版本为:nginx-1.10.3.tar.gz。配置环境为ubuntu-16.10-server-amd64系统。
文件目录在Ubuntu目录下自己新建的/myapp/soft/目录下(此目录也可以在安装Ubuntu系统的时候手动分区建立自己的工作空间)。以下为安装配置过程:
Nginx文件的存放目录:
解压使用:tar -xzf nginx-1.10.3.tar.gz解压到当前目录,结果如下。

root@shmily:/myapp/soft# lsapache-tomcat-8.5.13.tar.gz  mysql-server_5.7.17-1ubuntu16.04_amd64.deb-bundle.tar  nginx-1.10.3.tar.gzjdk-8u121-linux-x64.tar.gz   nginx-1.10.3root@shmily:/myapp/soft#

安装之前先执行更新:

apt-get install update

安装Nginx所需要的类库:

apt-get install gcc libpcre3 libpcrecpp0v5 libpcre3-dev libssl-dev

然后进入软件安装目录,即二进制文件目录(手动创建的目录):

root@shmily:/myapp# lsbin  lost+found  soft  webrootroot@shmily:/myapp# cd binroot@shmily:/myapp/bin# 

在此目录下新建nginx文件夹:

root@shmily:/myapp/bin# mkdir nginxroot@shmily:/myapp/bin# lsjdk  nginx  tomcat  tomcat02root@shmily:/myapp/bin# cd nginxroot@shmily:/myapp/bin/nginx#mkdir logs conf fastcgi_temp sbin client_body_temp proxy_temp uwsgi_temp scgi_temproot@shmily:/myapp/bin/nginx# lsclient_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp

执行完成之后退出此目录,然后回到soft目录下:

root@shmily:/myapp# cd softroot@shmily:/myapp/soft# lsapache-tomcat-8.5.13.tar.gz  mysql-server_5.7.17-1ubuntu16.04_amd64.deb-bundle.tar  nginx-1.10.3.tar.gzjdk-8u121-linux-x64.tar.gz   nginx-1.10.3root@shmily:/myapp/soft# cd nginx-1.10.3root@shmily:/myapp/soft/nginx-1.10.3# lsauto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  srcroot@shmily:/myapp/soft/nginx-1.10.3#

接着执行以下命令进行Nginx的安装:

./configure --prefix=/myapp/bin/nginx/ --sbin-path=/myapp/bin/nginx/sbin/ --with-http_ssl_module --conf-path=/myapp/bin/nginx/conf/nginx.conf --pid-path=/myapp/bin/nginx/logs/nginx.pid --error-log-path=/myapp/bin/nginx/logs/error.log --http-log-path=/myapp/bin/nginx/logs/access.log --http-fastcgi-temp-path=/myapp/bin/nginx/fastcgi_temp --http-client-body-temp-path=/myapp/bin/nginx/client_body_temp --http-proxy-temp-path=/myapp/bin/nginx/proxy_temp --http-uwsgi-temp-path=/myapp/bin/nginx/uwsgi_temp --http-scgi-temp-path=/myapp/bin/nginx/scgi_temp

上面命令执行成功之后,执行以下命令,成功执行说明Nginx安装成功:

root@shmily:/myapp/soft/nginx-1.10.3# make;make install

安装成功之后回到 /myapp/bin/nginx 目录下,进入该目录下的sbin,启动Nginx,直接执行./nginx启动服务,使用ps -ef|grep nginx查看当前启动的进程,如下:

root@shmily:/myapp/bin/nginx# lsclient_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temproot@shmily:/myapp/bin/nginx# cd sbinroot@shmily:/myapp/bin/nginx/sbin# lsnginxroot@shmily:/myapp/bin/nginx/sbin# ./nginx...root@shmily:/myapp/bin/nginx/sbin# root@shmily:/myapp/bin/nginx/sbin# ps -ef|grep nginxroot       4518      1  0 16:16 ?        00:00:00 nginx: master process ./nginxnobody     4524   4518  0 16:16 ?        00:00:00 nginx: worker processroot       4679   1639  0 16:47 pts/0    00:00:00 grep --color=auto nginxroot@shmily:/myapp/bin/nginx/sbin# 

成功之后可以在远程测试连接,成功界面如下:

Nginx

nginx配置使用

  • 配置文件nginx/conf/nginx.conf
  • http{ …… }部分,HTTP服务设置,全局设置

nginx.conf文件内容

  • include mime.types; #文件扩展名不文件类型映射表
  • default_type application/octet-stream; #默认文件类型
  • sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘不网络I/O处理速度,降低系统的负载。
    注意:如果图片显示不正常把这个改成off
  • keepalive_timeout 120; #长连接超时时间,单位是秒
  • 配置文件nginx/conf/nginx.conf
  • server{ …… }部分,虚拟主机的配置

nginx.conf文件02

  • listen 80; #监听端口
  • server_name www.xxx.com; #域名可以有多个,用空格隔开
  • index index.html index.jsp; #默认访问页面
  • root /www/webSite/xxx; #默认站点路径
  • error_page 500 502 503 504/50x.html; #默认错误内容展示页

Nginx + Tomcat 配置使用

Tomcat配置

首先需要进行Tomcat集群配置,用两个Tomcat作为实例,实际过程中可以使用多个Tomcat,在进行Tomcat配置过程中,先查看是否有Tomcat进程存在,使用ps -ef|grep tomcat ,如果有进程,使用kill -9 进程号 结束Tomcat进程。之后复制Tomcat,使用cp tomcat tomcat02 进行复制,可依次复制多个Tomcat。原始Tomcat不需要端口修改,但是需要在server.xml文件中增加web项目配置路径,server.xml文件路径:

root@shmily:/myapp/bin/tomcat/conf# lsCatalina         catalina.properties  jaspic-providers.xml  logging.properties  server.xml20170506  tomcat-users.xsdcatalina.policy  context.xml          jaspic-providers.xsd  server.xml         tomcat-users.xml    web.xml

修改server.xml文件,增加如下内容,其他不用做任何修改:

<Context path="" docBase="/myapp/webroot/mldn2" debug="0" reloadable="true"></Context>

image02
完成之后,进入tomcat02目录下的conf目录下:
image03
修改server.xml文件,需要做如下修改:

image04

image05

image06

image07
如果还有有多个Tomcat配置按照上面依次配置就可以,途中圈出来的部分是需要修改的内容,如有三个则第三个的server port8007.依次类推进行修改即可。修改完成之后,重新启动Tomcat服务,正常启动说明修改正确。

image08

Nginx配置

修改nginx/conf/nginx.conf文件里的server,如上图中的location / {}中的内容,注释以下内容:

# root html;# index  index.html index.htm;

在下面新增如下配置:

        proxy_pass http://127.0.0.1;        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; #后端服务器可以通过X-Forwarded-For获取真实IP        proxy_max_temp_file_size 0; #设置临时缓存大小        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; #设定缓存文件夹大小

修改完成保存退出,回到sbin目录,执行以下命令:

./nginx -t          //测试Nginx脚本./nginx -s reload           //重启Nginx

Nginx负载均衡配置

增加upstream项,在http中

 #gzip  on;    upstream myServer {        server 127.0.0.1:9090 down;        server 127.0.0.1:8080 weight=2;        server 127.0.0.1:6060;        server 127.0.0.1:7070 backup;    }

down:表示单前的server暂时不参与负载
weight:默认为1,weight越大,负载的权重就越大。
backup:其它所有的非backup机器down或者忙的时候,请求backup机器

修改Nginx中server里面的location内容

proxy_pass http://myServer;

修改完成保存退出,回到sbin目录,执行以下命令:

./nginx -t          //测试Nginx脚本./nginx -s reload           //重启Nginx

完整修改文件内容如下:

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;    upstream myServer {        server 127.0.0.1:9090 down;        server 127.0.0.1:8080 weight=2;        server 127.0.0.1:6060;        server 127.0.0.1:7070 backup;    }    server {        listen       80;        server_name  localhost;        #charset koi8-r;        #access_log  logs/host.access.log  main;        location / {        #    root   html;        #    index  index.html index.htm;                proxy_pass http://myServer;                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; #后端服务器可以通过X-Forwarded-For获取真实IP                proxy_max_temp_file_size 0; #设置临时缓存大小                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; #设定缓存文件夹大小        }