Nginx安装
Posted 神游坐忘峰大话IT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx安装相关的知识,希望对你有一定的参考价值。
01
Nginx代理模式简介
nginx的几种代理模式:正向代理、反向代理、透明代理。
在博主《Nginx代理的几种模式》文中已经介绍了几种代理的使用场景,本处不做赘述。
目前我们使用的几种场景:
1、反向代理(保护和隐匿原始服务器场景、负载均衡场景两种场景都用过)比较多;
2、正向代理可能会有一种场景会使用到:就是代理服务器在DMZ区可访问互联网,核心应用部署在核心区不能访问互联网,如果核心应用需要访问互联网,则可以使用正向代理的模式进行(当然这种场景nginx的正向代理并非唯一的解决手段);
3、透明代理几乎未使用过;
02
以root用户安装的原因
本文以root方式启动Nginx的安装。主要有以下原因:
1、Linux非root用户会阻止1024以下的端口启动,我们常用的80和443端口在这个模式下需要借助其它方式启动;
2、单独用作前端网页服务或者图片服务器时,如果网页和图片是放在非Nginx用户下的,则需要nginx配置文件配置user root(当然配置这个之后,使用非root用户能否启动暂时未验证过,后续若验证了可以补充)
另外,建议Nginx的生产服务器专门用作Nginx不要混合其它应用,这样服务器以root方式就显得比较合理。
03
安装步骤
以下操作为CentOS7版本的root下操作
读者可以直接复制命令到自己服务器即可完成安装
1、更新系统依赖包
yum -y update
yum group install -y "Development Tools"
yum -y install gcc gcc-c++ autoconf automake libtool make cmake
yum -y install patch zlib zlib-devel openssl openssl-devel pcre-devel
2、下载最新版本的nginx
cd /usr/local/src
wget -c http://nginx.org/download/nginx-1.17.8.tar.gz
tar zxvf nginx-1.17.8.tar.gz
3、添加组和用户
groupadd nginx
useradd -g nginx -M nginx
备注:useradd命令的-M参数用于不为nginx建立home目录修改/etc/passwd,使得nginx用户无法bash登陆(nginx用户后面由/bin/bash改为/sbin/nologin)
vi /etc/passwd
然后找到有 nginx 那一行,把它修改为(后面由/bin/bash改为/sbin/nologin):
4、编译和安装
cd /usr/local/src/nginx*
1)若只需要反向代理执行:
./configure --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/run/nginx.pid --with-http_ssl_module --with-stream --user=nginx --group=nginx --with-pcre --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_realip_module
make & make install
如此安装即可完成了!
备注:
--with-stream表示带TCP/IP的
2)若正向代理、反向代理都需要
a、nginx安装
打ngx_http_proxy_connect_module模块的补丁:
备注:到github下载ngx_http_proxy_connect_module模块,就是直接去官网把整个目录下下来,解压放到你centos的某个目录下。
https://github.com/chobits/ngx_http_proxy_connect_module
写本帖20200221时,我也下载好了传到阿里云OSS上,也可以直接按照下面命令执行(如果需要更新的该模块,后面可以自己下载)。
最终按照按照/path/to/ngx_http_proxy_connect_module/这样的路径保存即可
mkdir -p /path/to/
cd /path/to/
wget https://jieyifile.oss-cn-hangzhou.aliyuncs.com/ngx_http_proxy_connect_module-master.zip
unzip ngx_http_proxy_connect_module-master.zip
mv ngx_http_proxy_connect_module-master ngx_http_proxy_connect_module
cd /usr/local/src/nginx*
patch -p1 < /path/to/ngx_http_proxy_connect_module/patch/proxy_connect.patch
备注:注意这个patch版本,官方有patch和nginx版本对应关系的
但是使用官方的版本进行补丁这行好像不对,patch -p1 < /path/to/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_101504.patch
之后在nginx的make时会报错,不知道为啥。所以还是用了上面这个补丁方式。后面安装的时候如果之后到答案再来补充认下
./configure --prefix=/usr/local/nginx --pid-path=/usr/local/nginx/run/nginx.pid --with-http_ssl_module --with-stream --add-module=/path/to/ngx_http_proxy_connect_module --user=nginx --group=nginx --with-pcre --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-http_realip_module
make & make install
如此nginx安装即可完成了,但是还需要安装OpenResty
备注:
--with-stream表示带TCP/IP的
--add-module=/path/to/ngx_http_proxy_connect_module 正向代理http和https使用的
b、OpenResty安装
cd
wget https://openresty.org/download/openresty-1.15.8.1.tar.gz
tar -zxvf openresty-1.15.8.1.tar.gz
cd openresty-1.15.8.1
./configure --add-module=/path/to/ngx_http_proxy_connect_module
patch -d build/nginx-1.15.8/ -p 1 < /path/to/ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_101504.patch
make && make install
备注:注意这个patch版本,官方有patch和OpenResty版本对应关系的
大功告成!
5、验证安装是否完成
/usr/local/nginx/sbin/nginx -v
会弹出版本号
nginx version: nginx/1.17.8
输入网址:http://192.168.1.181
表示启动成功
关于几种模式的配置文件的配置例子以及使用postman、JAVA等代码的写法,在后续帖子当中补充。
固定布局
工具条上设置固定宽高
背景可以设置被包含
可以完美对齐背景图和文字
以及制作自己的模板
神游坐忘峰大话IT
以上是关于Nginx安装的主要内容,如果未能解决你的问题,请参考以下文章