1.下载并安装
# 1.解压缩文件 添加依赖
sudo apt-get install libpcre3 libpcre3-dev zlib1g-dev build-essential gcc
mkdir /usr/local/nginx
tar -zxvf nginx-1.16.0.tar.gz
# 2.编译安装
cd nginx-1.16.0
./configure --prefix=/usr/local/nginx
make && make install
#3.开机自启、启动、停止
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
sudo systemctl stop nginx.service
# 重启
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
or
cd /usr/local/nginx/sbin
./nginx
# nginx的热重载
nginx -s signal
signal 的值如下:
stop:fast shutdown,快速的停止 nginx
quit:graceful shutdown,不再接受新的请求,等正在处理的请求出完成后在进行停止(优雅的关闭)
reload:reloading the configuration file,重新加载配置文件
reopen:reopening the log files,重新写入日志文件
./nginx -s reload # 修改后config配置文件之后,重新加载配置文件
2.其他操作
## 查看进程号
cd /usr/local/nginx/sbin
./nginx
# nginx服务启动后默认的进程号会放在/usr/local/nginx/logs/nginx.pid文件
cat nginx.pid 查看进程号
## ./nginx -v 显示nginx的版本号
./nginx -V 显示nginx的版本号和编译信息
./nginx -t 检查nginx配置文件的正确性
./nginx -t 检查nginx配置文件的正确定及配置文件的详细配置内容
./nginx -s 向主进程发送信号,如:./nginx -s reload 配置文件变化后重新加载配置文件并重启nginx服务
./nginx -p 设置nginx的安装路径
./nginx -c 设置nginx配置文件的路径
## 显示nginx的版本号
root@ubuntu:/usr/local/src/nginx-1.6.2# sudo /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.6.2
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11)
configure arguments: --prefix=/usr/local/nginx
3.加装SSL模块
# 查看nginx中包含有哪些模块功能
cd nginx/sbin
./nginx -V
# 1.需要用到的依赖包
apt install openssl libssl-dev
# 2.在原来的nginx接压缩包中,添加ssl模块
cd /usr/local/src/nginx_1.6.0
./configure
./configure --with-http_ssl_module
make # 这里只能make,不能make install 否则会被覆盖
# 备份nginx并用新的nginx文件替换
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
# 此时如果 ./nginx -s reload 你会发现没有生效;我们需要将原来的服务停了,重新启动
./nginx -V
# 可以查看到新添加的模块TLS SNI support enabled configure arguments: --with-http_ssl_module
4. 加装stream模块,用来转发数据库
# 1. 在安装Nginx的时候,需要额外安装几个依赖包
sudo apt-get gcc g++ install libpcre3 libpcre3-dev zlib1g-dev build-essential
# 额外的包包括(pcre-8.43、 zlib-1.2.11、openssl-1.0.2u)-openssl在16.03LTS已安装
# 安装方式 (root权限)
./config
make && make install
# 安装Nginx(文件夹要存在):加装stream和ssl模块
cd nginx-1.16.0
./configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.43 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.0.2u --with-http_ssl_module --with-stream --conf-path=/usr/local/nginx/conf/nginx.conf
# 检查nginx的安装是否成功
cd /usr/local/nginx/sbin
./nginx -t
# 在nginx.conf中添加的内容,该内容添加在了HTTP的上面,跟Http同一层级
#user nobody;
worker_processes 1;
events {
worker_connections 10240;
}
#使用nginx做数据库端口转发
stream {
upstream sql {
# 配置数据库的ip和端口
server 172.16.116.100:23306 weight=1 max_fails=2 fail_timeout=30s;
}
server {
# 配置本机暴露端口
listen 13000;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass sql;
}
}
http {
include mime.types;
default_type application/octet-stream;
... ...
## 配置完效果: 用户可以通过navicat,访问虚拟机内的数据库; 无需在宿主机上安装工具才能访问到数据库。