linux下安装nginx,以及防火墙管理
1.安装nginx
首先安装依赖:
yum install gcc 安装 Nginx 的编译环境 gcc
yum install pcre-devel nginx 的 http 模块使用 pcre 解析正则表达式,所以安装 perl 兼容的正则表达式库
yum install zlib zlib-devel nginx 使用 zlib 对 http 包的内容进行 gzip
yum install openssl openssl-devel nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),如果使用了 https ,需要安装 OpenSSL 库
一次性安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
下载nginx
一般情况下放在local下,在local新建一个nginx文件夹:
切换到local目录下,执行命令: mkdir nginx
依次执行 cd nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -zxvf nginx-1.13.7.tar.gz
cd nginx-1.13.7
./configure 使用默认配置
如果要配置多个nginx在同一台服务器上 ,则执行以下命令
./configure --prefix=/usr/local/nginx
./configure --prefix=/usr/local/nginx1
这样的话 就会生成两个配置文件 一个nginx 一个在nginx1,
需要注意的是 下面的编译安装命令 要在每个配置命令执行完后 紧接着执行,既是 configure 完成后 立即 make && make install
make && make install 编译、安装
以下操作根据需要可以执行也可以不执行
vim /etc/profile 配置环境变量
在合适的位置添加下面两端
或者
export PATH=$PATH:/usr/local/nginx/sbin
重新编译,使配置生效 : source /etc/profile
启动nginx
已经配置了环境变量,所以可以直接在任何位置启动
nginx
nginx -s stop
nginx -s quit
nginx -s reload
nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
如果没有配置环境变量就要找到绝对路径来启动
/usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx -s reload 重启
pkill -9 nginx 强制停止nginx 服务
开机自启动nginx
vi /etc/rc.local
增加一行 /usr/local/nginx/sbin/nginx
设置执行权限 chmod 755 rc.local
如果上面的命令不行 就执行全路径名 chmod 755 /etc/rc.local
查看是否启动
ps -ef |grep nginx
root 742 719 0 08:57 ? 00:00:00 runsv nginx
root 811 742 0 08:57 ? 00:00:00 svlogd -tt /var/log/gitlab/nginx
root 819 742 0 08:57 ? 00:00:00 nginx: master process /opt/gitlab/embedded/sbin/nginx -p /var/opt/gitlab/nginx
gitlab-+ 829 819 0 08:57 ? 00:00:00 nginx: worker process
gitlab-+ 830 819 0 08:57 ? 00:00:00 nginx: worker process
gitlab-+ 832 819 0 08:57 ? 00:00:00 nginx: worker process
gitlab-+ 833 819 0 08:57 ? 00:00:00 nginx: worker process
gitlab-+ 834 819 0 08:57 ? 00:00:00 nginx: cache manager process
root 9958 1 0 09:19 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 9959 9958 0 09:19 ? 00:00:00 nginx: worker process
root 16054 9606 0 09:48 pts/0 00:00:00 grep --color=auto nginx
看到你的nginx占用的进程号说明已经启动,可以通过 http://ip:80 访问,
nginx的conf的修改:
1.修改端口号:默认是80,
2.配置前后端跨域请求ip:端口号
配置完后重启nginx,生效
如果输入ip端口号访问不了,首先查看端口号是否被占用
netstat -apn 查看所有端口号
端口号没有被占用再查看防火墙是否开启
linux 一般有两个防火墙 :
firewall-cmd --state 查看默认防火墙状态(关闭后显示no running,开启后显示running)
这个防火墙一般默认就是关闭的
关闭防火墙 systemctl stop firewalld.service
禁止防火墙开机启动 systemctl disable firewalld.service
service iptables status 查看防火墙是否启动
启动的情况这个小圆点是绿色的,停止状态是白色
如果启动我们去配置防火墙,暴露出我们的端口号
vim /etc/sysconfig/iptables
在上面添加端口号对外访问:例如8080
-A INPUT -m state–state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
依次执行命令重启防火墙使配置生效,
source /etc/sysconfig/iptables 配置文件及时生效
service iptables save
service iptables restart
2.防火墙的操作命令
- 永久性生效
开启:chkconfig iptables on
关闭:chkconfig iptables off
- 即时生效,重启后失效
开启:service iptables start
关闭:service iptables stop
3.查看防火墙状态
service iptables status
- service iptables save 指令失败
首先不管防火墙有没有关 都使用systemctl stop firewalld(systemctl stop firewalld.service) 关闭防火墙
然后使用 yum install iptables-services 安装或更新服务
再使用systemctl enable iptables 启动iptables
最后 systemctl start iptables 打开iptables
大功告成
试试service iptables save
5.重启防火墙(iptables)命令失败
#service iptable restart
Redirecting to /bin/systemctl restart iptable.service
Failed to issue method call: Unit iptable.service failed to load: No such file or directory.
据说从某个版本的Linux系统(CenterOS/RedHat)后就将service命令改了,如下
systemctl start iptables.service
#iptables -L
重启防火墙成功~