1、操作系统
centos6或者centos7都可以
2、安装依赖包
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
3、下载nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
4、编译、安装nginx
tar -zxvf nginx-1.13.7.tar.gz
cd nginx-1.13.7
./configure
make
make install
注意:这样安装没有指定安装路径,默认安装在/usr/local/nginx,
如果要指定安装目录,可以用
./configure --prefix=/data/nginx/ (我的安装目录)
检查配置文件是否正确的命令:/data/nginx/sbin/nginx -t
5、启动nginx
/data/nginx/sbin/nginx
启动成功后,输入IP进行访问,出现如果界面,表示安装成功
6、重启nginx
/data/nginx/sbin/nginx -s reload
7、停止nginx
/data/nginx/sbin/nginx -s stop
8、默认端口是80,可以修改默认端口
vi /data/nginx/conf/nginx.conf
设置nginx可以使用多个配置文件(放在server外面)
include /data/nginx/conf.d/*.conf;
重启nginx:/data/nginx/sbin/nginx -s reload
9、配置端口映射
在conf.d目录下创建test.conf文件
编辑test.conf文件
vi test.conf
新增两个网站的端口映射
server {
listen 80;
server_name test.pfm.jjzx.com;
location / {
# 网站1
proxy_pass http://172.16.0.1:8081;
add_header Access-Control-Allow-Origin *;
}
}
server {
listen 80;
server_name test.mis.jjzx.com;
location / {
# 网站2
proxy_pass http://172.16.0.1:8082;
add_header Access-Control-Allow-Origin *;
}
}
10、采坑点
a、如果有用到https,需要开启SSL模块,否则启动会报错
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /data/nginx/conf/nginx.conf
解决方法:编译的时候加上SSL模块 ./configure --prefix=/data/nginx --with-http_ssl_module
执行完上面命令后,执行make命令,但是不要执行make install,因为make是用来编译的,而make install是安装,不然整个nginx会被重新覆盖
验证SSL模块是否安装成功:sbin/nginx -V
如下图表示安装成功
b、给客户的一台内网服务器装了nginx,启动项目后,一直访问不了,报403
看了一下日志:
查了一下,网上很多都是说selinux的问题,但设置(vi /etc/selinux/config设置SELINUX=disabled)了之后还是不行
后面是通过修改nginx.conf解决了问题,增加user root root;
c、最近在搞国产化的银河麒麟V10,在装https模块时一直不行,重装了openssl之后,指定目录也一直不行:
./configure --prefix=/data/nginx --with-http_ssl_module --with-openssl=/usr/local/openssl
make的时候报错:
根据上面的提示是在编译的时候不能在/usr/local/openssl/.openssl底下找到对应的文件