常用命令
nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确
关闭nginx:
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx
其他的停止nginx 方式:
ps -ef | grep nginx
kill -QUIT 主进程号 :从容停止Nginx
kill -TERM 主进程号 :快速停止Nginx
pkill -9 nginx :强制停止Nginx
启动nginx:
nginx -c /path/to/nginx.conf
平滑重启nginx:
kill -HUP 主进程号
配置
nginx.conf
user root;
worker_processes auto;
error_log /data/log/nginx/error.log;
pid /var/run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 102400;
}
http {
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 /data/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
#lxj add gzip
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 3;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
}
default.conf
upstream tomcat {
ip_hash; #将相同的ip路由到同一个端口上
server localhost:8081;
server localhost:8082;
}
server {
listen 80; ## listen for ipv4; this line is default and implied
# Make site accessible from http://localhost/
server_name localhost;
location /api_v1/ {
proxy_pass http://tomcat;
proxy_set_header Host $host:8080;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
root /data/PalmScoreServer/static-data/; #自定义路径
index index.html;
}
}
常见问题
问题1
配置RN环境后react antd在浏览器里就无法运行了,包括mysql也无法run(卸载mysql后重新安装),前端程序也无论如何也打不开,总是显示
I am getting Error: net::ERR_CONTENT_LENGTH_MISMATCH
单独在地址栏输入dora的地址:localhost:8000也没问题,nginx也能打开测试的html页面,就是通过nginx无法反向代理dora;
后来搜索到:http://stackoverflow.com/questions/22889338/javascript-not-loading-due-to-neterr-content-length-mismatch
执行下面的命令:
sudo nginx -s stop
sudo rm -rf /usr/local/var/run/nginx/*
sudo nginx
重试http://localhost/ 就可以打开网页了;
·······························································
CentOS7.0安装nginx-1.12.2安装(20180127)
安装依赖包
nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel
- gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++
- PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel
- zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
- OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
yum install -y openssl openssl-devel
安装Nginx
- 下载到当前目录
登录nginx网址查看最新版本:https://nginx.org/en/download.html
wget -c https://nginx.org/download/nginx-1.12.2.tar.gz
- 解压缩到当前目录
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
- 配置
使用默认配置,在解压缩目录内执行下面命令中的一个:
./configure (默认)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module (需要开启https)
显示结果:
.................
Configuration summary
+ using system PCRE library
+ OpenSSL library is not used
+ using system zlib library
nginx path prefix: "/usr/local/nginx"
nginx binary file: "/usr/local/nginx/sbin/nginx"
nginx modules path: "/usr/local/nginx/modules"
nginx configuration prefix: "/usr/local/nginx/conf"
nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
nginx pid file: "/usr/local/nginx/logs/nginx.pid"
nginx error log file: "/usr/local/nginx/logs/error.log"
nginx http access log file: "/usr/local/nginx/logs/access.log"
nginx http client request body temporary files: "client_body_temp"
nginx http proxy temporary files: "proxy_temp"
nginx http fastcgi temporary files: "fastcgi_temp"
nginx http uwsgi temporary files: "uwsgi_temp"
nginx http scgi temporary files: "scgi_temp"
- 编译和安装
make
make install
- 查看安装目录
[root@iZ8vb3pwnjelqaw0zw3fylZ nginx-1.12.2]# whereis nginx
nginx: /usr/local/nginx
到这里安装已经完成了
基本设置
- 开机自启动
vi /etc/rc.local
在文件内增加一行
/usr/local/nginx/sbin/nginx
效果如下:
最后在设置下执行权限
chmod 755 /etc/rc.local
- 设置环境变量(给所有用户可执行)
vi /etc/profile
在尾部添加代码:
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
大概效果:
最后执行下面的指令即时生效:
source /etc/profile
另外在用户目录下的.bash_profile文件中增加变量
用vi在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效。
例如给root用户设置:
vi /root/.bash_profile
nginx使用中的设置
进入安装目录:
cd /usr/local/nginx/conf/