下载nginx
cd /opt
wget http://nginx.org/download/nginx-1.16.0.tar.gz
tar -zxvf nginx-1.16.0.tar.gz
cd nginx-1.16.0/
安装编译工具及库文件
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安装nginx
cd /opt/nginx-1.16.0/
./configure
make && make install
这里./configure没有添加任何参数,以默认配置编译安装。
默认安装后nginx目录为:/usr/local/nginx/。
nginx执行文件路径为:/usr/local/nginx/sbin/nginx。
nginx配置文件路径为:/usr/local/nginx/conf/nginx.conf。
如果需要修改配置则可以查看【官方文档】nginx building configure命令支持参数
nginx常用命令
./nginx #启动nginx
./nginx -v #查看nginx版本
./nginx -V #查看nginx版本详细信息
./nginx -s stop #停止nginx
./nginx -s quit #停止nginx
./nginx -s reload #重载nginx配置
./nginx -c /usr/local/nginx/conf/nginx.conf 指定配置文件
./nginx -t #检查配置文件是否正确
./nginx -h #显示帮助信息
其中:
- -s都是采用向 Nginx 发送信号的方式
- -c表示configuration,指定配置文件
添加模块,使nginx支持更多功能
1.nginx同时正向代理http和https
默认的情况下,使用nginx做正向代理可以解析http请求,但不支持https请求,可以借助第三方模块ngx_http_proxy_connect_module实现
1.首先确保安装了patch,gcc、gcc++、pcre、zlib,这些编译时需要用到的依赖软件或静态库。
yum group install -y "Development Tools"
yum install -y patch pcre-devel pcre zlib-devel zlib
2.下载ngx_http_proxy_connect_module第三方模块
cd /opt
git clone https://github.com/chobits/ngx_http_proxy_connect_module
3.重新编译安装nginx
cd nginx-1.16.0/
# patch -p1 < {当前nginx版本对应proxy_connect.patch路径},其他版本可查看模块主页上的文档找到对应版本的patch
patch -p1 < /opt/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_101504.patch
./configure --prefix=/usr/local/nginx --add-module=/opt/ngx_http_proxy_connect_module
make && make install
除了make && make install这种方式以外,也可以直接替换nginx执行文件
cd /usr/local/nginx/sbin/
mv nginx nginx-back
cp /opt/nginx-1.16.0/objs/nginx /usr/local/nginx/sbin/nginx
4.修改配置文件
vi /usr/local/nginx/conf/nginx.conf
正向代理示例配置如下:
server {
listen 3128;
# dns resolver used by forward proxying
resolver 8.8.8.8;
# forward proxy for CONNECT request
proxy_connect;
proxy_connect_allow 443 563;
proxy_connect_connect_timeout 10s;
proxy_connect_read_timeout 10s;
proxy_connect_send_timeout 10s;
# forward proxy for non-CONNECT request
location / {
proxy_pass http://$host;
proxy_set_header Host $host;
}
}
2.nginx配置邮件代理
这个主要用于当前主机无法访问外网,而借助其他可以访问外网的内网主机进行邮件处理。
1.编译安装nginx
cp /opt/nginx-1.16.0/
./configure --prefix=/usr/local/nginx --with-mail --with-stream
make && make install
2.修改配置文件
vi /usr/local/nginx/conf/nginx.conf
邮件代理示例配置如下,注意:以下配置与events、http同级
stream{
server {
listen 25;
proxy_pass smtp.qq.com:465;
}
}
配置完成,则应用服务器发邮件的配置中,邮件发送的服务器地址填写nginx服务器的地址,端口写邮件代理配置上监听的端口。
3.nginx配置反向代理
反向代理示例:
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8080;
proxy_redirect default;
}
}
rewrite形式的反向代理示例:
server {
listen 80;
server_name localhost;
location ^~ /api {
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:8080;
proxy_intercept_errors on;
}
}
4.http代理负载均衡
使用proxy_pass
指定负载均衡方式,示例如下:
http {
upstream backend {
server backend1.example.com;
server backend2.example.com;
server 192.0.0.1 backup;
}
server {
location / {
proxy_pass http://backend;
}
}
}
网友评论