nginx的安装与配置

来源:互联网 发布:ps10.0官方软件下载 编辑:程序博客网 时间:2024/06/05 14:58

这几天在尝试从apache替换成nginx,nginx拥有占用内存小,支持高并发等优点.

linux下nginx的安装

使用系统:centos 6.7,可以通过 cat /etc/redhat-release来查看系统版本(在centos和redhat下有效).
nginx依赖以下几个软件,如果没有需要先安装一下.可以通过rpm -qa|grep samba 是列出包含samba字段的软件的信息。来查看是否有安装,如果没有安装,则下载安装包

下载安装包

wget http://www.openssl.org/source/openssl-fips-2.0.9.tar.gz
wget http://nginx.org/download/nginx-1.10.2.tar.gz
wget https://jaist.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz --no-check-certificate
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz
然后解压安装,我这里其他的依赖都安装了,直接安装nginx就可以了

安装nginx

[root@localhost]tar zxvf nginx-1.10.2.tar.gz[root@localhost] cd nginx-1.10.2[root@localhost]  ./configure && make && make install 

设置配置文件nginx.conf

在http节点下加下面这段

  map $http_upgrade $connection_upgrade { #支持websocket需要        default upgrade;        '' close;    }    server {        listen       80;        server_name  xxx.xxx.org; #访问的域名        #charset koi8-r;        #access_log  logs/host.access.log  main;        location / {            root   /opt/xxx/;#静态文件的目录            index  index.html index.htm;        }        location /CountCenter/  {#websocket服务器的代理配置            proxy_pass http://x.x.x.x:x/ProjectName/;            proxy_http_version 1.1;            proxy_set_header Upgrade $http_upgrade;            proxy_set_header Connection $connection_upgrade;            #访问ws时报403,就加下面两行            proxy_pass_header X-XSRF-TOKEN;               proxy_set_header Origin http://x.x.x.x:x/ProjectName/;         }}

websocket 403

    # Pass the csrf token (see https://de.wikipedia.org/wiki/Cross-Site-Request-Forgery)    # Default in Spring Boot and required. Without it nginx suppresses the value    proxy_pass_header X-XSRF-TOKEN;    # Set origin to the real instance, otherwise a of Spring security check will fail    # Same value as defined in proxy_pass    proxy_set_header Origin "http://testsysten:8080";  

启动和其他命令

启动命令:/usr/local/nginx/sbin/nginx
如果出现下面错误

出现错误提示[root@localhost lib]# error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory

则按照下面这段来处理

   原因   在RedHat 64位机器上nginx读取的pcre文件为/lib64/libpcre.so.1文件,默认安装pcre时libpcre.so文件安装在/usr/local/lib/目录下,所以输入/opt/nginx/sbin/nginx -V 找不到文件路径!!        1.首先确定安装了pcre.        2.切换路径: cd /usr/local/lib  执行   ln -s /usr/local/lib/libpcre.so.1 /lib64/        3.root权限下添加软链接 /usr/local/lib/libpcre.so.1 到 /lib64/ :  ln -s /usr/local/lib/libpcre.so.1 /lib64/

检测配置文件是否有语法错误,然后退出 /usr/local/nginx/sbin/nginx -t
重新加载配置|重启|停止|退出 /usr/local/nginx/sbin/nginx -s reload|reopen|stop|quit

关于php的补充

项目中要能访问php的个别文件,apache默认支持,而nginx不行,所以要通过fastcgi来解析访问php,配置如下

location ~ \.php$ {                root               /opt/xxx;          #这是你网站的根目录                 fastcgi_pass      127.0.0.1:3344;            #这里指定了fastcgi进程侦听的端口,nginx就是通过这里与php交互的                fastcgi_index     index.php;                fastcgi_param     SCRIPT_FILENAME  $document_root/$fastcgi_script_name;                include           fastcgi_params;        }

然后启动php-cgi并绑定3344端口.
nohup php-cgi -b 3344 &
直接执行php-cgi -b 3344也能运行,但是终端一关就停了,所以加上nohup和&让它能独立运行

note

支持多个静态文件夹

    root   d:\Users\Desktop\static1;         location /aa {            alias  d:\html\static2;            index  index.html index.htm;        }
0 0
原创粉丝点击