CentOS7下Nginx安装、配置、调优

一、Nginx安装

1.到nginx官网下载最新包http://nginx.org/

2.解压nginx-1.10.0.tar.gz到/usr/local/ngxin

3.进入/ngxin文件夹,执行初始化操作,命令如下:   

./configure --prefix=/usr/local/nginx
make
make install

    安装完成后文件目录如下:

4.启动nginx

cd /usr/local/nginx/sbin

    输入./nginx启动nginx。如果nginx被配置成了服务可以这样启动/etc/init.d/nginx start

5.可能出现的问题

    1.缺少依赖,nginx需要依赖:

        gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )  zlib-1.2.8.tar.gz,
        rewrite 模块需要 pcre 库( 下载: http://www.pcre.org/ )  pcre-8.21.tar.gz,
        ssl 功能需要 openssl 库( 下载: http://www.openssl.org/ )  openssl-1.0.1.tar.gz。

    Nginx 安装配置

    2.报错:./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory       

如果是32位系统
[root@iZ11y6td7sjZ lib]# ln -s /usr/local/lib/libpcre.so.1 /lib
如果是64位系统
[root@iZ11y6td7sjZ lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64
然后在启动nginx就OK了

二、Nginx配置

    1.Nginx反向代理Tomcat

        tomcat配置文件server.xml文件如下

    

    配置hosts文件,内容如下:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

#域名对应的网址
47.105.137.13   ctyl.cloud-info.cn
#zookeeper servers
47.105.137.13 edu-provider-01

    在/usr/local/nginx下的conf文件夹里,配置nginx.conf文件

具体内容如下:

user  root;
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" '
    #                  '$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 tomcat {
        server 47.105.137.13:8080;
}
upstream tomcat {
        server 47.105.137.13:8081;
}
    server {
        listen       80;
        server_name  ctyl.cloud-info.cn;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_set_header        Host $host;
            root   /usr/local/tomcat/apache-tomcat-8.5.34/webapps/ctyl01;
            index  index.html index.htm;
        }
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;
        #}
    }
 server {
        listen       8081;
        server_name  www.wubingyin.cn;

         location / {
            proxy_set_header        Host $host;
            root   /usr/local/tomcat/apache-tomcat-8.5.34/webapps/blog-vote;
            index  index.html index.htm;
        }

         error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
}

}

这里设置user属性为root,是因为后面访问网址的时候,nginx报错403 forbidden (13: Permission denied)

一、由于启动用户和nginx工作用户不一致所致

    解决方案:将nginx.config的user改为和启动用户一致,

二、缺少index.html或者index.php文件,就是配置文件中root指定的路径下缺少index index.html index.htm这行中的指定的文件。

三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。

    解决方案:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决

四、SELinux设置为开启状态(enabled)的原因。

    查看当前selinux的状态。

         /usr/sbin/sestatus

    将SELINUX=enforcing 修改为 SELINUX=disabled 状态。

        vi /etc/selinux/config

        SELINUX=disabled

    重启生效。reboot。

        reboot

        server:服务器IP:端口

        server name:对应tomcat的HOST name

        root:项目路径

        proxy_set_header        Host $host; 这一句必须有,否则代理不了.设置请求头,并将请求头信息传到服务器,访问服务器文件时不用带上端口号了

三、Nginx调优

    worker_processes  1;//CPU数量*核数

    server {
    listen 8080;                //监听的端口
    server_name  ctyl.cloud-info.cn;    //监听域名。
    location / {    //域名指定项目指向哪里

        root     /var/local/aqweq       

        index  index.html index.htm;


        proxy_pass http://47.105.137.13:8080;
        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_read_timeout 90;
        proxy_buffer_size 4k;
        proxy_buffers 6 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
    }
}

转载于:https://my.oschina.net/u/3668429/blog/2221375

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值