一、Linux安装nginx
主要就是按照菜鸟教程来的,传送门:
备注:
这个相对于其他的教程来说,在编译的时候,将status模块边缘进去了,这样我们可以通过访问status来查看当前nginx的状态。
分析一下nginx的编译命令:
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
-/usr/local/webserver/nginx 这里就是我们设置nginx的安装位置
--with-http_stub_status_module 将status模块编译进去了,以后可以使用status模块来查看nginx状态
--with-pcre=/usr/local/src/pcre-8.35 这里就是pre的目录
安装完成后,查看nginx的版本
/usr/local/webserver/nginx/sbin/nginx -v
二、启动 Nginx
/usr/local/webserver/nginx/sbin/nginx
2、阿里云后台需要放开80端口
3、浏览器访问nginx
显示 Welcome to nginx! 页面,表示启动成功
4、查看nginx进程
ps -ef|grep nginx
[root@iz2ze2w3v37sit3vf71kuez /]# ps -ef|grep nginx
root 15242 1 0 21:52 ? 00:00:00 nginx: master process /usr/local/webserver/nginx/sbin/nginx
nobody 15243 15242 0 21:52 ? 00:00:00 nginx: worker process
root 15245 5592 0 21:52 pts/0 00:00:00 grep --color=auto nginx
此时我们会发现,nginx 一共启动了两个进程。
master process 主进程守护进程
worker process worker工作进程
三、Nginx 其他命令
/usr/local/webserver/nginx/sbin/nginx -s reload # 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reopen # 重启 Nginx
/usr/local/webserver/nginx/sbin/nginx -s stop # 停止 Nginx
四、查看80端口被哪个进程占用
正常情况下,nginx 占用80端口
netstat -lnp|grep 80
netstat -anp|grep 80
五、问题处理,80端口被占用
5.1 启动nginx失败,提示80端口被占用
[root@iz2ze2w3v37sit3vf71kuez sbin]# /usr/local/nginx/sbin/nginx
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
5.2 查看80端口被哪个进程占用
netstat -lnp|grep 80
netstat -anp|grep 80
[root@iz2ze2w3v37sit3vf71kuez /]# vi /usr/local/webserver/nginx/conf/nginx.conf
[root@iz2ze2w3v37sit3vf71kuez /]# netstat -anp|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15167/nginx: master
tcp 0 0 172.16.185.176:80 87.120.36.219:29667 SYN_RECV -
tcp 0 0 172.16.185.176:80 91.208.115.67:63722 SYN_RECV -
tcp 0 0 172.16.185.176:53592 100.100.30.26:80 ESTABLISHED 1194/AliYunDun
unix 2 [ ] DGRAM 6802 1/systemd /run/systemd/notify
unix 2 [ ] DGRAM 6804 1/systemd /run/systemd/cgroups-agent
unix 2 [ ] DGRAM 88069 5590/sshd: root@pts
[root@iz2ze2w3v37sit3vf71kuez /]# netstat -lnp|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15167/nginx: master
5.3 查看这个进程的进程号,然后杀死它
举个例子,我们想要查看进程名为nginx的进程的进程号
ps -ef|grep nginx
[root@iz2ze2w3v37sit3vf71kuez /]# ps -ef|grep nginx
root 15167 1 0 20:57 ? 00:00:00 nginx: master process /usr/local/webserver/nginx/sbin/nginx
nobody 15168 15167 0 20:57 ? 00:00:00 nginx: worker process
root 15231 5592 0 21:49 pts/0 00:00:00 grep --color=auto nginx
如上,我们杀死进程id 15167就好了
kill -9 15167
杀死占用 80端口的进程,然后再次启动nginx就好了。
如果httpd (Apache ) 占用了80端口,解决方法:
centos7 杀不死 httpd (Apache )_傲娇的喵酱-CSDN博客
六、总结:
linux安装目录:
/usr/local/webserver/nginx
查看版本:
/usr/local/webserver/nginx/sbin/nginx -v
启动命令:
/usr/local/webserver/nginx/sbin/nginx
nginx配置文件位置:
/usr/local/webserver/nginx/conf/nginx.conf
停止 Nginx:
/usr/local/webserver/nginx/sbin/nginx -s stop
重启 Nginx:
/usr/local/webserver/nginx/sbin/nginx -s reopen
# 重新载入配置文件
/usr/local/webserver/nginx/sbin/nginx -s reload
http://47.95.122.13:80