nginx安装记录
第一步:下载nginx压缩包
cd /
mkdir u01
wget -c http://nginx.org/download/nginx-1.18.0.tar.gz
wget命令下载或到nginx官网下载后手动上传
第二步:配置nginx安装所需的环境
1. 安装gcc
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境。安装指令如下:
yum install -y gcc-c++
2. 安装PCRE pcre-devel
Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码。安装指令如下:
yum install -y pcre pcre-devel
3.安装zlib
zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。安装指令如下:
yum install -y zlib zlib-devel
4.安装Open SSL
nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了 https,需要安装 OpenSSL 库。安装指令如下:
yum install -y openssl openssl-devel
一次性安装以上程序:
yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
第三步: 解压nginx压缩包并安装
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
然后进行配置,默认配置
./configure
如果需要开始https支持,stream tcp转发
./configure --with-http_ssl_module \
--with-stream
第四步:编译安装nginx
编译
make
安装
make install
第五步:启动nginx
进入/usr/local/nginx/sbin目录,输入./nginx即可启动nginx
cd /usr/local/nginx/sbin
./nginx
关闭nginx
./nginx -s quit 或者 ./nginx -s stop
重启nginx
./nginx -s reload
查看nginx进程
ps aux|grep nginx
设置nginx开机启动,只需在rc.local增加启动代码即可。
第五步:nginx配置
cd /usr/local/nginx/conf
vim nginx.conf
新增如下单元或修改原配置文件
upstream xxxProxy{
server 192.168.1.101:8080;
server 192.168.1.102:8080;
}
#配置转发
server {
listen 80;
server_name www.f1*.com;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /xxx {
proxy_pass http://xxxProxy;
#如果是webservice,有两种额外配置:
#配置一
#使用$host变量,它的值等于用户访问的host(如果使用域名访问,则该值为域名;如果使用IP访问,则该值为IP)。
#被代理服务器的端口$proxy_port,在设置webservice一定要设置$host:$proxy_port,不然会找不到端口
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
# 配置二
#使用$http_host,会将用户访问的ip和端口传递到后端服务器。
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
}
#配置静态资源
server {
listen 80;
server_name www.static*.com;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /demo {
alias /u01/static/demo;
index index.html index.htm;
}
#websocket链接配置
location /socket {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://192.168.1.230:8088;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
}
}
#tcp转发,和http模块同级
include /usr/local/nginx/conf/tcp/*.conf;
tcp转发
stream{
upstream tcpssh{
hash $remote_addr consistent;
server 目标ip:目标端口 max_fails=3 fail_timeout=10s;
}
server{
listen 7900;
proxy_connect_timeout 20s;
proxy_timeout 5m;
proxy_pass tcpssh;
}
}
链接: root与alias区别.
链接: root与alias区别.
https配置
自建证书
openssl genrsa -out /home/openssl_test/server.key 2048
openssl req -new -key /home/openssl_test/server.key -out /home/openssl_test/server.csr<<EOF
CN
GZ
GY
TEST
TEST
localhost
EOF
openssl x509 -req -days 36500 -in /home/openssl_test/server.csr -signkey /home/openssl_test/server.key -out /home/openssl_test/server.crt
配置nginx
server {
listen 443 ssl;
server_name 192.168.0.106
#ssl on; Nginx1.15版本之前如此开启
ssl_certificate /home/keytool_test/fuxy.pem;
ssl_certificate_key /home/keytool_test/fuxy.key;
#ssl_certificate /home/openssl_test/server.crt;
#ssl_certificate_key /home/openssl_test/server.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}