linux 下 nginx 安装配置

4 Ningx 安装

(一)安装
1. 安装准备
(1)下载
openssl-1.0.2l.tar.gz
zlib-1.2.11.tar.gz
pcre-8.38.tar.gz
(2)查看是否安装:
$rpm -qa zlib
$rpm -qa openssl
$rpm -qa pcre
tar 三个包
因系统已安装上述三个包,上述三个包只解压不编译,安装 nginx 时指定为 with 目录即可。
tar nginx 包

1
2
3
$tar zxvf nginx-1.18.0.tar.gz
$cd nginx1.12.1
$./configure --prefix=/home/spms/nginx --with-openssl=../openssl-1.0.2l --with-zlib=../zlib-1.2.11 --with-pcre=../pcre-8.38
1
2
$make
$make install

配置

1
#vi nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
server {
listen 8850;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm index.php;
}

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

将注释的 #号去掉,并在 fastcgi_param 参数的 $fastcgi_script_name 之前加入 $document_root.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
http {
   include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
#keepalive_timeout 0;
keepalive_timeout 65;
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;

修改 fastcgi.conf 用下面内容覆盖原文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

原始文件多了如下三行(不用改变应该可以?):
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param REDIRECT_STATUS 200;

(三)检测是否安装成功
$ cd /home/nginx/nginx/sbin
$ ./nginx -t
出现如下所示提示,表示安装成功

启动 nginx

cd ../../nginx/sbin

./nginx

如果之前已经启动了 nginx 请使用如下命令:

./nginx -s reload

在 /usr/local/nginx/html/ 目录下创建一个文件 index.php

touch index.php

内容为:
结果为:
我的启动脚本:
/home/spms/ctrl_nginx.sh

整套系统开机启动:
启动放到如下文件
/etc/init.d/after.local
vi after.local
su - db2inst1 -c “db2start”
su - spms -c “ctrl_tomcat.sh start”
su - spms -c “ctrl_php-fpm.sh start”
su - spms -c “ctrl_nginx.sh start”

注:设置 nginx 和 php-fpm 更改上传文件大小限制
Nginx 和 php 默认不支持上传过大的文件。
假如我们要求上传的文件大小为 20M,默认配置就不允许上传了。
下面我们更改 nginx 和 php 配置,设定上传的限制为 20M。
Nginx 配置更改
如果上传文件时超过了 nginx 的限制,就会返回一个 “413 Request Entity Too Large” 的错误。
我们只要更改 nginx 的配置文件 “nginx.conf” 即可。
在 http {} 中添加一个 client_max_body_size 20m; 配置项;
修改完成之后重启 nginx 或 reload 配置。

PHP 配置更改
除了 nginx 对文件大小有要求,php 也做了限制。
php 的配置文件为 php.ini。
我们需要修改下面的配置:

file_uploads = On ; 打开文件上传选项
upload_max_filesize = 20M ; 上传文件上限
post_max_size = 20M ;post 上限

; 还需要根据实际情况调整下面的选项
max_execution_time = 180 ; 脚本最大执行时间(秒) ,过短会导致文件还没上传完脚本就停止了。
max_input_time = 180 ; 请求的最大传输时间,过短会导致文件还没上传完传输就停止了。
memory_limit = 128M ; 内存上限
修改完成后重启 php-fpm 或 reload 配置。注意:与 tomcat 共用:
1.Tomcat 修改 server.xml 端口为 8858
2.Nginx 端口为 8848
3.php 应用的目录复制到 /home/spms/SPMS(为了合肥转接的能用)
4.11.64.65.15:8848/SPMS 是原来的应用
11.64.17.23:8848/SPMS(合肥转接)
5.11.64.65.15:8848/SPMS/ZFJS 是增加的应用
11.64.17.23:8848/SPMS/ZFJS(合肥转接)
Nginx.conf 配置参见生产系统。