1、安装nginx前首先安装四个依赖包 --以下命令一键安装四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2、在你的linux服务器上创建目录:install cd /root mkdir install
3、进入刚刚创建的目录:cd install
4、下载并解压安装包 wget http://nginx.org/download/nginx-1.13.7.tar.gz tar -zxvf nginx-1.13.7.tar.gz ---解压nginx安装包
5、进入刚刚解压好的目录:cd nginx-1.13.7
5.1、增加https模块,后期就不麻烦
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/conf/nginx.pid --lock-path=/usr/local/nginx/lock/nginx.lock --with-http_ssl_module
6、分别执行下面命令 make --- 用来编译( 从Makefile中读取指令,然后编译) make install --- 用来安装( 从Makefile中读取指令,安装到指定的位置)
7、编辑启动端口(图片的端口是经过修改的,默认是80端口) cd /usr/local/nginx/conf vim nginx.conf 编辑好之后,按esc退出编辑模式,然后 :wq 进行保存退出
8、启动nginx /usr/local/nginx/sbin/nginx 访问服务器ip测试
windows本地调试nginx注意,不要重复启动。同时运行多个nginx,导致配置一直不生效,坑死了!!!常用命令 nginx -s stop nginx -s reload
nginx配置
我项目的nginx配置如下,可直接复制使用.下面一个个介绍里面的用途
#user nobody;
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 25000;
}
http {
include mime.types;
default_type application/octet-stream;
###############频率控制#######################
geo $limit {
default 1;
127.0.0.1 0; # 本机地址
122.35.149.109 0; # 公网地址
}
map $limit $limit_key {
0 "";
1 $binary_remote_addr;
}
limit_req_zone $limit_key zone=one:2m rate=10r/s;
###############频率控制#######################
#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;
server {
listen 80;
server_name api.xxx.cn;
#将http请求重定向https
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl;
server_name api.xxx.cn;
#频率控制
limit_req zone=one burst=10 nodelay;
#https证书
ssl_certificate ../cert/api.xxx.cn.pem;
ssl_certificate_key ../cert/api.xxx.cn.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#websocket
location = /websocket {
proxy_pass http://127.0.0.1:8090/;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 600s;
}
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' '*';
add_header 'Access-Control-Allow-Methods' '*';
# OPTIONS 直接返回204
if ($request_method = 'OPTIONS') {
return 204;
}
}
#微信授权需要访问服务器的文件,配置静态文件映射
location = /MP_verify_GTPosqCvKIDnld6z.txt {
alias /usr/local/nginx/html/MP_verify_GTPosqCvKIDnld6z.txt;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}